From: <tom...@us...> - 2003-09-12 23:20:17
|
Update of /cvsroot/qmailadmin/qmailadmin In directory sc8-pr-cvs1:/tmp/cvs-serv15368 Modified Files: mailinglist.c Log Message: better handling of mailing list prefix value (strip brackets) Index: mailinglist.c =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/mailinglist.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- mailinglist.c 10 Sep 2003 21:38:43 -0000 1.1.1.1 +++ mailinglist.c 12 Sep 2003 23:20:13 -0000 1.2 @@ -548,6 +548,12 @@ /* Check for prefix setting */ GetValue(TmpCGI, tmp, "prefix=", sizeof(tmp)); + /* strip leading '[' and trailing ']' from tmp */ + tmpstr = strchr (tmp, ']'); + if (tmpstr != NULL) *tmpstr = '\0'; + tmpstr = tmp; + while (*tmpstr == '[') tmpstr++; + /* Create (or delete) the file as appropriate */ sprintf(TmpBuf, "%s/%s/prefix", RealDir, ActionUser); if (strlen(tmp) > 0) @@ -555,7 +561,7 @@ file=fopen(TmpBuf , "w"); if (file) { - fprintf(file, "[%s]", tmp); + fprintf(file, "[%s]", tmpstr); fclose(file); } } @@ -1446,6 +1452,7 @@ int get_mailinglist_prefix(char* prefix) { char buffer[MAX_BUFF]; + char *b, *p; FILE* file; sprintf(buffer, "%s/%s/prefix", RealDir, ActionUser); @@ -1454,8 +1461,13 @@ if (file) { fgets(buffer, sizeof(buffer), file); - strncpy(prefix, strstr(buffer, "[") + 1, strstr(buffer, "]") - strstr(buffer, "[") - 1); fclose(file); + + b = buffer; + p = prefix; + while (*b == '[') b++; + while ((*b != ']') && (*b != '\n') && (*b != '\0')) *p++ = *b++; + *p++ = '\0'; } else { |