Skip to content

Commit 99a5e57

Browse files
committed
schinese-punc && bug fixed
1 parent 19927d0 commit 99a5e57

File tree

4 files changed

+43
-3
lines changed

4 files changed

+43
-3
lines changed

src/atlas_generator.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ impl AtlasGenerator {
4848
}
4949
}
5050

51-
fn next_line(&mut self) -> bool {
52-
if self.y + self.current_height < self.page.height {
51+
fn next_line(&mut self, character_height: usize) -> bool {
52+
if self.y + self.current_height + character_height < self.page.height {
5353
self.y += self.current_height;
5454
self.current_height = 0;
5555
self.x = 0;
@@ -80,8 +80,13 @@ impl AtlasGenerator {
8080
panic!("Page size is too small!");
8181
}
8282

83+
if self.y + height >= self.page.height {
84+
self.save_current_page();
85+
self.next_page();
86+
}
87+
8388
if self.x + width >= self.page.width {
84-
if !self.next_line() {
89+
if !self.next_line(height) {
8590
self.save_current_page();
8691
self.next_page();
8792
}

src/charset.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use std::{collections::BTreeSet, path::PathBuf, str::FromStr};
22

33
pub struct CharsetRequest {
44
pub ascii: bool,
5+
pub schinese_punc: bool,
56
pub schinese1: bool,
67
pub schinese2: bool,
78
pub schinese3: bool,
@@ -16,6 +17,10 @@ impl CharsetRequest {
1617
x.ascii = false;
1718
}
1819

20+
if arg.is_present("schinese-punc") {
21+
x.schinese_punc = true;
22+
}
23+
1924
if arg.is_present("schinese1") {
2025
x.schinese1 = true;
2126
}
@@ -44,6 +49,7 @@ impl CharsetRequest {
4449
pub fn new() -> Self {
4550
Self {
4651
ascii: true,
52+
schinese_punc: false,
4753
schinese1: false,
4854
schinese2: false,
4955
schinese3: false,
@@ -58,6 +64,10 @@ impl CharsetRequest {
5864
s.push_str(include_str!("./charset/ascii.txt"));
5965
}
6066

67+
if self.schinese_punc {
68+
s.push_str(include_str!("./charset/schinese-punctuation.txt"));
69+
}
70+
6171
if self.schinese1 {
6272
s.push_str(include_str!("./charset/common-standard-chinese-characters-table/level-1.txt"));
6373
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
2+
3+
4+
5+
6+
7+
8+
9+
10+
11+
12+
13+
14+
15+
·
16+
17+
18+
19+
20+
21+

src/main.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,10 @@ fn main() {
8383
.long("no-ascii")
8484
.multiple(false)
8585
.help("Do not generate ascii charset"))
86+
.arg(Arg::with_name("schinese-punc")
87+
.long("schinese-punc")
88+
.multiple(false)
89+
.help("Generate punctuations for schinese"))
8690
.arg(Arg::with_name("schinese1")
8791
.long("schinese-1")
8892
.multiple(false)

0 commit comments

Comments
 (0)