#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
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++;
//
// 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)
//
// Initialize Listing Generator
//
-void init_list(void)
+void InitListing(void)
{
extern VALUE dos_date(), dos_time();
// 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)
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;
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)