Re: Many error msgs for all user-documents in lout 3.38 (MS Vista + Cygwin)
KHMan <[email protected]>
| Newsgroups | gmane.comp.type-setting.lout |
|---|---|
| Message-ID | <[email protected]> |
Volker Renneberg wrote: > Finally, I succeeded to compile lout 3.38 under Cygwin/Windows Vista. > However, I cannot compile any of the delivered lout documents (slides, > expert, user, design). > > It gives a lot of messages of the form: > lout file "all": > 69,1: width missing from 0i > 69,1: /, | and & must be enclosed in double quotes > > I have attached the compilation report for the slides-document. > > I have set OSDOS to 1 and OSUNIX to 0. I have tried it with locale > turned on and off. I did not change any of the include-files. > > Right now, I do not know where this problem comes from neither where to > look at.... Any ideas? [Sorry for threading messages like this, I can never get back my own e-mail from gmail, it's a known problem...] Here's a stopgap measure, I got all the docs generated on Cygwin/WinXP with the attached very ugly hack (z17.diff). Basically I think the scanf theory holds. I used the following changes to the Makefile: PREFIX = /usr/local USELOC = 0 And I have it installed to /usr/local before processing the documents. Appears to go normally, the slides output is correct, but I haven't tried to scrutinize the other docs yet. I'm not really sure if newlib's sscanf is really at fault, because its behaviour sounds wrong if we use "man scanf", but sounds right if we use the ISO C draft standard n1256. So it seems all very ambiguous... -- Cheers, Kein-Hong Man (esq.) Kuala Lumpur, Malaysia
z17.diff
(text/plain, 1.1 KB)
--- z17_ORIG.c 2008-09-24 05:33:52.000000000 +0800
+++ z17.c 2009-01-26 21:02:39.421875000 +0800
@@ -193,6 +193,7 @@
void GetGap(OBJECT x, STYLE *style, GAP *res_gap, unsigned *res_inc)
{ int w; float num;
FULL_CHAR *str;
+ FULL_CHAR conv[32];
debug2(DGW, D, "GetGap( %s, %s, res_gap, res_inc )",
EchoObject(x), EchoStyle(style));
@@ -220,7 +221,14 @@
else if( *str == CH_DECGAP ) *res_inc = GAP_DEC, str++;
/* read the gap width */
- if( sscanf((char *) str, "%f", &num) != 1 )
+ if( sscanf((char *) str, "%31[0-9.]", &conv) != 1)
+ { Error(17, 2, "width missing from %s", WARN, &fpos(x), string(x));
+ Error(17, 3, "%s, %s and %s must be enclosed in double quotes",
+ WARN, &fpos(x), KW_VCAT_NJ, KW_HCAT_NJ, KW_ACAT_NJ);
+ debug0(DGW, D, "GetGap failing (width missing)");
+ return;
+ }
+ if( sscanf((char *) conv, "%f", &num) != 1 )
{ Error(17, 2, "width missing from %s", WARN, &fpos(x), string(x));
Error(17, 3, "%s, %s and %s must be enclosed in double quotes",
WARN, &fpos(x), KW_VCAT_NJ, KW_HCAT_NJ, KW_ACAT_NJ);