X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;ds=sidebyside;f=recctrl%2Frectext.c;h=9993d70cdb0e5e3bd0a40bd9c40415c824ad5db1;hb=5c693d36af8be6f6642257160b3c6441d2e2d762;hp=ace66cf4ca9ca51a7c94af4e522c3f5262edc2f7;hpb=6ccabd72334e17c9621a73b1b50469d2a89030c9;p=idzebra-moved-to-github.git diff --git a/recctrl/rectext.c b/recctrl/rectext.c index ace66cf..9993d70 100644 --- a/recctrl/rectext.c +++ b/recctrl/rectext.c @@ -1,10 +1,22 @@ /* - * Copyright (C) 1994-1995, Index Data I/S + * Copyright (C) 1994-1998, Index Data I/S * All rights reserved. * Sebastian Hammer, Adam Dickmeiss * * $Log: rectext.c,v $ - * Revision 1.3 1996-11-01 09:00:33 adam + * Revision 1.6 1998-02-10 12:03:06 adam + * Implemented Sort. + * + * Revision 1.5 1997/10/27 14:33:06 adam + * Moved towards generic character mapping depending on "structure" + * field in abstract syntax file. Fixed a few memory leaks. Fixed + * bug with negative integers when doing searches with relational + * operators. + * + * Revision 1.4 1996/11/04 14:09:16 adam + * Minor changes. + * + * Revision 1.3 1996/11/01 09:00:33 adam * This simple "text" format now supports element specs B and M. * * Revision 1.2 1996/10/29 14:02:45 adam @@ -69,10 +81,10 @@ struct buf_info *buf_open (struct recExtractCtrl *p) int buf_read (struct buf_info *fi, char *dst) { - if (fi->max <= 0) - return 0; if (fi->offset >= fi->max) { + if (fi->max <= 0) + return 0; fi->max = (*fi->p->readf)(fi->p->fh, fi->buf, 4096); fi->offset = 0; if (fi->max <= 0) @@ -90,31 +102,28 @@ void buf_close (struct buf_info *fi) static int text_extract (struct recExtractCtrl *p) { - char w[256]; + char w[512]; RecWord recWord; int r, seqno = 1; struct buf_info *fi = buf_open (p); - (*p->init)(&recWord); - recWord.which = Word_String; + (*p->init)(p, &recWord); + recWord.reg_type = 'w'; do { int i = 0; r = buf_read (fi, w); - while (r > 0 && i < 255 && isalnum(w[i])) + while (r > 0 && i < 511 && w[i] != '\n' && w[i] != '\r') { i++; r = buf_read (fi, w + i); } if (i) { - int j; - for (j = 0; jadd)(&recWord); } } while (r > 0);