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