* src/tools/afblue.pl (convert_ascii_chars): Don't ignore spaces.

Instead, reduce multiple spaces to a single one.  We need this later
for supporting character clusters in `afblue.dat'.
This commit is contained in:
Werner Lemberg 2015-12-05 13:20:30 +01:00
parent f7e6d51a75
commit 453722db8e
2 changed files with 16 additions and 6 deletions

View File

@ -1,3 +1,10 @@
2015-12-05 Werner Lemberg <wl@gnu.org>
* src/tools/afblue.pl (convert_ascii_chars): Don't ignore spaces.
Instead, reduce multiple spaces to a single one. We need this later
for supporting character clusters in `afblue.dat'.
2015-12-05 Werner Lemberg <wl@gnu.org>
* src/autofit/afblue.hin (GET_UTF8_CHAR): Use `do...while(0)'.

View File

@ -38,7 +38,8 @@ my $curr_max; # Name of the current maximum value.
my $curr_enum_element; # Name of the current enumeration element.
my $curr_offset; # The offset relative to current aux. variable.
my $curr_elem_size; # The size of the current string or block.
my $curr_elem_size; # The number of non-space characters in the current string or
# the number of elements in the current block.
my $have_sections = 0; # Boolean; set if start of a section has been seen.
my $have_strings; # Boolean; set if current section contains strings.
@ -159,12 +160,14 @@ sub convert_ascii_chars
# A series of ASCII characters in the printable range.
my $s = shift;
# We ignore spaces.
$s =~ s/ //g;
# We reduce multiple space characters to a single one.
$s =~ s/ +/ /g;
my $count = $s =~ s/\G(.)/'$1', /g;
$curr_offset += $count;
$curr_elem_size += $count;
# Count all non-space characters. Note that `()' applies a list context
# to the capture that is used to count the elements.
$curr_elem_size += () = $s =~ /[^ ]/g;
$curr_offset += $s =~ s/\G(.)/'$1', /g;
return $s;
}