X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Fwordsplit.c;h=b07b4309c231b4df5ede157493e58cb9020d27ee;hb=2e2adfa5d7ac912434bef5b8a9b25cfb14d4a4a6;hp=b1b2ada3fd58e8f1c38fc88ef1dc4ab3e9cc5f2b;hpb=03846211ba84582b133a985200502a39462dfe66;p=libucw.git diff --git a/lib/wordsplit.c b/lib/wordsplit.c index b1b2ada3..b07b4309 100644 --- a/lib/wordsplit.c +++ b/lib/wordsplit.c @@ -1,18 +1,16 @@ /* * Sherlock Library -- Word Splitting * - * (c) 1997 Martin Mares, + * (c) 1997 Martin Mares */ -#include - -#include "lib.h" -#include "string.h" +#include "lib/lib.h" +#include "lib/chartype.h" int wordsplit(byte *src, byte **dst, uns max) { - int cnt = 0; + uns cnt = 0; for(;;) { @@ -22,9 +20,21 @@ wordsplit(byte *src, byte **dst, uns max) break; if (cnt >= max) return -1; - dst[cnt++] = src; - while (*src && !Cspace(*src)) - src++; + if (*src == '"') + { + src++; + dst[cnt++] = src; + while (*src && *src != '"') + src++; + if (*src) + *src++ = 0; + } + else + { + dst[cnt++] = src; + while (*src && !Cspace(*src)) + src++; + } } return cnt; }