projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Removed unused function
[pspp-builds.git]
/
src
/
data
/
value.c
diff --git
a/src/data/value.c
b/src/data/value.c
index 2341f0293c92aa90df7242e92a807a806649421f..6dbecb11abfca8137bc8fdc763ffc1c0a8568bc2 100644
(file)
--- a/
src/data/value.c
+++ b/
src/data/value.c
@@
-22,6
+22,7
@@
#include <libpspp/hash.h>
#include <libpspp/pool.h>
#include <libpspp/str.h>
#include <libpspp/hash.h>
#include <libpspp/pool.h>
#include <libpspp/str.h>
+#include <gl/unistr.h>
#include "minmax.h"
#include "xalloc.h"
#include "minmax.h"
#include "xalloc.h"
@@
-44,7
+45,7
@@
value_copy_rpad (union value *dst, int dst_width,
const union value *src, int src_width,
char pad)
{
const union value *src, int src_width,
char pad)
{
- buf_copy_rpad (value_str_rw (dst, dst_width), dst_width,
+
u8_
buf_copy_rpad (value_str_rw (dst, dst_width), dst_width,
value_str (src, src_width), src_width,
pad);
}
value_str (src, src_width), src_width,
pad);
}
@@
-62,10
+63,10
@@
value_copy_rpad (union value *dst, int dst_width,
DST was initialized. Passing, e.g., a smaller value in order
to modify only a prefix of DST will not work in every case. */
void
DST was initialized. Passing, e.g., a smaller value in order
to modify only a prefix of DST will not work in every case. */
void
-value_copy_str_rpad (union value *dst, int dst_width, const
char
*src,
+value_copy_str_rpad (union value *dst, int dst_width, const
uint8_t
*src,
char pad)
{
char pad)
{
- value_copy_buf_rpad (dst, dst_width, src, strlen (src), pad);
+ value_copy_buf_rpad (dst, dst_width, src,
u8_
strlen (src), pad);
}
/* Copies the SRC_LEN bytes at SRC to string value DST with width
}
/* Copies the SRC_LEN bytes at SRC to string value DST with width
@@
-81,9
+82,9
@@
value_copy_str_rpad (union value *dst, int dst_width, const char *src,
to modify only a prefix of DST will not work in every case. */
void
value_copy_buf_rpad (union value *dst, int dst_width,
to modify only a prefix of DST will not work in every case. */
void
value_copy_buf_rpad (union value *dst, int dst_width,
- const
char
*src, size_t src_len, char pad)
+ const
uint8_t
*src, size_t src_len, char pad)
{
{
- buf_copy_rpad (value_str_rw (dst, dst_width), dst_width, src, src_len, pad);
+
u8_
buf_copy_rpad (value_str_rw (dst, dst_width), dst_width, src, src_len, pad);
}
/* Sets V to the system-missing value for data of the given
}
/* Sets V to the system-missing value for data of the given
@@
-91,10
+92,13
@@
value_copy_buf_rpad (union value *dst, int dst_width,
void
value_set_missing (union value *v, int width)
{
void
value_set_missing (union value *v, int width)
{
- if (width == 0)
- v->f = SYSMIS;
- else
- memset (value_str_rw (v, width), ' ', width);
+ if (width != -1)
+ {
+ if (width == 0)
+ v->f = SYSMIS;
+ else
+ memset (value_str_rw (v, width), ' ', width);
+ }
}
/* Compares A and B, which both have the given WIDTH, and returns
}
/* Compares A and B, which both have the given WIDTH, and returns
@@
-102,8
+106,8
@@
value_set_missing (union value *v, int width)
int
value_compare_3way (const union value *a, const union value *b, int width)
{
int
value_compare_3way (const union value *a, const union value *b, int width)
{
- return (width == 0
- ? (a->f < b->f ? -1 : a->f > b->f)
+ return (width ==
-1 ?
0
+
: width == 0
? (a->f < b->f ? -1 : a->f > b->f)
: memcmp (value_str (a, width), value_str (b, width), width));
}
: memcmp (value_str (a, width), value_str (b, width), width));
}
@@
-112,8
+116,8
@@
value_compare_3way (const union value *a, const union value *b, int width)
bool
value_equal (const union value *a, const union value *b, int width)
{
bool
value_equal (const union value *a, const union value *b, int width)
{
- return (width ==
0
- ? a->f == b->f
+ return (width ==
-1 ? true
+
: width == 0
? a->f == b->f
: !memcmp (value_str (a, width), value_str (b, width), width));
}
: !memcmp (value_str (a, width), value_str (b, width), width));
}
@@
-122,8
+126,8
@@
value_equal (const union value *a, const union value *b, int width)
unsigned int
value_hash (const union value *value, int width, unsigned int basis)
{
unsigned int
value_hash (const union value *value, int width, unsigned int basis)
{
- return (width ==
0
- ? hash_double (value->f, basis)
+ return (width ==
-1 ? basis
+
: width == 0
? hash_double (value->f, basis)
: hash_bytes (value_str (value, width), width, basis));
}
: hash_bytes (value_str (value, width), width, basis));
}
@@
-142,7
+146,7
@@
value_is_resizable (const union value *value, int old_width, int new_width)
return false;
else
{
return false;
else
{
- const
char
*str = value_str (value, old_width);
+ const
uint8_t
*str = value_str (value, old_width);
int i;
for (i = new_width; i < old_width; i++)
int i;
for (i = new_width; i < old_width; i++)
@@
-189,8
+193,8
@@
value_needs_resize (int old_width, int new_width)
anyway in hopes of saving memory.) */
return (old_width != new_width
&& (new_width > old_width
anyway in hopes of saving memory.) */
return (old_width != new_width
&& (new_width > old_width
- || old_width >
= MIN_LONG
_STRING
- || new_width >
= MIN_LONG
_STRING));
+ || old_width >
MAX_SHORT
_STRING
+ || new_width >
MAX_SHORT
_STRING));
}
/* Same as value_init, except that memory for VALUE (if
}
/* Same as value_init, except that memory for VALUE (if
@@
-222,7
+226,7
@@
value_resize_pool (struct pool *pool, union value *value,
{
if (new_width > MAX_SHORT_STRING)
{
{
if (new_width > MAX_SHORT_STRING)
{
-
char
*new_long_string = pool_alloc_unaligned (pool, new_width);
+
uint8_t
*new_long_string = pool_alloc_unaligned (pool, new_width);
memcpy (new_long_string, value_str (value, old_width), old_width);
value->long_string = new_long_string;
}
memcpy (new_long_string, value_str (value, old_width), old_width);
value->long_string = new_long_string;
}