[Refdb-cvs] CVS: refdb/src refdbc.c,1.72.2.11,1.72.2.12
Status: Beta
Brought to you by:
mhoenicka
From: Markus H. <mho...@us...> - 2005-10-14 20:48:53
|
Update of /cvsroot/refdb/refdb/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14405 Modified Files: Tag: Release_0_9_5_stable refdbc.c Log Message: addlink(), com_updatejo(): further quoting fixes Index: refdbc.c =================================================================== RCS file: /cvsroot/refdb/refdb/src/refdbc.c,v retrieving revision 1.72.2.11 retrieving revision 1.72.2.12 diff -u -U2 -r1.72.2.11 -r1.72.2.12 --- refdbc.c 11 Oct 2005 20:29:35 -0000 1.72.2.11 +++ refdbc.c 14 Oct 2005 20:48:37 -0000 1.72.2.12 @@ -5248,5 +5248,6 @@ /* printf("%d\n", optind); */ for (i = optind; i < inargc; i++) { - strcat(slvals.outbuffer, inargv[i]); + printf("inargv[%d]: %s<<\n", i, inargv[i]); +/* strcat(slvals.outbuffer, inargv[i]); */ /* the tokenizer returns a quoted item as a separate token even if there is no space between e.g. a '=' and the @@ -5254,5 +5255,18 @@ item ended with a '=' */ if (slvals.outbuffer[strlen(slvals.outbuffer)-1] != '=') { - strcat(slvals.outbuffer, " "); + strcat(slvals.outbuffer, inargv[i]); + if (slvals.outbuffer[strlen(slvals.outbuffer)-1] != '=') { + strcat(slvals.outbuffer, " "); + } + } + else { + /* quote item */ + strcat(slvals.outbuffer, "\'"); + + /* in order to allow e.g. single quotes in journal names we + must escape the string properly. It will be unescaped on + the server side */ + escape_chars(slvals.outbuffer + strlen(slvals.outbuffer), inargv[i], strlen(inargv[i]), "'\""); + strcat(slvals.outbuffer, "\' "); } } @@ -5559,5 +5573,7 @@ if (slvals.outbuffer[strlen(slvals.outbuffer)-1] != '=') { strcat(slvals.outbuffer, inargv[i]); -/* strcat(slvals.outbuffer, " "); */ + if (slvals.outbuffer[strlen(slvals.outbuffer)-1] != '=') { + strcat(slvals.outbuffer, " "); + } } else { |