diff options
Diffstat (limited to 'web/c_cpp/cweb/comm-mac.ch')
-rw-r--r-- | web/c_cpp/cweb/comm-mac.ch | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/web/c_cpp/cweb/comm-mac.ch b/web/c_cpp/cweb/comm-mac.ch index 6bad610d1b..83df560cb4 100644 --- a/web/c_cpp/cweb/comm-mac.ch +++ b/web/c_cpp/cweb/comm-mac.ch @@ -4,29 +4,29 @@ No changes to CTANGLE or CWEAVE are needed. (Contributed 13 Oct 2000 by AndPio@aol.com; slightly edited by Don Knuth) @x in limbo, change the title page document to specify Mac version - \centerline{(Version 4.8)} + \centerline{(Version 4.10)} @y - \centerline{(Version 4.8 for MacOS)} + \centerline{(Version 4.10 for MacOS)} @z @x section 23: Make input_ln accept \n, \r, \n\r, or \r\n as line endings @ In the unlikely event that your standard I/O library does not -support |feof|, |getc|, and |ungetc| you may have to change things here. +support |feof| and |getc| you may have to change things here. @^system dependencies@> @c static boolean input_ln( /* copies a line into |buffer| or returns |false| */ FILE *fp) /* what file to read from */ { - register int c=EOF; /* character read; initialized so some compilers won't complain */ - register char *k; /* where next character goes */ + int c=EOF; /* character read; initialized so some compilers won't complain */ + char *k; /* where next character goes */ if (feof(fp)) return false; /* we have hit end-of-file */ limit = k = buffer; /* beginning of buffer */ while (k<=buffer_end && (c=getc(fp)) != EOF && c!='\n') if ((*(k++) = c) != ' ') limit = k; - if (k>buffer_end) - if ((c=getc(fp))!=EOF && c!='\n') { - ungetc(c,fp); loc=buffer; err_print("! Input line too long"); + if (k>buffer_end) { + while ((c=getc(fp))!=EOF && c!='\n'); /* discard rest of line */ + loc=buffer; err_print("! Input line too long"); @.Input line too long@> } if (c==EOF && limit==buffer) return false; /* there was nothing after @@ -46,8 +46,8 @@ line endings, so that \.{CWEB} will works with ASCII files stored in static boolean input_ln( /* copies a line into |buffer| or returns |false| */ FILE *fp) /* what file to read from */ { - register int c=EOF; /* character read; initialized so some compilers won't complain */ - register char *k; /* where next character goes */ + int c=EOF; /* character read; initialized so some compilers won't complain */ + char *k; /* where next character goes */ if (feof(fp)) return false; /* we have hit end-of-file */ limit = k = buffer; /* beginning of buffer */ while (true) { @@ -61,7 +61,7 @@ FILE *fp) /* what file to read from */ return true; } else if (k>buffer_end) { - ungetc(c,fp); loc=buffer; err_print("! Input line too long"); + while ((c=getc(fp))!=EOF && c!='\n' && c!='\r'); /* discard rest of line */ return true; @.Input line too long@> } @@ -81,17 +81,7 @@ FILE *fp) /* what file to read from */ @<Skip over comment lines in the change file; |return| if end of file@>@; @z -@x section 36, don't try to open a change file if none was specified -if ((change_file=fopen(change_file_name,"r"))==NULL) - fatal("! Cannot open change file ", change_file_name); -@y -if (change_file_name[0] == '\0') /* no change file specified */ - change_file = NULL; /* reset at least the |change_file| */ -else if ((change_file=fopen(change_file_name,"r"))==NULL) - fatal("! Cannot open change file ", change_file_name); -@z - -@x section 39, declare colon as Mac's path separator +@x section 36, declare colon as Mac's path separator (Colon-separated paths are not supported.) The remainder of the \.{@@i} line after the file name is ignored. @@ -104,12 +94,22 @@ The remainder of the \.{@@i} line after the file name is ignored. @d PATH_SEP ':' /* MacOS pathname separator */ @^system dependencies@> @z -@x section 39, use the path separator constant +@x section 36, use the path separator constant cur_file_name[l]='/'; /* \UNIX/ pathname separator */ @y cur_file_name[l]=PATH_SEP; /* pathname separator */ @z +@x section 41, don't try to open a change file if none was specified +if ((change_file=fopen(change_file_name,"r"))==NULL) + fatal("! Cannot open change file ", change_file_name); +@y +if (change_file_name[0] == '\0') /* no change file specified */ + change_file = NULL; /* reset at least the |change_file| */ +else if ((change_file=fopen(change_file_name,"r"))==NULL) + fatal("! Cannot open change file ", change_file_name); +@z + @x section 75, explain the convention for omitted change files An omitted change file argument means that |"/dev/null"| should be used, @y @@ -134,7 +134,7 @@ An omitted change file argument means that no change file should be used, @z @x section 85, insert an extra module before the index -@** Index. +@* Index. @y by putting the new module here, we preserve all the previous section numbers @ We assume an interface to \CEE/ command-line emulation as supplied by the |ccommand| function of Metrowerks CodeWarrior, as defined in @@ -144,5 +144,5 @@ the header file \.{console.h}. #include <console.h> @^system dependencies@> -@** Index. +@* Index. @z |