/* PSPP - a program for statistical analysis.
- Copyright (C) 1997-9, 2000, 2009 Free Software Foundation, Inc.
+ Copyright (C) 1997-9, 2000, 2009, 2010 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
/* Miscellaneous. */
void buf_reverse (char *, size_t);
-char *buf_find_reverse (const char *, size_t, const char *, size_t);
int buf_compare_case (const char *, const char *, size_t);
int buf_compare_rpad (const char *, size_t, const char *, size_t);
void buf_copy_lpad (char *, size_t, const char *, size_t, char pad);
bool str_format_26adic (unsigned long int number, char buffer[], size_t);
-char *spprintf (char *dst, const char *format, ...);
-
void *mempset (void *, int, size_t);
\f
/* Common character classes for use with substring and string functions. */
/* Constructors.
These functions do not allocate any memory, so the substrings
they create should not normally be destroyed. */
-struct substring ss_empty (void);
-struct substring ss_cstr (const char *);
-struct substring ss_buffer (const char *, size_t);
+static inline struct substring ss_empty (void);
+static inline struct substring ss_cstr (const char *);
+static inline struct substring ss_buffer (const char *, size_t);
struct substring ss_substr (struct substring, size_t start, size_t);
struct substring ss_head (struct substring, size_t);
struct substring ss_tail (struct substring, size_t);
size_t ds_capacity (const struct string *);
char *ds_cstr (const struct string *);
+char *ds_steal_cstr (struct string *);
/* File input. */
bool ds_read_line (struct string *, FILE *, size_t max_length);
void u8_buf_copy_rpad (uint8_t *dst, size_t dst_size,
const uint8_t *src, size_t src_size,
char pad);
-
+\f
+struct substring
+ss_empty (void)
+{
+ struct substring ss;
+ ss.string = NULL;
+ ss.length = 0;
+ return ss;
+}
+
+/* Returns a substring whose contents are the given C-style
+ string CSTR. */
+static inline struct substring
+ss_cstr (const char *cstr)
+{
+ return ss_buffer (cstr, strlen (cstr));
+}
+
+/* Returns a substring whose contents are the CNT characters in
+ BUFFER. */
+static inline struct substring
+ss_buffer (const char *buffer, size_t cnt)
+{
+ struct substring ss;
+ ss.string = (char *) buffer;
+ ss.length = cnt;
+ return ss;
+}
#endif /* str_h */