+2003-07-06 Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
+
+ * support/librarian/sdcclib.c: Generate correct offsets for libraries with
+ Unix (/n) and DOS (/r/n) line terminations.
+
2003-09-17 Erik Petrich <epetrich@ivorytower.norman.ok.us>
* src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
long newlibpos, indexsize;
char symname[MAXLINE+1];
char c;
+ int IsDOSStyle=0;
strcpy(LibNameTmp, LibName);
ChangeExtension(LibNameTmp, "__L");
lib=fopen(LibName, "w");
libindex=fopen(IndexName, "r");
- fprintf(lib, "<SDCCLIB>\n\n");
- fprintf(lib, "<INDEX>\n");
+ fprintf(lib, "<SDCCLIB>\n\n<INDEX>\n");
+
+ /*Find out if the \n is expanded to \r\n or not*/
+ if(ftell(lib)!=(long)strlen("<SDCCLIB>\n\n<INDEX>\n"))
+ {
+ IsDOSStyle=1;
+ }
+
+ indexsize+=ftell(lib)+strlen("0123456789\n\n</INDEX>\n\n");
+ if(IsDOSStyle) indexsize+=4;
- indexsize+=ftell(lib)+12+14;
fprintf(lib, "%10ld\n", indexsize);
while(!feof(libindex))