From 53a87aab3cc88c5c73ffb23fbbab155f1af3ba5c Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Sat, 22 Dec 2012 03:32:09 -0800 Subject: [PATCH] value: New function value_is_spaces(). --- src/data/value.c | 17 ++++++++++++++++- src/data/value.h | 4 +++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/data/value.c b/src/data/value.c index 144f39b524..ce80076235 100644 --- a/src/data/value.c +++ b/src/data/value.c @@ -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 diff --git a/src/data/value.h b/src/data/value.h index 9205bc1a03..b1b27ed16e 100644 --- a/src/data/value.h +++ b/src/data/value.h @@ -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; -- 2.30.2