* char get()
* VOID getfid()
* VOID getid()
+ * VOID getSid()
* int getline()
* int getmap()
* char getnb()
*p++ = 0;
}
+/*)Function VOID getSid (char *id)
+ *
+ * char * id a pointer to a string of
+ * maximum length NCPS
+ *
+ * getSid is derived from getid. It is called from newsym()
+ * in lksym.c, when an S-record has to be scanned. getSid accepts
+ * much more characters than getid, which is necessary for SDCC.
+ *
+ * The function getSid() scans the current input text line
+ * from the current position copying the next string
+ * into the external string buffer (id). The string ends when a space
+ * character (space, tab, \0) is found. The maximum number of
+ * characters copied is NCPS. If the input string is larger than
+ * NCPS characters then the string is truncated, if the input string
+ * is shorter than NCPS characters then the string is NULL filled.
+ * Intervening white space (SPACES and TABS) are skipped.
+ *
+ * local variables:
+ * char * p pointer to external string buffer
+ * int c current character value
+ *
+ * global variables:
+ * char ctype[] a character array which defines the
+ * type of character being processed.
+ * This index is the character
+ * being processed.
+ *
+ * called functions:
+ * char get() lklex.c
+ * char getnb() lklex.c
+ * VOID unget() lklex.c
+ *
+ * side effects:
+ * use of getnb(), get(), and unget() updates the
+ * global pointer ip the position in the current
+ * input text line.
+ */
+
+VOID
+getSid (id)
+char *id;
+{
+ register int c;
+ register char *p;
+
+ c = getnb();
+ p = id;
+ do {
+ if (p < &id[NCPS])
+ *p++ = c;
+ c = get();
+ } while (c != '\0' && c != ' ' && c != '\t');
+ unget(c);
+ while (p < &id[NCPS])
+ *p++ = 0;
+}
+
/*)Function VOID getfid(fid,c)
*
* char * str a pointer to a string of
- * maximum length FILENAME_MAX
+ * maximum length PATH_MAX
* int c this is first character to
* copy to the string buffer
*
* from the current position copying the next string
* into the external string buffer (str). The string ends when a
* non SPACE type character is found. The maximum number of
- * characters copied is FILENAME_MAX. If the input string is larger than
- * FILENAME_MAX characters then the string is truncated, if the input string
- * is shorter than FILENAME_MAX characters then the string is NULL filled.
+ * characters copied is PATH_MAX. If the input string is larger than
+ * PATH_MAX characters then the string is truncated, if the input string
+ * is shorter than PATH_MAX characters then the string is NULL filled.
*
* local variables:
* char * p pointer to external string buffer
p = str;
do {
- if (p < &str[FILENAME_MAX-1])
+ if (p < &str[PATH_MAX-1])
*p++ = c;
c = get();
} while (c && ((ctype[c] != SPACE)||(c == ':')||(c == '\\')));
- while (p < &str[FILENAME_MAX])
+ while (p < &str[PATH_MAX])
*p++ = 0;
}
sfp = afile(fid, "rel", 0);
/* if a .cdb file exists then copy it over */
if (dflag && sfp && dfp && pass == 0) {
- FILE *xfp = afile(fid,"cdb",0);
+ FILE *xfp = afile(fid,"adb",0); //JCF: Nov 30, 2002
if (xfp) {
copyfile(dfp,xfp);
fclose(xfp);
}
}
if (uflag && pass != 0) {
+ SaveLinkedFilePath(fid); //Save the linked path for aomf51
if ((tfp = afile(fid, "lst", 0)) != NULL) {
if ((rfp = afile(fid, "rst", 1)) == NULL) {
fclose(tfp);