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

Reply via email to