dissect-sysfile: Don't omit the last in a series of text tokens.
authorBen Pfaff <blp@cs.stanford.edu>
Sun, 24 Apr 2011 04:59:38 +0000 (21:59 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Tue, 26 Apr 2011 04:13:53 +0000 (21:13 -0700)
Otherwise dissect-sysfile would not print the last long string
variable name written by sys-file-writer, because it did not include
a separator byte after the last record.  (This was obvious running
dissect-sysfile on a system file with only one variable.)

tests/dissect-sysfile.c

index 444c15cc88bbec3544c017422aecb11b7b700bb3..7ae92bfc57c575939b8865ac1c5b09f2c2422a7c 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -1202,7 +1202,7 @@ text_tokenize (struct text_record *text, int delimiter)
          && text->buffer[text->pos] != delimiter
          && text->buffer[text->pos] != '\0')
     text->pos++;
          && text->buffer[text->pos] != delimiter
          && text->buffer[text->pos] != '\0')
     text->pos++;
-  if (text->pos == text->size)
+  if (start == text->pos)
     return NULL;
   text->buffer[text->pos++] = '\0';
   return &text->buffer[start];
     return NULL;
   text->buffer[text->pos++] = '\0';
   return &text->buffer[start];