PERFORCE change 147755 for review
Konrad Jankowski
konrad at FreeBSD.org
Mon Aug 18 19:03:13 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=147755
Change 147755 by konrad at vspredator on 2008/08/18 19:02:21
Fix errors in debug mode of colldef.apple.
Affected files ...
.. //depot/projects/soc2008/konrad_collation/colldef.apple/parse.y#7 edit
Differences ...
==== //depot/projects/soc2008/konrad_collation/colldef.apple/parse.y#7 (text+ko) ====
@@ -395,11 +395,12 @@
if (fclose(fp) != 0)
err(EX_IOERR, "IO error closing destination file %s",
out_file);
-
#ifdef COLLATE_DEBUG
+ /* Do it first, before conversion to network byte order. */
if (debug)
collate_print_tables();
#endif
+
exit(EX_OK);
}
;
@@ -509,6 +510,10 @@
order_line1 :
| ELEM {
struct symbol *s = getsymbol($1, EXISTS);
+
+#ifdef VSDEBUG
+ printf("\n%s(%d) ", showwcs(s->name, CHARMAP_SYMBOL_LEN), s->u.wc);
+#endif
if (s->val != PRI_UNDEFINED)
yyerror("<%s> redefined", showwcs($1, CHARMAP_SYMBOL_LEN));
if (prev_line == LINE_ELLIPSIS) {
@@ -789,10 +794,16 @@
;
expansion :
weight_ex
- | expansion weight_ex
+ | expansion weight_ex_null
;
weight2 : weight
- | EXPAND expansion EXPAND { weight_index++; }
+ | EXPAND expansion EXPAND {
+#ifdef VSDEBUG
+ printf("[%d]=%d ",
+ weight_index, weight_table[weight_index]->val);
+#endif
+ weight_index++;
+ }
;
weights :
| weight
@@ -833,6 +844,17 @@
weight_table[weight_index] = s;
}
;
+weight_ex_null : ELEM {
+ struct symbol *s;
+
+ if (weight_index >= directive_count)
+ yyerror("More weights than specified by order_start (%d >= %d, %s)", weight_index,
+ directive_count, showwcs($1, CHARMAP_SYMBOL_LEN));
+ s = getsymbol($1, EXISTS);
+ if (order_pass && s->val == PRI_UNDEFINED)
+ printf("<%s> is undefined\n", showwcs($1, CHARMAP_SYMBOL_LEN));
+}
+;
order_end : ORDER_END '\n'
;
charmap : DEFN CHAR {
@@ -1419,7 +1441,7 @@
for (i = 0; i < UCHAR_MAX + 1; i++, p2++) {
printf("\t%s :", show(i));
for(z = 0; z < info.directive_count; z++)
- printf(" %d", p2->pri[z]);
+ printf(" %d", ntohl(p2->pri[z]));
putchar('\n');
}
}
@@ -1427,9 +1449,9 @@
struct __collate_st_large_char_pri *p2 = __collate_large_char_pri_table;
printf("Large priority table:\n");
for (i = info.large_pri_count; i-- > 0; p2++) {
- printf("\t%s :", show(p2->val));
+ printf("\t%s :", show(ntohl(p2->val)));
for(z = 0; z < info.directive_count; z++)
- printf(" %d", p2->pri.pri[z]);
+ printf(" %d", ntohl(p2->pri.pri[z]));
putchar('\n');
}
}
More information about the p4-projects
mailing list