Enlightenment CVS committal

Author  : mej
Project : eterm
Module  : libast

Dir     : eterm/libast/include/libast


Modified Files:
        linked_list.h obj.h str.h 


Log Message:
Mon Feb  2 17:22:42 2004                        Michael Jennings (mej)

More cleanups.  And yes, I know "make test" doesn't work.

===================================================================
RCS file: /cvsroot/enlightenment/eterm/libast/include/libast/linked_list.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- linked_list.h       24 Jan 2004 19:52:26 -0000      1.11
+++ linked_list.h       2 Feb 2004 22:21:21 -0000       1.12
@@ -36,14 +36,14 @@
 #define SPIF_OBJ_IS_LINKED_LIST_ITEM(o)            (SPIF_OBJ_IS_TYPE((o), 
linked_list_item))
 
 SPIF_DECL_OBJ(linked_list_item) {
-    spif_obj_t data;
-    spif_linked_list_item_t next;
+    SPIF_DECL_PROPERTY(obj, data);
+    SPIF_DECL_PROPERTY(linked_list_item, next);
 };
 
 SPIF_DECL_OBJ(linked_list) {
     SPIF_DECL_PARENT_TYPE(obj);
-    spif_listidx_t len;
-    spif_linked_list_item_t head;
+    SPIF_DECL_PROPERTY(listidx, len);
+    SPIF_DECL_PROPERTY(linked_list_item, head);
 };
 
 extern spif_listclass_t SPIF_LISTCLASS_VAR(linked_list);
===================================================================
RCS file: /cvsroot/enlightenment/eterm/libast/include/libast/obj.h,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -3 -r1.26 -r1.27
--- obj.h       10 Jan 2004 21:15:16 -0000      1.26
+++ obj.h       2 Feb 2004 22:21:21 -0000       1.27
@@ -33,8 +33,8 @@
  * manipulating basic generic objects.
  *
  * @author Michael Jennings <[EMAIL PROTECTED]>
- * $Revision: 1.26 $
- * $Date: 2004/01/10 21:15:16 $
+ * $Revision: 1.27 $
+ * $Date: 2004/02/02 22:21:21 $
  */
 
 /[EMAIL PROTECTED]/
@@ -160,8 +160,8 @@
  * @see @link DOXGRP_OBJ LibAST Object Infrastructure @endlink
  */
 #define SPIF_DECL_PROPERTY_FUNC(otype, vtype, name)  \
-  extern SPIF_TYPE(vtype) spif_ ## otype ## _get_ ## name (SPIF_TYPE(otype)); \
-  extern SPIF_TYPE(bool) spif_ ## otype ## _set_ ## name (SPIF_TYPE(otype), 
SPIF_TYPE(vtype))
+  SPIF_TYPE(vtype) spif_ ## otype ## _get_ ## name (SPIF_TYPE(otype)); \
+  SPIF_TYPE(bool) spif_ ## otype ## _set_ ## name (SPIF_TYPE(otype), SPIF_TYPE(vtype))
 
 /**
  * Declare the get/set methods of a "property" of an object.
@@ -176,8 +176,8 @@
  * @see @link DOXGRP_OBJ LibAST Object Infrastructure @endlink, 
SPIF_DECL_PROPERTY_FUNC()
  */
 #define SPIF_DECL_PROPERTY_FUNC_C(otype, vtype, name)  \
-  extern vtype spif_ ## otype ## _get_ ## name (SPIF_TYPE(otype)); \
-  extern SPIF_TYPE(bool) spif_ ## otype ## _set_ ## name (SPIF_TYPE(otype), vtype)
+  vtype spif_ ## otype ## _get_ ## name (SPIF_TYPE(otype)); \
+  SPIF_TYPE(bool) spif_ ## otype ## _set_ ## name (SPIF_TYPE(otype), vtype)
 
 /**
  * Define the get/set methods of a "property" of an object.
@@ -650,6 +650,29 @@
                                                  spif_str_append_from_ptr((b), tmp); \
                                                } \
                                              } while (0)
+
+/**
+ * Convenience macro for handling NULL objects in a comparison.
+ *
+ * This macro exists because I got tired of typing the same thing over
+ * and over again to handle comparisons where either object may be
+ * NULL.  You should have this at the start of all of your *_comp()
+ * functions. 
+ *
+ * @param s   The "self" (first) object.
+ * @param o   The "other" (second) object.
+ *
+ * @see @link DOXGRP_OBJ LibAST Object Infrastructure @endlink, spif_obj_comp()
+ */
+#define SPIF_OBJ_COMP_CHECK_NULL(s, o) do { \
+                                           if (SPIF_OBJ_ISNULL((s)) && 
SPIF_OBJ_ISNULL((o))) { \
+                                               return SPIF_CMP_EQUAL; \
+                                           } else if (SPIF_OBJ_ISNULL((s))) { \
+                                               return SPIF_CMP_LESS; \
+                                           } else if (SPIF_OBJ_ISNULL((o))) { \
+                                               return SPIF_CMP_GREATER; \
+                                           } \
+                                       } while (0)
 /[EMAIL PROTECTED]/
 
 
===================================================================
RCS file: /cvsroot/enlightenment/eterm/libast/include/libast/str.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -3 -r1.16 -r1.17
--- str.h       10 Jan 2004 21:15:16 -0000      1.16
+++ str.h       2 Feb 2004 22:21:21 -0000       1.17
@@ -40,57 +40,59 @@
 #define SPIF_STR_STR(obj)            (SPIF_CONST_CAST(charptr) 
((SPIF_STR_ISNULL(obj)) \
                                                                 ? (SPIF_CAST(charptr) 
"") \
                                                                 : (SPIF_STR(obj)->s)))
+typedef size_t spif_stridx_t;
 
 SPIF_DECL_OBJ(str) {
     SPIF_DECL_PARENT_TYPE(obj);
     spif_charptr_t s;
-    SPIF_DECL_PROPERTY_C(size_t, size);
-    SPIF_DECL_PROPERTY_C(size_t, len);
+    SPIF_DECL_PROPERTY_C(spif_stridx_t, size);
+    SPIF_DECL_PROPERTY_C(spif_stridx_t, len);
 };
 
 extern spif_class_t SPIF_CLASS_VAR(str);
 extern spif_str_t spif_str_new(void);
 extern spif_str_t spif_str_new_from_ptr(spif_charptr_t);
-extern spif_str_t spif_str_new_from_buff(spif_charptr_t, size_t);
+extern spif_str_t spif_str_new_from_buff(spif_charptr_t, spif_stridx_t);
 extern spif_str_t spif_str_new_from_fp(FILE *);
 extern spif_str_t spif_str_new_from_fd(int);
 extern spif_str_t spif_str_new_from_num(long);
 extern spif_bool_t spif_str_del(spif_str_t);
 extern spif_bool_t spif_str_init(spif_str_t);
 extern spif_bool_t spif_str_init_from_ptr(spif_str_t, spif_charptr_t);
-extern spif_bool_t spif_str_init_from_buff(spif_str_t, spif_charptr_t, size_t);
+extern spif_bool_t spif_str_init_from_buff(spif_str_t, spif_charptr_t, spif_stridx_t);
 extern spif_bool_t spif_str_init_from_fp(spif_str_t, FILE *);
 extern spif_bool_t spif_str_init_from_fd(spif_str_t, int);
 extern spif_bool_t spif_str_init_from_num(spif_str_t, long);
 extern spif_bool_t spif_str_done(spif_str_t);
+extern spif_str_t spif_str_show(spif_str_t, spif_charptr_t, spif_str_t, size_t);
+extern spif_cmp_t spif_str_comp(spif_str_t, spif_str_t);
 extern spif_str_t spif_str_dup(spif_str_t);
-extern spif_cmp_t spif_str_cmp(spif_str_t, spif_str_t);
-extern spif_cmp_t spif_str_cmp_with_ptr(spif_str_t, spif_charptr_t);
+extern spif_classname_t spif_str_type(spif_str_t);
+extern spif_bool_t spif_str_append(spif_str_t, spif_str_t);
+extern spif_bool_t spif_str_append_char(spif_str_t, spif_char_t);
+extern spif_bool_t spif_str_append_from_ptr(spif_str_t, spif_charptr_t);
 extern spif_cmp_t spif_str_casecmp(spif_str_t, spif_str_t);
 extern spif_cmp_t spif_str_casecmp_with_ptr(spif_str_t, spif_charptr_t);
-extern spif_cmp_t spif_str_ncmp(spif_str_t, spif_str_t, size_t);
-extern spif_cmp_t spif_str_ncmp_with_ptr(spif_str_t, spif_charptr_t, size_t);
-extern spif_cmp_t spif_str_ncasecmp(spif_str_t, spif_str_t, size_t);
-extern spif_cmp_t spif_str_ncasecmp_with_ptr(spif_str_t, spif_charptr_t, size_t);
-extern size_t spif_str_index(spif_str_t, spif_char_t);
-extern size_t spif_str_rindex(spif_str_t, spif_char_t);
-extern size_t spif_str_find(spif_str_t, spif_str_t);
-extern size_t spif_str_find_from_ptr(spif_str_t, spif_charptr_t);
+extern spif_bool_t spif_str_clear(spif_str_t, spif_char_t);
+extern spif_cmp_t spif_str_cmp(spif_str_t, spif_str_t);
+extern spif_cmp_t spif_str_cmp_with_ptr(spif_str_t, spif_charptr_t);
+extern spif_stridx_t spif_str_find(spif_str_t, spif_str_t);
+extern spif_stridx_t spif_str_find_from_ptr(spif_str_t, spif_charptr_t);
+extern spif_stridx_t spif_str_index(spif_str_t, spif_char_t);
+extern spif_cmp_t spif_str_ncasecmp(spif_str_t, spif_str_t, spif_stridx_t);
+extern spif_cmp_t spif_str_ncasecmp_with_ptr(spif_str_t, spif_charptr_t, 
spif_stridx_t);
+extern spif_cmp_t spif_str_ncmp(spif_str_t, spif_str_t, spif_stridx_t);
+extern spif_cmp_t spif_str_ncmp_with_ptr(spif_str_t, spif_charptr_t, spif_stridx_t);
+extern spif_bool_t spif_str_reverse(spif_str_t);
+extern spif_stridx_t spif_str_rindex(spif_str_t, spif_char_t);
+extern spif_bool_t spif_str_splice(spif_str_t, spif_stridx_t, spif_stridx_t, 
spif_str_t);
+extern spif_bool_t spif_str_splice_from_ptr(spif_str_t, spif_stridx_t, spif_stridx_t, 
spif_charptr_t);
 extern spif_str_t spif_str_substr(spif_str_t, spif_int32_t, spif_int32_t);
 extern spif_charptr_t spif_str_substr_to_ptr(spif_str_t, spif_int32_t, spif_int32_t);
-extern size_t spif_str_to_num(spif_str_t, int);
 extern double spif_str_to_float(spif_str_t);
-extern spif_bool_t spif_str_append(spif_str_t, spif_str_t);
-extern spif_bool_t spif_str_append_char(spif_str_t, spif_char_t);
-extern spif_bool_t spif_str_append_from_ptr(spif_str_t, spif_charptr_t);
-extern spif_bool_t spif_str_clear(spif_str_t, spif_char_t);
+extern size_t spif_str_to_num(spif_str_t, int);
 extern spif_bool_t spif_str_trim(spif_str_t);
-extern spif_bool_t spif_str_splice(spif_str_t, size_t, size_t, spif_str_t);
-extern spif_bool_t spif_str_splice_from_ptr(spif_str_t, size_t, size_t, 
spif_charptr_t);
-extern spif_bool_t spif_str_reverse(spif_str_t);
-SPIF_DECL_PROPERTY_FUNC_C(str, size_t, size);
-SPIF_DECL_PROPERTY_FUNC_C(str, size_t, len);
-extern spif_str_t spif_str_show(spif_str_t, spif_charptr_t, spif_str_t, size_t);
-extern spif_classname_t spif_str_type(spif_str_t);
+SPIF_DECL_PROPERTY_FUNC_C(str, spif_stridx_t, size);
+SPIF_DECL_PROPERTY_FUNC_C(str, spif_stridx_t, len);
 
 #endif /* _LIBAST_STR_H_ */




-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to