From: Ben Pfaff Date: Sat, 22 Dec 2012 11:32:09 +0000 (-0800) Subject: value: New function value_is_spaces(). X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=53a87aab3cc88c5c73ffb23fbbab155f1af3ba5c;p=pspp value: New function value_is_spaces(). --- 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;