X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=listing.c;h=530691334c3ea0d8574ab7a097cedff0ae5d60bb;hp=cea150b4a7c8c0f29c72a82f63578e9122da346f;hb=062214e62031c26d372edc2e68473ebb64f6a506;hpb=d09274f3e3d4dca122c308a621ea8edc100b7d99 diff --git a/listing.c b/listing.c index cea150b..5306913 100644 --- a/listing.c +++ b/listing.c @@ -20,29 +20,32 @@ #include "sect.h" #include "error.h" -char * list_fname; // Listing filename -char subttl[TITLESIZ]; // Current subtitle -int listing; // Listing level -int pagelen = 61; // Lines on a page -int nlines; // #lines on page so far -LONG lsloc; // `sloc' at start of line +char * list_fname; // Listing filename +char subttl[TITLESIZ]; // Current subtitle +int listing; // Listing level +int pagelen = 61; // Lines on a page +int nlines; // #lines on page so far +LONG lsloc; // `sloc' at start of line // Private -static int lcursect; // `cursect' at start of line -static int llineno; // `curlineno' at start of line -static int pageno; // Current page number -static int pagewidth; // #columns on a page -static int subflag; // 0, don't do .eject on subttl (set 1) -static char lnimage[IMAGESIZ]; // Image of output line -static char title[TITLESIZ]; // Current title -static char datestr[20]; // Current date dd-mon-yyyy -static char timestr[20]; // Current time hh:mm:ss [am|pm] -static char buf[IMAGESIZ]; // Buffer for numbers - -static char * month[16] = { "", "Jan", "Feb", "Mar", - "Apr", "May", "Jun", "Jul", - "Aug", "Sep", "Oct", "Nov", - "Dec", "", "", "" }; +static int lcursect; // `cursect' at start of line +static int llineno; // `curlineno' at start of line +static int pageno; // Current page number +static int pagewidth; // #columns on a page +static int subflag; // 0, don't do .eject on subttl (set 1) +static char lnimage[IMAGESIZ]; // Image of output line +static char title[TITLESIZ]; // Current title +static char datestr[20]; // Current date dd-mon-yyyy +static char timestr[20]; // Current time hh:mm:ss [am|pm] +static char buf[IMAGESIZ]; // Buffer for numbers +static long unused; // For supressing 'write' warnings + +static char * month[16] = { + "", "Jan", "Feb", "Mar", + "Apr", "May", "Jun", "Jul", + "Aug", "Sep", "Oct", "Nov", + "Dec", "", "", "" +}; // // Eject the Page (Print Empty Lines), Reset the Line Count and Bump the Page Number @@ -133,7 +136,7 @@ void date_string(char * buf, VALUE date) void scopy(char *dest, char *src, int len) { if (len < 0) - len = 1000; // Some large number + len = 1000; // Some large number [Shamus: wha...?] while (len-- && *src) *dest++ = *src++; @@ -204,23 +207,24 @@ void taglist(char chr) // // Print a Line to the Listing File // -void println(char * ln) +void println(const char * ln) { unsigned int length; - if (list_fname != NULL) // Create listing file, if necessary + // Create listing file, if necessary + if (list_fname != NULL) list_setup(); length = strlen(ln); - write(list_fd, ln, length); - write(list_fd, "\n", 1L); + unused = write(list_fd, ln, length); + unused = write(list_fd, "\n", 1L); } // // Ship Line `ln' Out; Do Page Breaks and Title Stuff // -void ship_ln(char * ln) +void ship_ln(const char * ln) { // If listing level is <= 0, then don't print anything if (listing <= 0) @@ -255,7 +259,7 @@ void ship_ln(char * ln) // // Initialize Listing Generator // -void init_list(void) +void InitListing(void) { extern VALUE dos_date(), dos_time(); @@ -302,7 +306,7 @@ void listeol(void) // deposited with dcb. The fix (kludge) is an extra variable which records // the fact that a 'ds.x' directive generated all the data, and it // shouldn't be listed - savsect(); // Update section variables + SaveSection(); // Update section variables if (lcursect == cursect && (sect[lcursect].scattr & SBSS) == 0 && lsloc != sloc && just_bss == 0) @@ -443,11 +447,13 @@ int d_subttl(void) if (*tok != STRING) return error("missing string"); - strcpy(subttl, (char *)tok[1]); +// strcpy(subttl, (char *)tok[1]); + strcpy(subttl, string[tok[1]]); tok += 2; - if (ejectok && (subflag || pageno > 1)) // Always eject on pages 2+ + // Always eject on pages 2+ + if (ejectok && (subflag || pageno > 1)) eject(); subflag = 1; @@ -464,7 +470,8 @@ int d_title(void) if (*tok != STRING) return error("missing string"); - strcpy(title, (char*)tok[1]); +// strcpy(title, (char*)tok[1]); + strcpy(title, string[tok[1]]); tok += 2; if (pageno > 1)