* link/z80/lkmain.c,
[fw/sdcc] / link / z80 / lklex.c
index 5447b736bb4b127a7f0ae45739f8f9e2587fbf11..1ccdeea8b375bfd4486e9bdef956b4131e3821b1 100644 (file)
@@ -15,7 +15,7 @@
 
 #include <stdio.h>
 #include <string.h>
-#include <alloc.h>
+//#include <alloc.h>
 #include "aslink.h"
 
 /*)Module      lklex.c
@@ -28,7 +28,7 @@
  *             char    get()
  *             VOID    getfid()
  *             VOID    getid()
- *             int     getline()
+ *             int     lk_getline()
  *             int     getmap()
  *             char    getnb()
  *             int     more()
@@ -144,6 +144,9 @@ char *str;
                if (p < &str[FILSPC-1])
                        *p++ = c;
                c = get();
+               if (c == ';')
+                       while (c)
+                               c = get();
 #ifdef SDK
        } while (c);
 #else /* SDK */
@@ -367,15 +370,15 @@ getmap(d)
        return (c);
 }
 
-/*)Function    int     getline()
+/*)Function    int     lk_getline()
  *
- *     The function getline() reads a line of input text from a
+ *     The function lk_getline() reads a line of input text from a
  *     .rel source text file, a .lnk command file or from stdin.
  *     Lines of text are processed from a single .lnk file or
  *     multiple .rel files until all files have been read.
  *     The input text line is copied into the global string ib[]
  *     and converted to a NULL terminated string.  The function
- *     getline() returns a (1) after succesfully reading a line
+ *     lk_getline() returns a (1) after succesfully reading a line
  *     or a (0) if all files have been read.
  *     This function also opens each input .lst file and output
  *     .rst file as each .rel file is processed.
@@ -421,7 +424,7 @@ getmap(d)
  */
 
 int
-getline()
+lk_getline()
 {
        register int i, ftype;
        register char *fid;
@@ -567,3 +570,34 @@ endline()
        c = getnb();
        return( (c == '\0' || c == ';') ? 0 : c );
 }
+
+/*)Function    VOID    chop_crlf(str)
+ *
+ *             char    *str            string to chop
+ *
+ *     The function chop_crlf() removes trailing LF or CR/LF from
+ *     str, if present.
+ *
+ *     local variables:
+ *             int     i               string length
+ *
+ *     global variables:
+ *             none
+ *
+ *     functions called:
+ *             none
+ *
+ *     side effects:
+ *             none
+ */
+
+VOID
+chop_crlf(str)
+char *str;
+{
+       register int i;
+
+       i = strlen(str);
+       if (i >= 1 && str[i-1] == '\n') str[i-1] = 0;
+       if (i >= 2 && str[i-2] == '\r') str[i-2] = 0;
+}