value: New function value_is_spaces().
authorBen Pfaff <blp@cs.stanford.edu>
Sat, 22 Dec 2012 11:32:09 +0000 (03:32 -0800)
committerBen Pfaff <blp@cs.stanford.edu>
Sat, 22 Dec 2012 11:56:17 +0000 (03:56 -0800)
src/data/value.c
src/data/value.h

index 144f39b5241d1fb7b8b36021e57c23cea65a22ae..ce80076235f8c730a3be760f4931b6a19e0c05ae 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 1997-9, 2000, 2009, 2010, 2011 Free Software Foundation, Inc.
+   Copyright (C) 1997-9, 2000, 2009, 2010, 2011, 2012 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
@@ -173,6 +173,21 @@ value_resize (union value *value, int old_width, int new_width)
     }
 }
 
+/* Returns true if VALUE, with the given WIDTH, is all spaces, false otherwise.
+   Returns false if VALUE is numeric. */
+bool
+value_is_spaces (const union value *value, int width)
+{
+  const uint8_t *s = value_str (value, width);
+  int i;
+
+  for (i = 0; i < width; i++)
+    if (s[i] != ' ')
+      return false;
+
+  return true;
+}
+
 /* Returns true if resizing a value from OLD_WIDTH to NEW_WIDTH
    actually changes anything, false otherwise.  If false is
    returned, calls to value_resize() with the specified
index 9205bc1a031feec0bee4d6858ca5af3b2e3d0b2e..b1b27ed16eae86b938a99e5db3b2f45d89bafb36 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 1997-9, 2000, 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 1997-9, 2000, 2007, 2009, 2010, 2012 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
@@ -77,6 +77,8 @@ bool value_is_resizable (const union value *, int old_width, int new_width);
 bool value_needs_resize (int old_width, int new_width);
 void value_resize (union value *, int old_width, int new_width);
 
+bool value_is_spaces (const union value *, int width);
+
 static inline void value_swap (union value *, union value *);
 
 struct pool;