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 {
|