Enlightenment CVS committal
Author : mej
Project : eterm
Module : libast
Dir : eterm/libast/src
Modified Files:
conf.c mem.c obj.c regexp.c socket.c str.c strings.c
Log Message:
Mon Nov 10 14:28:09 2003 Michael Jennings (mej)
Added assertions/requirements for string member functions.
Changed pointer printouts to %010p instead of %8p, since the latter
didn't account for the possibility of a leading "0x".
Fixed typos in hex_dump().
===================================================================
RCS file: /cvsroot/enlightenment/eterm/libast/src/conf.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- conf.c 17 Mar 2003 21:28:13 -0000 1.10
+++ conf.c 10 Nov 2003 19:29:19 -0000 1.11
@@ -31,7 +31,7 @@
* @author Michael Jennings <[EMAIL PROTECTED]>
*/
-static const char cvs_ident[] = "$Id: conf.c,v 1.10 2003/03/17 21:28:13 mej Exp $";
+static const char cvs_ident[] = "$Id: conf.c,v 1.11 2003/11/10 19:29:19 mej Exp $";
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -111,10 +111,13 @@
unsigned char
conf_register_context(char *name, ctx_handler_t handler)
{
-
- if (++ctx_idx == ctx_cnt) {
- ctx_cnt *= 2;
- context = (ctx_t *) REALLOC(context, sizeof(ctx_t) * ctx_cnt);
+ if (strcasecmp(name, "null")) {
+ if (++ctx_idx == ctx_cnt) {
+ ctx_cnt *= 2;
+ context = (ctx_t *) REALLOC(context, sizeof(ctx_t) * ctx_cnt);
+ }
+ } else {
+ FREE(context[0].name);
}
context[ctx_idx].name = STRDUP(name);
context[ctx_idx].handler = handler;
@@ -220,7 +223,7 @@
D_CONF(("var == \"%s\"\n", var));
for (v = conf_vars; v; v = v->next) {
if (!strcmp(v->var, var)) {
- D_CONF(("Found it at %8p: \"%s\" == \"%s\"\n", v, v->var, v->value));
+ D_CONF(("Found it at %010p: \"%s\" == \"%s\"\n", v, v->var, v->value));
return (v->value);
}
}
@@ -240,7 +243,7 @@
int n;
n = strcmp(var, v->var);
- D_CONF(("Comparing at %8p: \"%s\" -> \"%s\", n == %d\n", v, v->var,
v->value, n));
+ D_CONF(("Comparing at %010p: \"%s\" -> \"%s\", n == %d\n", v, v->var,
v->value, n));
if (n == 0) {
FREE(v->value);
if (val) {
===================================================================
RCS file: /cvsroot/enlightenment/eterm/libast/src/mem.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- mem.c 11 Apr 2003 21:10:34 -0000 1.10
+++ mem.c 10 Nov 2003 19:29:19 -0000 1.11
@@ -29,11 +29,11 @@
* This file contains the memory management subsystem.
*
* @author Michael Jennings <[EMAIL PROTECTED]>
- * $Revision: 1.10 $
- * $Date: 2003/04/11 21:10:34 $
+ * $Revision: 1.11 $
+ * $Date: 2003/11/10 19:29:19 $
*/
-static const char cvs_ident[] = "$Id: mem.c,v 1.10 2003/04/11 21:10:34 mej Exp $";
+static const char cvs_ident[] = "$Id: mem.c,v 1.11 2003/11/10 19:29:19 mej Exp $";
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -153,8 +153,8 @@
D_MEM(("Unable to reallocate pointer list -- %s\n", strerror(errno)));
}
p = memrec->ptrs + memrec->cnt - 1;
- D_MEM(("Adding variable (%8p, %lu bytes) from %s:%lu.\n", ptr, size, filename,
line));
- D_MEM(("Storing as pointer #%lu at %8p (from %8p).\n", memrec->cnt, p,
memrec->ptrs));
+ D_MEM(("Adding variable (%010p, %lu bytes) from %s:%lu.\n", ptr, size, filename,
line));
+ D_MEM(("Storing as pointer #%lu at %010p (from %010p).\n", memrec->cnt, p,
memrec->ptrs));
p->ptr = ptr;
p->size = size;
strncpy(p->file, filename, LIBAST_FNAME_LEN);
@@ -187,7 +187,7 @@
for (i = 0, p = memrec->ptrs; i < memrec->cnt; i++, p++) {
if (p->ptr == ptr) {
- D_MEM(("Found pointer #%lu stored at %8p (from %8p)\n", i + 1, p,
memrec->ptrs));
+ D_MEM(("Found pointer #%lu stored at %010p (from %010p)\n", i + 1, p,
memrec->ptrs));
return p;
}
}
@@ -219,11 +219,11 @@
ASSERT(memrec != NULL);
if ((p = memrec_find_var(memrec, ptr)) == NULL) {
- D_MEM(("ERROR: File %s, line %d attempted to free variable %s (%8p) which
was not allocated with MALLOC/REALLOC\n", filename, line,
+ D_MEM(("ERROR: File %s, line %d attempted to free variable %s (%010p) which
was not allocated with MALLOC/REALLOC\n", filename, line,
var, ptr));
return;
}
- D_MEM(("Removing variable %s (%8p) of size %lu\n", var, ptr, p->size));
+ D_MEM(("Removing variable %s (%010p) of size %lu\n", var, ptr, p->size));
if ((--memrec->cnt) > 0) {
memmove(p, p + 1, sizeof(ptr_t) * (memrec->cnt - (p - memrec->ptrs)));
memrec->ptrs = (ptr_t *) realloc(memrec->ptrs, sizeof(ptr_t) * memrec->cnt);
@@ -257,11 +257,11 @@
ASSERT(memrec != NULL);
if ((p = memrec_find_var(memrec, oldp)) == NULL) {
- D_MEM(("ERROR: File %s, line %d attempted to realloc variable %s (%8p) which
was not allocated with MALLOC/REALLOC\n", filename,
+ D_MEM(("ERROR: File %s, line %d attempted to realloc variable %s (%010p)
which was not allocated with MALLOC/REALLOC\n", filename,
line, var, oldp));
return;
}
- D_MEM(("Changing variable %s (%8p, %lu -> %8p, %lu)\n", var, oldp, p->size, newp,
size));
+ D_MEM(("Changing variable %s (%010p, %lu -> %010p, %lu)\n", var, oldp, p->size,
newp, size));
p->ptr = newp;
p->size = size;
strncpy(p->file, filename, LIBAST_FNAME_LEN);
@@ -301,7 +301,7 @@
/* First, dump the contents of the memrec->ptrs[] array. */
for (p = memrec->ptrs, j = 0; j < len; j += 8) {
- fprintf(LIBAST_DEBUG_FD, "PTR: %07lu | %20s | %6lu | %8p | %06lu | %07x |
", (unsigned long) 0, "", (unsigned long) 0,
+ fprintf(LIBAST_DEBUG_FD, "PTR: %07lu | %20s | %6lu | %010p | %06lu | %07x |
", (unsigned long) 0, "", (unsigned long) 0,
memrec->ptrs, (unsigned long) (sizeof(ptr_t) * memrec->cnt),
(unsigned int) j);
/* l is the number of characters we're going to output */
l = ((len - j < 8) ? (len - j) : (8));
@@ -326,7 +326,7 @@
/* Add this pointer's size to our total */
total += p->size;
for (j = 0; j < p->size; j += 8) {
- fprintf(LIBAST_DEBUG_FD, "PTR: %07lu | %20s | %6lu | %8p | %06lu | %07x
| ", i + 1, NONULL(p->file), p->line, p->ptr,
+ fprintf(LIBAST_DEBUG_FD, "PTR: %07lu | %20s | %6lu | %010p | %06lu |
%07x | ", i + 1, NONULL(p->file), p->line, p->ptr,
(unsigned long) p->size, (unsigned int) j);
/* l is the number of characters we're going to output */
l = ((p->size - j < 8) ? (p->size - j) : (8));
@@ -461,7 +461,7 @@
}
#endif
- D_MEM(("Variable %s (%8p -> %lu) at %s:%lu\n", var, ptr, (unsigned long) size,
filename, line));
+ D_MEM(("Variable %s (%010p -> %lu) at %s:%lu\n", var, ptr, (unsigned long) size,
filename, line));
if (ptr == NULL) {
temp = (void *) libast_malloc(__FILE__, __LINE__, size);
} else {
@@ -541,7 +541,7 @@
}
#endif
- D_MEM(("Variable %s (%8p) at %s:%lu\n", var, ptr, filename, line));
+ D_MEM(("Variable %s (%010p) at %s:%lu\n", var, ptr, filename, line));
if (ptr) {
if (DEBUG_LEVEL >= DEBUG_MEM) {
memrec_rem_var(&malloc_rec, var, filename, line, ptr);
@@ -575,7 +575,7 @@
register char *newstr;
register size_t len;
- D_MEM(("Variable %s (%8p) at %s:%lu\n", var, str, filename, line));
+ D_MEM(("Variable %s (%010p) at %s:%lu\n", var, str, filename, line));
len = strlen(str) + 1; /* Copy NUL byte also */
newstr = (char *) libast_malloc(filename, line, len);
===================================================================
RCS file: /cvsroot/enlightenment/eterm/libast/src/obj.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- obj.c 1 Nov 2003 18:56:43 -0000 1.15
+++ obj.c 10 Nov 2003 19:29:19 -0000 1.16
@@ -28,11 +28,11 @@
* This file contains the basic object class.
*
* @author Michael Jennings <[EMAIL PROTECTED]>
- * $Revision: 1.15 $
- * $Date: 2003/11/01 18:56:43 $
+ * $Revision: 1.16 $
+ * $Date: 2003/11/10 19:29:19 $
*/
-static const char cvs_ident[] = "$Id: obj.c,v 1.15 2003/11/01 18:56:43 mej Exp $";
+static const char cvs_ident[] = "$Id: obj.c,v 1.16 2003/11/10 19:29:19 mej Exp $";
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -118,7 +118,7 @@
spif_bool_t
spif_obj_del(spif_obj_t self)
{
- D_OBJ(("Deleting object %8p\n", self));
+ D_OBJ(("Deleting object %010p\n", self));
spif_obj_done(self);
SPIF_DEALLOC(self);
return TRUE;
===================================================================
RCS file: /cvsroot/enlightenment/eterm/libast/src/regexp.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- regexp.c 4 Jul 2003 03:38:26 -0000 1.5
+++ regexp.c 10 Nov 2003 19:29:20 -0000 1.6
@@ -21,7 +21,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-static const char cvs_ident[] = "$Id: regexp.c,v 1.5 2003/07/04 03:38:26 mej Exp $";
+static const char cvs_ident[] = "$Id: regexp.c,v 1.6 2003/11/10 19:29:20 mej Exp $";
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -153,7 +153,7 @@
}
memset(tmp, ' ', indent);
- snprintf(tmp + indent, sizeof(tmp) - indent, "(spif_regexp_t) %s: %8p {\n",
name, self);
+ snprintf(tmp + indent, sizeof(tmp) - indent, "(spif_regexp_t) %s: %010p {\n",
name, self);
if (SPIF_REGEXP_ISNULL(buff)) {
buff = spif_str_new_from_ptr(tmp);
} else {
===================================================================
RCS file: /cvsroot/enlightenment/eterm/libast/src/socket.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- socket.c 4 Jul 2003 03:38:26 -0000 1.10
+++ socket.c 10 Nov 2003 19:29:20 -0000 1.11
@@ -21,7 +21,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-static const char cvs_ident[] = "$Id: socket.c,v 1.10 2003/07/04 03:38:26 mej Exp $";
+static const char cvs_ident[] = "$Id: socket.c,v 1.11 2003/11/10 19:29:20 mej Exp $";
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -181,7 +181,7 @@
snprintf(tmp + indent, sizeof(tmp) - indent, "(spif_sockproto_t) proto: %d\n",
(int) self->proto);
spif_str_append_from_ptr(buff, tmp);
- snprintf(tmp + indent, sizeof(tmp) - indent, "(spif_sockaddr_t) addr: %8p\n",
self->addr);
+ snprintf(tmp + indent, sizeof(tmp) - indent, "(spif_sockaddr_t) addr: %010p\n",
self->addr);
spif_str_append_from_ptr(buff, tmp);
snprintf(tmp + indent, sizeof(tmp) - indent, "(spif_sockaddr_len_t) len: %lu\n",
(unsigned long) self->len);
===================================================================
RCS file: /cvsroot/enlightenment/eterm/libast/src/str.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -3 -r1.21 -r1.22
--- str.c 31 Oct 2003 20:23:25 -0000 1.21
+++ str.c 10 Nov 2003 19:29:20 -0000 1.22
@@ -21,7 +21,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-static const char cvs_ident[] = "$Id: str.c,v 1.21 2003/10/31 20:23:25 mej Exp $";
+static const char cvs_ident[] = "$Id: str.c,v 1.22 2003/11/10 19:29:20 mej Exp $";
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -109,7 +109,8 @@
spif_bool_t
spif_str_del(spif_str_t self)
{
- D_OBJ(("Deleting string %8p\n", self));
+ REQUIRE_RVAL(!SPIF_STR_ISNULL(self), FALSE);
+ D_OBJ(("Deleting string %010p\n", self));
spif_str_done(self);
SPIF_DEALLOC(self);
return TRUE;
@@ -118,6 +119,7 @@
spif_bool_t
spif_str_init(spif_str_t self)
{
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), FALSE);
spif_obj_init(SPIF_OBJ(self));
spif_obj_set_class(SPIF_OBJ(self), SPIF_CLASS_VAR(str));
self->s = SPIF_NULL_TYPE(charptr);
@@ -129,6 +131,8 @@
spif_bool_t
spif_str_init_from_ptr(spif_str_t self, spif_charptr_t old)
{
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), FALSE);
+ REQUIRE_RVAL((old != SPIF_NULL_TYPE(charptr)), spif_str_init(self));
spif_obj_init(SPIF_OBJ(self));
spif_obj_set_class(SPIF_OBJ(self), SPIF_CLASS_VAR(str));
self->len = strlen(SPIF_CONST_CAST_C(char *) old);
@@ -141,6 +145,7 @@
spif_bool_t
spif_str_init_from_buff(spif_str_t self, spif_charptr_t buff, size_t size)
{
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), FALSE);
spif_obj_init(SPIF_OBJ(self));
spif_obj_set_class(SPIF_OBJ(self), SPIF_CLASS_VAR(str));
self->size = size;
@@ -165,6 +170,8 @@
{
spif_charptr_t p, end = NULL;
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), FALSE);
+ ASSERT_RVAL((fp != SPIF_NULL_TYPE_C(FILE *)), FALSE);
spif_obj_init(SPIF_OBJ(self));
spif_obj_set_class(SPIF_OBJ(self), SPIF_CLASS_VAR(str));
self->size = buff_inc;
@@ -195,6 +202,8 @@
int n;
spif_charptr_t p;
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), FALSE);
+ ASSERT_RVAL((fd >= 0), FALSE);
spif_obj_init(SPIF_OBJ(self));
spif_obj_set_class(SPIF_OBJ(self), SPIF_CLASS_VAR(str));
self->size = buff_inc;
@@ -218,6 +227,7 @@
{
char buff[28];
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), FALSE);
spif_obj_init(SPIF_OBJ(self));
spif_obj_set_class(SPIF_OBJ(self), SPIF_CLASS_VAR(str));
@@ -248,7 +258,7 @@
{
spif_str_t self;
- REQUIRE_RVAL(!SPIF_STR_ISNULL(orig), FALSE);
+ REQUIRE_RVAL(!SPIF_STR_ISNULL(orig), SPIF_NULL_TYPE(str));
self = SPIF_ALLOC(str);
memcpy(self, orig, SPIF_SIZEOF_TYPE(str));
self->s = SPIF_CAST(charptr) STRDUP(SPIF_CONST_CAST_C(char *) SPIF_STR_STR(orig));
@@ -260,56 +270,74 @@
spif_cmp_t
spif_str_cmp(spif_str_t self, spif_str_t other)
{
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), SPIF_CMP_FROM_INT(-1));
+ ASSERT_RVAL(!SPIF_STR_ISNULL(other), SPIF_CMP_FROM_INT(-1));
return SPIF_CMP_FROM_INT(strcmp(SPIF_CONST_CAST_C(char *) SPIF_STR_STR(self),
SPIF_CONST_CAST_C(char *)SPIF_STR_STR(other)));
}
spif_cmp_t
spif_str_cmp_with_ptr(spif_str_t self, spif_charptr_t other)
{
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), SPIF_CMP_FROM_INT(-1));
+ ASSERT_RVAL((other != SPIF_NULL_TYPE(charptr)), SPIF_CMP_FROM_INT(-1));
return SPIF_CMP_FROM_INT(strcmp(SPIF_CONST_CAST_C(char *) SPIF_STR_STR(self),
SPIF_CONST_CAST_C(char *)other));
}
spif_cmp_t
spif_str_casecmp(spif_str_t self, spif_str_t other)
{
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), SPIF_CMP_FROM_INT(-1));
+ ASSERT_RVAL(!SPIF_STR_ISNULL(other), SPIF_CMP_FROM_INT(-1));
return SPIF_CMP_FROM_INT(strcasecmp(SPIF_CONST_CAST_C(char *) SPIF_STR_STR(self),
SPIF_CONST_CAST_C(char *)SPIF_STR_STR(other)));
}
spif_cmp_t
spif_str_casecmp_with_ptr(spif_str_t self, spif_charptr_t other)
{
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), SPIF_CMP_FROM_INT(-1));
+ ASSERT_RVAL((other != SPIF_NULL_TYPE(charptr)), SPIF_CMP_FROM_INT(-1));
return SPIF_CMP_FROM_INT(strcasecmp(SPIF_CONST_CAST_C(char *) SPIF_STR_STR(self),
SPIF_CONST_CAST_C(char *)other));
}
spif_cmp_t
spif_str_ncmp(spif_str_t self, spif_str_t other, size_t cnt)
{
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), SPIF_CMP_FROM_INT(-1));
+ ASSERT_RVAL(!SPIF_STR_ISNULL(other), SPIF_CMP_FROM_INT(-1));
return SPIF_CMP_FROM_INT(strncmp(SPIF_CONST_CAST_C(char *) SPIF_STR_STR(self),
SPIF_CONST_CAST_C(char *)SPIF_STR_STR(other), cnt));
}
spif_cmp_t
spif_str_ncmp_with_ptr(spif_str_t self, spif_charptr_t other, size_t cnt)
{
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), SPIF_CMP_FROM_INT(-1));
+ ASSERT_RVAL((other != SPIF_NULL_TYPE(charptr)), SPIF_CMP_FROM_INT(-1));
return SPIF_CMP_FROM_INT(strncmp(SPIF_CONST_CAST_C(char *) SPIF_STR_STR(self),
SPIF_CONST_CAST_C(char *)other, cnt));
}
spif_cmp_t
spif_str_ncasecmp(spif_str_t self, spif_str_t other, size_t cnt)
{
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), SPIF_CMP_FROM_INT(-1));
+ ASSERT_RVAL(!SPIF_STR_ISNULL(other), SPIF_CMP_FROM_INT(-1));
return SPIF_CMP_FROM_INT(strncasecmp(SPIF_CONST_CAST_C(char *)
SPIF_STR_STR(self), SPIF_CONST_CAST_C(char *)SPIF_STR_STR(other), cnt));
}
spif_cmp_t
spif_str_ncasecmp_with_ptr(spif_str_t self, spif_charptr_t other, size_t cnt)
{
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), SPIF_CMP_FROM_INT(-1));
+ ASSERT_RVAL((other != SPIF_NULL_TYPE(charptr)), SPIF_CMP_FROM_INT(-1));
return SPIF_CMP_FROM_INT(strncasecmp(SPIF_CONST_CAST_C(char *)
SPIF_STR_STR(self), SPIF_CONST_CAST_C(char *)other, cnt));
}
size_t
spif_str_index(spif_str_t self, spif_char_t c)
{
- char *tmp = index(SPIF_CONST_CAST_C(char *) SPIF_STR_STR(self), c);
+ char *tmp;
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), (SPIF_CAST_C(size_t) -1));
+ tmp = index(SPIF_CONST_CAST_C(char *) SPIF_STR_STR(self), c);
if (tmp) {
return SPIF_CAST_C(size_t) (SPIF_CAST_C(long) tmp - SPIF_CAST_C(long)
(SPIF_STR_STR(self)));
} else {
@@ -320,8 +348,10 @@
size_t
spif_str_rindex(spif_str_t self, spif_char_t c)
{
- char *tmp = rindex(SPIF_CONST_CAST_C(char *) SPIF_STR_STR(self), c);
+ char *tmp;
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), (SPIF_CAST_C(size_t) -1));
+ tmp = rindex(SPIF_CONST_CAST_C(char *) SPIF_STR_STR(self), c);
if (tmp) {
return SPIF_CAST_C(size_t) (SPIF_CAST_C(long) tmp - SPIF_CAST_C(long)
(SPIF_STR_STR(self)));
} else {
@@ -332,9 +362,11 @@
size_t
spif_str_find(spif_str_t self, spif_str_t other)
{
- char *tmp = strstr(SPIF_CONST_CAST_C(char *) SPIF_STR_STR(self),
- SPIF_CONST_CAST_C(char *) SPIF_STR_STR(other));
+ char *tmp;
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), (SPIF_CAST_C(size_t) -1));
+ tmp = strstr(SPIF_CONST_CAST_C(char *) SPIF_STR_STR(self),
+ SPIF_CONST_CAST_C(char *) SPIF_STR_STR(other));
if (tmp) {
return SPIF_CAST_C(size_t) (SPIF_CAST_C(long) tmp - SPIF_CAST_C(long)
(SPIF_STR_STR(self)));
} else {
@@ -345,9 +377,11 @@
size_t
spif_str_find_from_ptr(spif_str_t self, spif_charptr_t other)
{
- char *tmp = strstr(SPIF_CONST_CAST_C(char *) SPIF_STR_STR(self),
- SPIF_CONST_CAST_C(char *) other);
+ char *tmp;
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), (SPIF_CAST_C(size_t) -1));
+ tmp = strstr(SPIF_CONST_CAST_C(char *) SPIF_STR_STR(self),
+ SPIF_CONST_CAST_C(char *) other);
if (tmp) {
return SPIF_CAST_C(size_t) (SPIF_CAST_C(long) tmp - SPIF_CAST_C(long)
(SPIF_STR_STR(self)));
} else {
@@ -358,6 +392,7 @@
spif_str_t
spif_str_substr(spif_str_t self, spif_int32_t idx, spif_int32_t cnt)
{
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), SPIF_NULL_TYPE(str));
return spif_str_new_from_buff(SPIF_STR_STR(self) + ((idx < 0) ? (self->len) :
(0)) + idx, cnt);
}
@@ -366,6 +401,7 @@
{
spif_charptr_t newstr;
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), SPIF_NULL_TYPE(charptr));
newstr = SPIF_CAST(charptr) MALLOC(cnt + 1);
memcpy(newstr, SPIF_STR_STR(self) + ((idx < 0) ? (self->len) : (0)) + idx, cnt);
newstr[cnt] = 0;
@@ -375,28 +411,35 @@
size_t
spif_str_to_num(spif_str_t self, int base)
{
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), (SPIF_CAST_C(size_t) -1));
return (size_t) (strtoul(SPIF_CONST_CAST_C(char *) SPIF_STR_STR(self), (char **)
NULL, base));
}
double
spif_str_to_float(spif_str_t self)
{
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), SPIF_CAST_C(double) NAN);
return (double) (strtod(SPIF_CONST_CAST_C(char *)SPIF_STR_STR(self), (char **)
NULL));
}
spif_bool_t
spif_str_append(spif_str_t self, spif_str_t other)
{
- self->size += other->size - 1;
- self->s = SPIF_CAST(charptr) REALLOC(self->s, self->size);
- memcpy(self->s + self->len, SPIF_STR_STR(other), other->len + 1);
- self->len += other->len;
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), FALSE);
+ REQUIRE_RVAL(!SPIF_STR_ISNULL(other), FALSE);
+ if (other->size && other->len) {
+ self->size += other->size - 1;
+ self->s = SPIF_CAST(charptr) REALLOC(self->s, self->size);
+ memcpy(self->s + self->len, SPIF_STR_STR(other), other->len + 1);
+ self->len += other->len;
+ }
return TRUE;
}
spif_bool_t
spif_str_append_char(spif_str_t self, spif_char_t c)
{
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), FALSE);
self->len++;
if (self->size <= self->len) {
self->size++;
@@ -412,17 +455,22 @@
{
size_t len;
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), FALSE);
+ REQUIRE_RVAL((other != SPIF_NULL_TYPE(charptr)), FALSE);
len = strlen(SPIF_CONST_CAST_C(char *) other);
- self->size += len;
- self->s = SPIF_CAST(charptr) REALLOC(self->s, self->size);
- memcpy(self->s + self->len, other, len + 1);
- self->len += len;
+ if (len) {
+ self->size += len;
+ self->s = SPIF_CAST(charptr) REALLOC(self->s, self->size);
+ memcpy(self->s + self->len, other, len + 1);
+ self->len += len;
+ }
return TRUE;
}
spif_bool_t
spif_str_clear(spif_str_t self, spif_char_t c)
{
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), FALSE);
memset(self->s, c, self->size);
self->s[self->len] = 0;
return TRUE;
@@ -433,6 +481,7 @@
{
spif_charptr_t start, end;
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), FALSE);
start = self->s;
end = self->s + self->len - 1;
for (; isspace((spif_uchar_t) (*start)) && (start < end); start++);
@@ -454,6 +503,7 @@
spif_charptr_t tmp, ptmp;
size_t newsize;
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), FALSE);
newsize = self->len + ((SPIF_STR_ISNULL(other)) ? (0) : (other->len)) - cnt + 1;
ptmp = tmp = SPIF_CAST(charptr) MALLOC(newsize);
if (idx > 0) {
@@ -481,6 +531,7 @@
spif_charptr_t tmp, ptmp;
size_t len, newsize;
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), FALSE);
len = (other ? strlen(SPIF_CONST_CAST_C(char *) other) : 0);
newsize = self->len + len - cnt + 1;
ptmp = tmp = SPIF_CAST(charptr) MALLOC(newsize);
@@ -506,6 +557,7 @@
spif_bool_t
spif_str_reverse(spif_str_t self)
{
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), FALSE);
return ((strrev(SPIF_CAST_C(char *) self->s)) ? TRUE : FALSE);
}
@@ -523,7 +575,7 @@
}
memset(tmp, ' ', indent);
- snprintf(tmp + indent, sizeof(tmp) - indent, "(spif_str_t) %s: %8p { \"", name,
self);
+ snprintf(tmp + indent, sizeof(tmp) - indent, "(spif_str_t) %s: %010p { \"",
name, self);
if (SPIF_STR_ISNULL(buff)) {
buff = spif_str_new_from_ptr(tmp);
} else {
@@ -541,5 +593,6 @@
spif_classname_t
spif_str_type(spif_str_t self)
{
+ ASSERT_RVAL(!SPIF_STR_ISNULL(self), SPIF_NULLSTR_TYPE(classname));
return SPIF_OBJ_CLASSNAME(self);
}
===================================================================
RCS file: /cvsroot/enlightenment/eterm/libast/src/strings.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- strings.c 17 Jun 2003 00:44:08 -0000 1.10
+++ strings.c 10 Nov 2003 19:29:21 -0000 1.11
@@ -30,7 +30,7 @@
* @author Michael Jennings <[EMAIL PROTECTED]>
*/
-static const char cvs_ident[] = "$Id: strings.c,v 1.10 2003/06/17 00:44:08 mej Exp $";
+static const char cvs_ident[] = "$Id: strings.c,v 1.11 2003/11/10 19:29:21 mej Exp $";
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -740,20 +740,20 @@
register unsigned char *ptr;
unsigned char buffr[9];
- print_error(" Address | Size | Offset | 00 01 02 03 04 05 06 07 | ASCII \n");
- print_error("---------+--------+---------+-------------------------+---------\n");
+ fprintf(stderr, " Address | Size | Offset | 00 01 02 03 04 05 06 07 | ASCII
\n");
+ fprintf(stderr,
"-----------+--------+---------+-------------------------+---------\n");
for (ptr = (unsigned char *) buff, j = 0; j < count; j += 8) {
- print_error(" %8p | %06lu | %07x | ", buff, (unsigned long) count, (unsigned
int) j);
+ fprintf(stderr, " %010p | %06lu | %07x | ", buff, (unsigned long) count,
(unsigned int) j);
l = ((count - j < 8) ? (count - j) : (8));
memcpy(buffr, ptr + j, l);
memset(buffr + l, 0, 9 - l);
for (k = 0; k < l; k++) {
- print_error("%02x ", buffr[k]);
+ fprintf(stderr, "%02x ", buffr[k]);
}
for (; k < 8; k++) {
- print_error(" ");
+ fprintf(stderr, " ");
}
- print_error("| %-8s\n", safe_str((char *) buffr, l));
+ fprintf(stderr, "| %-8s\n", safe_str((char *) buffr, l));
}
}
-------------------------------------------------------
This SF.Net email sponsored by: ApacheCon 2003,
16-19 November in Las Vegas. Learn firsthand the latest
developments in Apache, PHP, Perl, XML, Java, MySQL,
WebDAV, and more! http://www.apachecon.com/
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs