diff options
| author | Wiimm <wiimm@wiimm.de> | 2021-05-08 11:35:32 +0200 |
|---|---|---|
| committer | Wiimm <wiimm@wiimm.de> | 2021-05-08 11:35:32 +0200 |
| commit | 9ae8841ec4720e74173e2f72fac33f0848bbf435 (patch) | |
| tree | cdce547c82e5f4e0078e908ad1b86a152bd24c45 /project/src/lib-file.c | |
| parent | f33ad95520f6c6bb8f192c8bcd1c17cf40ba6b6b (diff) | |
SZS v2.26a
Diffstat (limited to '')
| -rw-r--r-- | project/src/lib-file.c | 39 |
1 files changed, 29 insertions, 10 deletions
diff --git a/project/src/lib-file.c b/project/src/lib-file.c index 80be732..fe7ab02 100644 --- a/project/src/lib-file.c +++ b/project/src/lib-file.c @@ -743,6 +743,7 @@ file_format_t GetByMagicFF case PNG_MAGIC8_NUM: return FF_PNG; case GCT_MAGIC8_NUM: return FF_GCT; case LE_LPAR_MAGIC_NUM: return FF_LPAR; + case ADDR_PORT_MAGIC_NUM: return FF_PORTDB; //--- see below for BOM support case CT_TEXT_MAGIC8_NUM: return FF_CT_TEXT; @@ -1889,14 +1890,13 @@ enumError ScanConfig } AddStandardSymbolsEML(&paths,false); - //DumpEML(stdout,2,&paths,0); - + //DumpEML(stderr,2,&paths,0); //--- scan file const ListDef_t list_def[] = { - { "paths", 0, 0, &paths }, + { "PATHS", 0, 0, &paths }, {0,0,0,0} }; @@ -1905,7 +1905,7 @@ enumError ScanConfig : ERR_OK; ResolveAllSymbolsEML(&paths); - //DumpEML(stdout,2,&paths,0); + //DumpEML(stderr,2,&paths,0); //--- assign known values @@ -1919,7 +1919,8 @@ enumError ScanConfig if (ref) { FreeString(*assign->var); - NormalizeFileName(buf,sizeof(buf),ref->data.data.ptr,true,true,TRSL_REMOVE); + NormalizeFileName(buf,sizeof(buf),ref->data.data.ptr,true,true,TRSL_ADD_AUTO); + *assign->var = STRDUP(buf); } else @@ -2518,13 +2519,31 @@ static char * trim_line ( char * ptr, bool allow_quote, char ** begin ) if ( allow_quote && (*ptr == '"' || *ptr == '\'') ) { + char buf[1000], *buf_ptr; + int buf_size; const int slen = strlen(ptr); + const int need = slen + 10; + if ( need <= sizeof(buf) ) + { + buf_ptr = buf; + buf_size = sizeof(buf); + } + else + { + buf_ptr = MALLOC(need); + buf_size = need; + } + uint scanned_len; - int elen = ScanEscapedString(ptr,slen,ptr,slen,true,-1,&scanned_len); + int elen = ScanEscapedString(buf_ptr,buf_size,ptr,slen,true,-1,&scanned_len); + if ( elen > slen ) + elen = slen; + memcpy(ptr,buf_ptr,elen+1); if (begin) *begin = ptr; - ptr[elen] = 0; ptr += scanned_len; + if ( buf_ptr != buf ) + FREE(buf_ptr); } else { @@ -2532,7 +2551,7 @@ static char * trim_line ( char * ptr, bool allow_quote, char ** begin ) if (begin) *begin = ptr; - while ( *ptr) + while (*ptr) ptr++; ptr--; @@ -2725,9 +2744,9 @@ enumError ScanSetupFile exmem_t data = ExMemByString(val); data.attrib = index++; if (append) - AppendEML(eml,pathbuf,CPM_COPY,&data,CPM_MOVE); + AppendEML(eml,pathbuf,CPM_COPY,&data,CPM_COPY); else - ReplaceEML(eml,pathbuf,CPM_COPY,&data,CPM_MOVE); + ReplaceEML(eml,pathbuf,CPM_COPY,&data,CPM_COPY); } } } |
