Changes in / [d8e2f07:95b52d1]
- Files:
-
- 1 added
- 36 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile.am
rc266281 r4f746f8 38 38 $(GIT_FLAGS) 39 39 40 CODELIST_SRCS= message.c mainwin.c popwin.c zephyr.c messagelist.c \40 CODELIST_SRCS=list.c message.c mainwin.c popwin.c zephyr.c messagelist.c \ 41 41 commands.c global.c text.c fmtext.c editwin.c util.c logging.c \ 42 42 perlconfig.c keys.c functions.c zwrite.c viewwin.c help.c filter.c \ -
aim.c
re4524da rd427f08 437 437 438 438 /* caller must free the return */ 439 CALLER_OWNchar *owl_aim_normalize_screenname(const char *in)439 G_GNUC_WARN_UNUSED_RESULT char *owl_aim_normalize_screenname(const char *in) 440 440 { 441 441 char *out; … … 1439 1439 const char *address, *SNs; 1440 1440 int num, i; 1441 GPtrArray *list;1441 owl_list list; 1442 1442 1443 1443 va_start(ap, fr); … … 1447 1447 va_end(ap); 1448 1448 1449 list = g_ptr_array_new();1449 owl_list_create(&list); 1450 1450 1451 1451 owl_function_debugmsg("faimtest_parse_searchreply: E-Mail Search Results for %s: ", address); 1452 1452 for (i=0; i<num; i++) { 1453 1453 owl_function_debugmsg(" %s", &SNs[i*(MAXSNLEN+1)]); 1454 g_ptr_array_add(list, (void *)&SNs[i*(MAXSNLEN+1)]);1455 } 1456 owl_function_aimsearch_results(address, list);1457 g_ptr_array_free(list, true);1458 return 1;1454 owl_list_append_element(&list, (void *)&SNs[i*(MAXSNLEN+1)]); 1455 } 1456 owl_function_aimsearch_results(address, &list); 1457 owl_list_cleanup(&list, NULL); 1458 return(1); 1459 1459 } 1460 1460 -
buddylist.c
r3cdd6d2 r96828e4 3 3 void owl_buddylist_init(owl_buddylist *bl) 4 4 { 5 bl->buddies = g_ptr_array_new();5 owl_list_create(&(bl->buddies)); 6 6 } 7 7 … … 14 14 15 15 owl_buddy_create(b, OWL_PROTOCOL_AIM, screenname); 16 g_ptr_array_add(bl->buddies, b);16 owl_list_append_element(&(bl->buddies), b); 17 17 } 18 18 … … 21 21 int owl_buddylist_remove_aim_buddy(owl_buddylist *bl, const char *name) 22 22 { 23 int i ;23 int i, j; 24 24 owl_buddy *b; 25 25 26 for (i = 0; i < bl->buddies->len; i++) { 27 b = bl->buddies->pdata[i]; 26 j=owl_list_get_size(&(bl->buddies)); 27 for (i=0; i<j; i++) { 28 b=owl_list_get_element(&(bl->buddies), i); 28 29 if (!strcasecmp(name, owl_buddy_get_name(b)) && owl_buddy_is_proto_aim(b)) { 29 owl_buddy_delete(g_ptr_array_remove_index(bl->buddies, i)); 30 owl_list_remove_element(&(bl->buddies), i); 31 owl_buddy_delete(b); 30 32 return(0); 31 33 } … … 85 87 int owl_buddylist_get_size(const owl_buddylist *bl) 86 88 { 87 return bl->buddies->len;89 return(owl_list_get_size(&(bl->buddies))); 88 90 } 89 91 … … 95 97 if (index>(owl_buddylist_get_size(bl)-1)) return(NULL); 96 98 97 return bl->buddies->pdata[index];99 return(owl_list_get_element(&(bl->buddies), index)); 98 100 } 99 101 … … 103 105 owl_buddy *owl_buddylist_get_aim_buddy(const owl_buddylist *bl, const char *name) 104 106 { 105 int i ;107 int i, j; 106 108 owl_buddy *b; 107 109 108 for (i = 0; i < bl->buddies->len; i++) { 109 b = bl->buddies->pdata[i]; 110 j=owl_list_get_size(&(bl->buddies)); 111 for (i=0; i<j; i++) { 112 b=owl_list_get_element(&(bl->buddies), i); 110 113 if (!strcasecmp(name, owl_buddy_get_name(b))) return(b); 111 114 } … … 128 131 void owl_buddylist_clear(owl_buddylist *bl) 129 132 { 130 g_ptr_array_foreach(bl->buddies, (GFunc)owl_buddy_delete, NULL);131 g_ptr_array_set_size(bl->buddies, 0);133 owl_list_cleanup(&(bl->buddies), (void (*)(void *))owl_buddy_delete); 134 owl_list_create(&(bl->buddies)); 132 135 } 133 136 134 137 void owl_buddylist_cleanup(owl_buddylist *bl) 135 138 { 136 owl_ ptr_array_free(bl->buddies, (GDestroyNotify)owl_buddy_delete);139 owl_list_cleanup(&(bl->buddies), (void (*)(void *))owl_buddy_delete); 137 140 } -
cmd.c
rce68f23 rd427f08 28 28 } 29 29 30 GPtrArray *owl_cmddict_get_names(const owl_cmddict *d) {31 return owl_dict_get_keys(d);30 void owl_cmddict_get_names(const owl_cmddict *d, owl_list *l) { 31 owl_dict_get_keys(d, l); 32 32 } 33 33 … … 56 56 57 57 /* caller must free the return */ 58 CALLER_OWNchar *_owl_cmddict_execute(const owl_cmddict *cd, const owl_context *ctx, const char *const *argv, int argc, const char *buff)58 G_GNUC_WARN_UNUSED_RESULT char *_owl_cmddict_execute(const owl_cmddict *cd, const owl_context *ctx, const char *const *argv, int argc, const char *buff) 59 59 { 60 60 char *retval = NULL; … … 73 73 74 74 /* caller must free the return */ 75 CALLER_OWNchar *owl_cmddict_execute(const owl_cmddict *cd, const owl_context *ctx, const char *cmdbuff)75 G_GNUC_WARN_UNUSED_RESULT char *owl_cmddict_execute(const owl_cmddict *cd, const owl_context *ctx, const char *cmdbuff) 76 76 { 77 77 char **argv; … … 97 97 98 98 /* caller must free the return */ 99 CALLER_OWNchar *owl_cmddict_execute_argv(const owl_cmddict *cd, const owl_context *ctx, const char *const *argv, int argc)99 G_GNUC_WARN_UNUSED_RESULT char *owl_cmddict_execute_argv(const owl_cmddict *cd, const owl_context *ctx, const char *const *argv, int argc) 100 100 { 101 101 char *buff; … … 154 154 155 155 /* caller must free the result */ 156 CALLER_OWNchar *owl_cmd_execute(const owl_cmd *cmd, const owl_cmddict *cd, const owl_context *ctx, int argc, const char *const *argv, const char *cmdbuff)156 G_GNUC_WARN_UNUSED_RESULT char *owl_cmd_execute(const owl_cmd *cmd, const owl_cmddict *cd, const owl_context *ctx, int argc, const char *const *argv, const char *cmdbuff) 157 157 { 158 158 static int alias_recurse_depth = 0; … … 228 228 229 229 /* returns a summary line describing this keymap. the caller must free. */ 230 CALLER_OWNchar *owl_cmd_describe(const owl_cmd *cmd)230 G_GNUC_WARN_UNUSED_RESULT char *owl_cmd_describe(const owl_cmd *cmd) 231 231 { 232 232 if (!cmd || !cmd->name || !cmd->summary) return NULL; -
commands.c
re6d7e4e rb470451 1373 1373 } 1374 1374 1375 CALLER_OWNchar *owl_command_smartfilter(int argc, const char *const *argv, const char *buff)1375 G_GNUC_WARN_UNUSED_RESULT char *owl_command_smartfilter(int argc, const char *const *argv, const char *buff) 1376 1376 { 1377 1377 char *filtname = NULL; … … 1413 1413 } 1414 1414 1415 CALLER_OWNchar *owl_command_get_shift(int argc, const char *const *argv, const char *buff)1415 G_GNUC_WARN_UNUSED_RESULT char *owl_command_get_shift(int argc, const char *const *argv, const char *buff) 1416 1416 { 1417 1417 if(argc != 1) … … 1644 1644 1645 1645 1646 CALLER_OWNchar *owl_command_exec(int argc, const char *const *argv, const char *buff)1646 G_GNUC_WARN_UNUSED_RESULT char *owl_command_exec(int argc, const char *const *argv, const char *buff) 1647 1647 { 1648 1648 return owl_function_exec(argc, argv, buff, OWL_OUTPUT_RETURN); 1649 1649 } 1650 1650 1651 CALLER_OWNchar *owl_command_pexec(int argc, const char *const *argv, const char *buff)1651 G_GNUC_WARN_UNUSED_RESULT char *owl_command_pexec(int argc, const char *const *argv, const char *buff) 1652 1652 { 1653 1653 return owl_function_exec(argc, argv, buff, OWL_OUTPUT_POPUP); 1654 1654 } 1655 1655 1656 CALLER_OWNchar *owl_command_aexec(int argc, const char *const *argv, const char *buff)1656 G_GNUC_WARN_UNUSED_RESULT char *owl_command_aexec(int argc, const char *const *argv, const char *buff) 1657 1657 { 1658 1658 return owl_function_exec(argc, argv, buff, OWL_OUTPUT_ADMINMSG); 1659 1659 } 1660 1660 1661 CALLER_OWNchar *owl_command_perl(int argc, const char *const *argv, const char *buff)1661 G_GNUC_WARN_UNUSED_RESULT char *owl_command_perl(int argc, const char *const *argv, const char *buff) 1662 1662 { 1663 1663 return owl_function_perl(argc, argv, buff, OWL_OUTPUT_RETURN); 1664 1664 } 1665 1665 1666 CALLER_OWNchar *owl_command_pperl(int argc, const char *const *argv, const char *buff)1666 G_GNUC_WARN_UNUSED_RESULT char *owl_command_pperl(int argc, const char *const *argv, const char *buff) 1667 1667 { 1668 1668 return owl_function_perl(argc, argv, buff, OWL_OUTPUT_POPUP); 1669 1669 } 1670 1670 1671 CALLER_OWNchar *owl_command_aperl(int argc, const char *const *argv, const char *buff)1671 G_GNUC_WARN_UNUSED_RESULT char *owl_command_aperl(int argc, const char *const *argv, const char *buff) 1672 1672 { 1673 1673 return owl_function_perl(argc, argv, buff, OWL_OUTPUT_ADMINMSG); 1674 1674 } 1675 1675 1676 CALLER_OWNchar *owl_command_multi(int argc, const char *const *argv, const char *buff)1676 G_GNUC_WARN_UNUSED_RESULT char *owl_command_multi(int argc, const char *const *argv, const char *buff) 1677 1677 { 1678 1678 char *lastrv = NULL, *newbuff; … … 2467 2467 void owl_command_punt_unpunt(int argc, const char *const * argv, const char *buff, int unpunt) 2468 2468 { 2469 GPtrArray * fl; 2469 owl_list * fl; 2470 owl_filter * f; 2470 2471 int i; 2471 2472 … … 2477 2478 if(unpunt && (i=atoi(argv[1])) !=0) { 2478 2479 i--; /* Accept 1-based indexing */ 2479 if (i < fl->len) { 2480 owl_filter_delete(g_ptr_array_remove_index(fl, i)); 2480 if(i < owl_list_get_size(fl)) { 2481 f = owl_list_get_element(fl, i); 2482 owl_list_remove_element(fl, i); 2483 owl_filter_delete(f); 2481 2484 return; 2482 2485 } else { … … 2591 2594 } 2592 2595 2593 CALLER_OWNchar *owl_command_getstyle(int argc, const char *const *argv, const char *buff)2596 G_GNUC_WARN_UNUSED_RESULT char *owl_command_getstyle(int argc, const char *const *argv, const char *buff) 2594 2597 { 2595 2598 const char *stylename; … … 2634 2637 } 2635 2638 2636 CALLER_OWNchar *owl_command_with_history(int argc, const char *const *argv, const char *buff)2639 G_GNUC_WARN_UNUSED_RESULT char *owl_command_with_history(int argc, const char *const *argv, const char *buff) 2637 2640 { 2638 2641 owl_history *hist; -
context.c
r6829afc rd427f08 6 6 7 7 /* TODO: dependency from owl_context -> owl_window is annoying. */ 8 CALLER_OWNowl_context *owl_context_new(int mode, void *data, const char *keymap, owl_window *cursor)8 G_GNUC_WARN_UNUSED_RESULT owl_context *owl_context_new(int mode, void *data, const char *keymap, owl_window *cursor) 9 9 { 10 10 owl_context *c; -
dict.c
rce68f23 rd427f08 56 56 } 57 57 58 /* Returns a GPtrArray of dictionary keys. Duplicates the keys, so 59 * they will need to be freed by the caller with g_free. */ 60 CALLER_OWN GPtrArray *owl_dict_get_keys(const owl_dict *d) { 61 GPtrArray *keys = g_ptr_array_sized_new(d->size); 58 /* Appends dictionary keys to a list. Duplicates the keys, 59 * so they will need to be freed by the caller. */ 60 void owl_dict_get_keys(const owl_dict *d, owl_list *l) { 62 61 int i; 63 for (i = 0; i <d->size; i++) {64 g_ptr_array_add(keys, g_strdup(d->els[i].k));62 for (i=0; i<d->size; i++) { 63 owl_list_append_element(l, g_strdup(d->els[i].k)); 65 64 } 66 return keys;67 65 } 68 66 … … 109 107 /* Doesn't free the value of the element, but does 110 108 * return it so the caller can free it. */ 111 CALLER_OWNvoid *owl_dict_remove_element(owl_dict *d, const char *k)109 G_GNUC_WARN_UNUSED_RESULT void *owl_dict_remove_element(owl_dict *d, const char *k) 112 110 { 113 111 int i; -
editcontext.c
r6829afc rd427f08 8 8 } 9 9 10 CALLER_OWNowl_context *owl_editcontext_new(int mode, owl_editwin *e, const char *keymap, void (*deactivate_cb)(owl_context*), void *cbdata)10 G_GNUC_WARN_UNUSED_RESULT owl_context *owl_editcontext_new(int mode, owl_editwin *e, const char *keymap, void (*deactivate_cb)(owl_context*), void *cbdata) 11 11 { 12 12 owl_context *ctx = owl_context_new(mode, owl_editwin_ref(e), keymap, -
editwin.c
r6829afc rd427f08 61 61 static const char *oe_copy_buf(owl_editwin *e, const char *buf, int len); 62 62 static int oe_copy_region(owl_editwin *e); 63 static CALLER_OWNchar *oe_chunk(owl_editwin *e, int start, int end);63 static G_GNUC_WARN_UNUSED_RESULT char *oe_chunk(owl_editwin *e, int start, int end); 64 64 static void oe_destroy_cbdata(owl_editwin *e); 65 65 static void oe_dirty(owl_editwin *e); … … 70 70 #define WHITESPACE " \n\t" 71 71 72 static CALLER_OWNowl_editwin *owl_editwin_allocate(void)72 static G_GNUC_WARN_UNUSED_RESULT owl_editwin *owl_editwin_allocate(void) 73 73 { 74 74 owl_editwin *e = g_new0(owl_editwin, 1); … … 142 142 } 143 143 144 CALLER_OWNowl_editwin *owl_editwin_new(owl_window *win, int winlines, int wincols, int style, owl_history *hist)144 G_GNUC_WARN_UNUSED_RESULT owl_editwin *owl_editwin_new(owl_window *win, int winlines, int wincols, int style, owl_history *hist) 145 145 { 146 146 owl_editwin *e = owl_editwin_allocate(); … … 1369 1369 } 1370 1370 1371 CALLER_OWNchar *owl_editwin_get_region(owl_editwin *e)1371 G_GNUC_WARN_UNUSED_RESULT char *owl_editwin_get_region(owl_editwin *e) 1372 1372 { 1373 1373 int start, end; … … 1388 1388 } 1389 1389 1390 static CALLER_OWNchar *oe_chunk(owl_editwin *e, int start, int end)1390 static G_GNUC_WARN_UNUSED_RESULT char *oe_chunk(owl_editwin *e, int start, int end) 1391 1391 { 1392 1392 char *p; -
errqueue.c
reb897c6 rd4927a7 3 3 void owl_errqueue_init(owl_errqueue *eq) 4 4 { 5 eq->errlist = g_ptr_array_new();5 owl_list_create(&(eq->errlist)); 6 6 } 7 7 8 8 void owl_errqueue_append_err(owl_errqueue *eq, const char *msg) 9 9 { 10 g_ptr_array_add(eq->errlist, g_strdup(msg));10 owl_list_append_element(&(eq->errlist), g_strdup(msg)); 11 11 } 12 12 … … 14 14 void owl_errqueue_to_fmtext(const owl_errqueue *eq, owl_fmtext *fm) 15 15 { 16 int i; 17 for (i = 0; i < eq->errlist->len; i++) { 18 owl_fmtext_append_normal(fm, eq->errlist->pdata[i]); 16 int i, j; 17 18 j=owl_list_get_size(&(eq->errlist)); 19 for (i=0; i<j; i++) { 20 owl_fmtext_append_normal(fm, owl_list_get_element(&(eq->errlist), i)); 19 21 owl_fmtext_append_normal(fm, "\n"); 20 22 } -
filter.c
r2560529 rd427f08 200 200 201 201 202 CALLER_OWN char*owl_filter_print(const owl_filter *f)202 char G_GNUC_WARN_UNUSED_RESULT *owl_filter_print(const owl_filter *f) 203 203 { 204 204 GString *out = g_string_new(""); -
fmtext.c
r2560529 rd427f08 171 171 * freeing the return 172 172 */ 173 CALLER_OWN char*owl_fmtext_print_plain(const owl_fmtext *f)173 char G_GNUC_WARN_UNUSED_RESULT *owl_fmtext_print_plain(const owl_fmtext *f) 174 174 { 175 175 return owl_strip_format_chars(f->buff->str); … … 755 755 * If format_fn is specified, passes it the list element value 756 756 * and it will return a string which this needs to free. */ 757 void owl_fmtext_append_list(owl_fmtext *f, const GPtrArray*l, const char *join_with, char *(format_fn)(const char *))758 { 759 int i ;757 void owl_fmtext_append_list(owl_fmtext *f, const owl_list *l, const char *join_with, char *(format_fn)(const char *)) 758 { 759 int i, size; 760 760 const char *elem; 761 761 char *text; 762 762 763 for (i = 0; i < l->len; i++) { 764 elem = l->pdata[i]; 763 size = owl_list_get_size(l); 764 for (i=0; i<size; i++) { 765 elem = owl_list_get_element(l,i); 765 766 if (elem && format_fn) { 766 767 text = format_fn(elem); … … 772 773 owl_fmtext_append_normal(f, elem); 773 774 } 774 if ((i < l->len -1) && join_with) {775 if ((i < size-1) && join_with) { 775 776 owl_fmtext_append_normal(f, join_with); 776 777 } -
functions.c
rce68f23 rb470451 14 14 #include "filterproc.h" 15 15 16 CALLER_OWNchar *owl_function_command(const char *cmdbuff)16 G_GNUC_WARN_UNUSED_RESULT char *owl_function_command(const char *cmdbuff) 17 17 { 18 18 owl_function_debugmsg("executing command: %s", cmdbuff); … … 21 21 } 22 22 23 CALLER_OWNchar *owl_function_command_argv(const char *const *argv, int argc)23 G_GNUC_WARN_UNUSED_RESULT char *owl_function_command_argv(const char *const *argv, int argc) 24 24 { 25 25 return owl_cmddict_execute_argv(owl_global_get_cmddict(&g), … … 47 47 void owl_function_show_commands(void) 48 48 { 49 GPtrArray *l;49 owl_list l; 50 50 owl_fmtext fm; 51 51 … … 53 53 owl_fmtext_append_bold(&fm, "Commands: "); 54 54 owl_fmtext_append_normal(&fm, "(use 'show command <name>' for details)\n"); 55 l = owl_cmddict_get_names(owl_global_get_cmddict(&g)); 56 owl_fmtext_append_list(&fm, l, "\n", owl_function_cmd_describe); 55 owl_list_create(&l); 56 owl_cmddict_get_names(owl_global_get_cmddict(&g), &l); 57 owl_fmtext_append_list(&fm, &l, "\n", owl_function_cmd_describe); 57 58 owl_fmtext_append_normal(&fm, "\n"); 58 59 owl_function_popless_fmtext(&fm); 59 owl_ ptr_array_free(l, g_free);60 owl_list_cleanup(&l, g_free); 60 61 owl_fmtext_cleanup(&fm); 61 62 } … … 80 81 81 82 void owl_function_show_styles(void) { 82 GPtrArray *l;83 owl_list l; 83 84 owl_fmtext fm; 84 85 85 86 owl_fmtext_init_null(&fm); 86 87 owl_fmtext_append_bold(&fm, "Styles:\n"); 87 l = owl_global_get_style_names(&g); 88 owl_fmtext_append_list(&fm, l, "\n", owl_function_style_describe); 88 owl_list_create(&l); 89 owl_global_get_style_names(&g, &l); 90 owl_fmtext_append_list(&fm, &l, "\n", owl_function_style_describe); 89 91 owl_fmtext_append_normal(&fm, "\n"); 90 92 owl_function_popless_fmtext(&fm); 91 owl_ ptr_array_free(l, g_free);93 owl_list_cleanup(&l, g_free); 92 94 owl_fmtext_cleanup(&fm); 93 95 } 94 96 95 CALLER_OWNchar *owl_function_style_describe(const char *name)97 G_GNUC_WARN_UNUSED_RESULT char *owl_function_style_describe(const char *name) 96 98 { 97 99 const char *desc; … … 110 112 } 111 113 112 CALLER_OWNchar *owl_function_cmd_describe(const char *name)114 G_GNUC_WARN_UNUSED_RESULT char *owl_function_cmd_describe(const char *name) 113 115 { 114 116 const owl_cmd *cmd = owl_cmddict_find(owl_global_get_cmddict(&g), name); … … 248 250 * owl_global_messagequeue_addmsg() for that. 249 251 */ 250 CALLER_OWNowl_message *owl_function_make_outgoing_aim(const char *body, const char *to)252 G_GNUC_WARN_UNUSED_RESULT owl_message *owl_function_make_outgoing_aim(const char *body, const char *to) 251 253 { 252 254 owl_message *m; … … 269 271 * owl_global_messagequeue_addmsg() for that. 270 272 */ 271 CALLER_OWNowl_message *owl_function_make_outgoing_loopback(const char *body)273 G_GNUC_WARN_UNUSED_RESULT owl_message *owl_function_make_outgoing_loopback(const char *body) 272 274 { 273 275 owl_message *m; … … 1574 1576 const char *name; 1575 1577 char *var; 1576 GPtrArray *varnames;1577 int i ;1578 owl_list varnames; 1579 int i, numvarnames; 1578 1580 GString *str = g_string_new(""); 1579 1581 1580 1582 g_string_append_printf(str, "%-20s = %s\n", "VARIABLE", "VALUE"); 1581 1583 g_string_append_printf(str, "%-20s %s\n", "--------", "-----"); 1582 varnames = owl_variable_dict_get_names(owl_global_get_vardict(&g)); 1583 for (i = 0; i < varnames->len; i++) { 1584 name = varnames->pdata[i]; 1584 owl_list_create(&varnames); 1585 owl_variable_dict_get_names(owl_global_get_vardict(&g), &varnames); 1586 numvarnames = owl_list_get_size(&varnames); 1587 for (i=0; i<numvarnames; i++) { 1588 name = owl_list_get_element(&varnames, i); 1585 1589 if (name && name[0]!='_') { 1586 1590 g_string_append_printf(str, "\n%-20s = ", name); … … 1593 1597 } 1594 1598 g_string_append(str, "\n"); 1595 owl_ ptr_array_free(varnames, g_free);1599 owl_list_cleanup(&varnames, g_free); 1596 1600 1597 1601 owl_function_popless_text(str->str); … … 1601 1605 void owl_function_show_variables(void) 1602 1606 { 1603 GPtrArray *varnames;1607 owl_list varnames; 1604 1608 owl_fmtext fm; 1605 int i ;1609 int i, numvarnames; 1606 1610 const char *varname; 1607 1611 … … 1609 1613 owl_fmtext_append_bold(&fm, 1610 1614 "Variables: (use 'show variable <name>' for details)\n"); 1611 varnames = owl_variable_dict_get_names(owl_global_get_vardict(&g)); 1612 for (i = 0; i < varnames->len; i++) { 1613 varname = varnames->pdata[i]; 1615 owl_list_create(&varnames); 1616 owl_variable_dict_get_names(owl_global_get_vardict(&g), &varnames); 1617 numvarnames = owl_list_get_size(&varnames); 1618 for (i=0; i<numvarnames; i++) { 1619 varname = owl_list_get_element(&varnames, i); 1614 1620 if (varname && varname[0]!='_') { 1615 1621 owl_variable_describe(owl_global_get_vardict(&g), varname, &fm); 1616 1622 } 1617 1623 } 1618 owl_ ptr_array_free(varnames, g_free);1624 owl_list_cleanup(&varnames, g_free); 1619 1625 owl_function_popless_fmtext(&fm); 1620 1626 owl_fmtext_cleanup(&fm); … … 1894 1900 } 1895 1901 1896 CALLER_OWNowl_editwin *owl_function_start_question(const char *line)1902 G_GNUC_WARN_UNUSED_RESULT owl_editwin *owl_function_start_question(const char *line) 1897 1903 { 1898 1904 owl_editwin *tw; … … 1909 1915 } 1910 1916 1911 CALLER_OWNowl_editwin *owl_function_start_password(const char *line)1917 G_GNUC_WARN_UNUSED_RESULT owl_editwin *owl_function_start_password(const char *line) 1912 1918 { 1913 1919 owl_editwin *tw; … … 1926 1932 } 1927 1933 1928 CALLER_OWNchar *owl_function_exec(int argc, const char *const *argv, const char *buff, int type)1934 G_GNUC_WARN_UNUSED_RESULT char *owl_function_exec(int argc, const char *const *argv, const char *buff, int type) 1929 1935 { 1930 1936 /* if type == 1 display in a popup … … 1969 1975 } 1970 1976 1971 CALLER_OWNchar *owl_function_perl(int argc, const char *const *argv, const char *buff, int type)1977 G_GNUC_WARN_UNUSED_RESULT char *owl_function_perl(int argc, const char *const *argv, const char *buff, int type) 1972 1978 { 1973 1979 /* if type == 1 display in a popup … … 2139 2145 * Returns the name of the negated filter, which the caller must free. 2140 2146 */ 2141 CALLER_OWNchar *owl_function_create_negative_filter(const char *filtername)2147 G_GNUC_WARN_UNUSED_RESULT char *owl_function_create_negative_filter(const char *filtername) 2142 2148 { 2143 2149 char *newname; … … 2209 2215 { 2210 2216 const owl_filter *f; 2211 const GPtrArray*fl;2217 const owl_list *fl; 2212 2218 char *tmp; 2213 2219 owl_fmtext fm; 2214 int i ;2220 int i, j; 2215 2221 2216 2222 owl_fmtext_init_null(&fm); 2217 2223 2218 2224 fl=owl_global_get_puntlist(&g); 2225 j=owl_list_get_size(fl); 2219 2226 owl_fmtext_append_bold(&fm, "Active zpunt filters:\n"); 2220 2227 2221 for (i = 0; i < fl->len; i++) {2222 f = fl->pdata[i];2228 for (i=0; i<j; i++) { 2229 f=owl_list_get_element(fl, i); 2223 2230 owl_fmtext_appendf_normal(&fm, "[% 2d] ", i+1); 2224 2231 tmp = owl_filter_print(f); … … 2235 2242 * If 'related' is nonzero, encompass unclasses and .d classes as well. 2236 2243 */ 2237 CALLER_OWNchar *owl_function_classinstfilt(const char *c, const char *i, int related)2244 G_GNUC_WARN_UNUSED_RESULT char *owl_function_classinstfilt(const char *c, const char *i, int related) 2238 2245 { 2239 2246 owl_filter *f; … … 2322 2329 * the filter, which the caller must free. 2323 2330 */ 2324 CALLER_OWNchar *owl_function_zuserfilt(const char *longuser)2331 G_GNUC_WARN_UNUSED_RESULT char *owl_function_zuserfilt(const char *longuser) 2325 2332 { 2326 2333 owl_filter *f; … … 2368 2375 * Returns the name of the filter, which the caller must free. 2369 2376 */ 2370 CALLER_OWNchar *owl_function_aimuserfilt(const char *user)2377 G_GNUC_WARN_UNUSED_RESULT char *owl_function_aimuserfilt(const char *user) 2371 2378 { 2372 2379 owl_filter *f; … … 2406 2413 } 2407 2414 2408 CALLER_OWNchar *owl_function_typefilt(const char *type)2415 G_GNUC_WARN_UNUSED_RESULT char *owl_function_typefilt(const char *type) 2409 2416 { 2410 2417 owl_filter *f; … … 2462 2469 } 2463 2470 2464 static CALLER_OWNchar *owl_function_smartfilter_cc(const owl_message *m)2471 static G_GNUC_WARN_UNUSED_RESULT char *owl_function_smartfilter_cc(const owl_message *m) 2465 2472 { 2466 2473 const char *ccs; … … 2514 2521 * name to the AIM conversation with that user 2515 2522 */ 2516 CALLER_OWNchar *owl_function_smartfilter(int type, int invert_related)2523 G_GNUC_WARN_UNUSED_RESULT char *owl_function_smartfilter(int type, int invert_related) 2517 2524 { 2518 2525 const owl_view *v; … … 2773 2780 2774 2781 owl_function_punt(argv->len, (const char *const*) argv->pdata, direction); 2775 owl_ptr_array_free(argv, g_free); 2782 g_ptr_array_foreach(argv, (GFunc)g_free, NULL); 2783 g_ptr_array_free(argv, true); 2776 2784 } 2777 2785 … … 2779 2787 { 2780 2788 owl_filter *f; 2781 GPtrArray*fl;2782 int i ;2789 owl_list *fl; 2790 int i, j; 2783 2791 fl=owl_global_get_puntlist(&g); 2784 2792 … … 2791 2799 2792 2800 /* Check for an identical filter */ 2793 for (i = 0; i < fl->len; i++) { 2794 if (owl_filter_equiv(f, fl->pdata[i])) { 2801 j=owl_list_get_size(fl); 2802 for (i=0; i<j; i++) { 2803 if (owl_filter_equiv(f, owl_list_get_element(fl, i))) { 2795 2804 owl_function_debugmsg("found an equivalent punt filter"); 2796 2805 /* if we're punting, then just silently bow out on this duplicate */ … … 2802 2811 /* if we're unpunting, then remove this filter from the puntlist */ 2803 2812 if (direction==1) { 2804 owl_filter_delete(g_ptr_array_remove_index(fl, i)); 2813 owl_filter_delete(owl_list_get_element(fl, i)); 2814 owl_list_remove_element(fl, i); 2805 2815 owl_filter_delete(f); 2806 2816 return; … … 2812 2822 owl_function_debugmsg("punting"); 2813 2823 /* If we're punting, add the filter to the global punt list */ 2814 g_ptr_array_add(fl, f);2824 owl_list_append_element(fl, f); 2815 2825 } else if (direction == 1) { 2816 2826 owl_function_makemsg("No matching punt filter"); … … 2820 2830 void owl_function_show_keymaps(void) 2821 2831 { 2822 GPtrArray *l;2832 owl_list l; 2823 2833 owl_fmtext fm; 2824 2834 const owl_keymap *km; 2825 2835 const owl_keyhandler *kh; 2826 int i ;2836 int i, numkm; 2827 2837 const char *kmname; 2828 2838 … … 2831 2841 owl_fmtext_append_bold(&fm, "Keymaps: "); 2832 2842 owl_fmtext_append_normal(&fm, "(use 'show keymap <name>' for details)\n"); 2833 l = owl_keyhandler_get_keymap_names(kh); 2834 owl_fmtext_append_list(&fm, l, "\n", owl_function_keymap_summary); 2843 owl_list_create(&l); 2844 owl_keyhandler_get_keymap_names(kh, &l); 2845 owl_fmtext_append_list(&fm, &l, "\n", owl_function_keymap_summary); 2835 2846 owl_fmtext_append_normal(&fm, "\n"); 2836 2847 2837 for (i = 0; i < l->len; i++) { 2838 kmname = l->pdata[i]; 2848 numkm = owl_list_get_size(&l); 2849 for (i=0; i<numkm; i++) { 2850 kmname = owl_list_get_element(&l, i); 2839 2851 km = owl_keyhandler_get_keymap(kh, kmname); 2840 2852 owl_fmtext_append_bold(&fm, "\n\n----------------------------------------------------------------------------------------------------\n\n"); … … 2844 2856 2845 2857 owl_function_popless_fmtext(&fm); 2846 owl_ ptr_array_free(l, g_free);2858 owl_list_cleanup(&l, g_free); 2847 2859 owl_fmtext_cleanup(&fm); 2848 2860 } 2849 2861 2850 CALLER_OWNchar *owl_function_keymap_summary(const char *name)2862 G_GNUC_WARN_UNUSED_RESULT char *owl_function_keymap_summary(const char *name) 2851 2863 { 2852 2864 const owl_keymap *km … … 2962 2974 /* strips formatting from ztext and returns the unformatted text. 2963 2975 * caller is responsible for freeing. */ 2964 CALLER_OWNchar *owl_function_ztext_stylestrip(const char *zt)2976 G_GNUC_WARN_UNUSED_RESULT char *owl_function_ztext_stylestrip(const char *zt) 2965 2977 { 2966 2978 owl_fmtext fm; … … 2985 2997 #ifdef HAVE_LIBZEPHYR 2986 2998 int x; 2987 GPtrArray *anyone;2999 owl_list anyone; 2988 3000 const char *user; 2989 3001 char *tmp; … … 3020 3032 } else { 3021 3033 owl_fmtext_append_bold(&fm, "Zephyr users logged in:\n"); 3022 anyone = owl_zephyr_get_anyone_list(filename); 3023 if (anyone == NULL) { 3034 owl_list_create(&anyone); 3035 ret=owl_zephyr_get_anyone_list(&anyone, filename); 3036 if (ret) { 3024 3037 if (errno == ENOENT) { 3025 3038 owl_fmtext_append_normal(&fm, " You have not added any zephyr buddies. Use the\n"); … … 3031 3044 } 3032 3045 } else { 3033 for (i = 0; i < anyone->len; i++) { 3034 user = anyone->pdata[i]; 3046 j=owl_list_get_size(&anyone); 3047 for (i=0; i<j; i++) { 3048 user=owl_list_get_element(&anyone, i); 3035 3049 ret=ZLocateUser(zstr(user), &numlocs, ZAUTH); 3036 3050 … … 3064 3078 } 3065 3079 } 3066 owl_ ptr_array_free(anyone, g_free);3080 owl_list_cleanup(&anyone, g_free); 3067 3081 } 3068 3082 } … … 3376 3390 { 3377 3391 #ifdef HAVE_LIBZEPHYR 3378 int i ;3379 GPtrArray *anyone;3392 int i, j; 3393 owl_list anyone; 3380 3394 GList **zaldlist; 3381 3395 GList *zaldptr; … … 3397 3411 *zaldlist = NULL; 3398 3412 3399 anyone = owl_zephyr_get_anyone_list(NULL); 3400 for (i = 0; i < anyone->len; i++) { 3401 user = anyone->pdata[i]; 3413 owl_list_create(&anyone); 3414 owl_zephyr_get_anyone_list(&anyone, NULL); 3415 j = owl_list_get_size(&anyone); 3416 for (i = 0; i < j; i++) { 3417 user = owl_list_get_element(&anyone, i); 3402 3418 zald = g_new(ZAsyncLocateData_t, 1); 3403 3419 if (ZRequestLocations(zstr(user), zald, UNACKED, ZAUTH) == ZERR_NONE) { … … 3408 3424 } 3409 3425 3410 owl_ ptr_array_free(anyone, g_free);3426 owl_list_cleanup(&anyone, g_free); 3411 3427 #endif 3412 3428 } 3413 3429 3414 void owl_function_aimsearch_results(const char *email, GPtrArray*namelist)3430 void owl_function_aimsearch_results(const char *email, owl_list *namelist) 3415 3431 { 3416 3432 owl_fmtext fm; 3417 int i ;3433 int i, j; 3418 3434 3419 3435 owl_fmtext_init_null(&fm); … … 3422 3438 owl_fmtext_append_normal(&fm, ":\n"); 3423 3439 3424 for (i = 0; i < namelist->len; i++) { 3440 j=owl_list_get_size(namelist); 3441 for (i=0; i<j; i++) { 3425 3442 owl_fmtext_append_normal(&fm, " "); 3426 owl_fmtext_append_normal(&fm, namelist->pdata[i]);3443 owl_fmtext_append_normal(&fm, owl_list_get_element(namelist, i)); 3427 3444 owl_fmtext_append_normal(&fm, "\n"); 3428 3445 } -
global.c
r2560529 r43744ce 47 47 owl_dict_create(&(g->filters)); 48 48 g->filterlist = NULL; 49 g->puntlist = g_ptr_array_new();49 owl_list_create(&(g->puntlist)); 50 50 g->messagequeue = g_queue_new(); 51 51 owl_dict_create(&(g->styledict)); … … 172 172 /* Pops the current context from the context stack and returns it. Caller is 173 173 * responsible for freeing. */ 174 CALLER_OWNowl_context *owl_global_pop_context_no_delete(owl_global *g)174 G_GNUC_WARN_UNUSED_RESULT owl_context *owl_global_pop_context_no_delete(owl_global *g) 175 175 { 176 176 owl_context *c; … … 579 579 /* puntlist */ 580 580 581 GPtrArray*owl_global_get_puntlist(owl_global *g) {582 return g->puntlist;581 owl_list *owl_global_get_puntlist(owl_global *g) { 582 return(&(g->puntlist)); 583 583 } 584 584 585 585 int owl_global_message_is_puntable(owl_global *g, const owl_message *m) { 586 const GPtrArray *pl; 587 int i; 588 589 pl = owl_global_get_puntlist(g); 590 for (i = 0; i < pl->len; i++) { 591 if (owl_filter_message_match(pl->pdata[i], m)) return 1; 592 } 593 return 0; 586 const owl_list *pl; 587 int i, j; 588 589 pl=owl_global_get_puntlist(g); 590 j=owl_list_get_size(pl); 591 for (i=0; i<j; i++) { 592 if (owl_filter_message_match(owl_list_get_element(pl, i), m)) return(1); 593 } 594 return(0); 594 595 } 595 596 … … 724 725 * necessary. 725 726 */ 726 CALLER_OWN owl_message*owl_global_messagequeue_popmsg(owl_global *g)727 owl_message G_GNUC_WARN_UNUSED_RESULT *owl_global_messagequeue_popmsg(owl_global *g) 727 728 { 728 729 owl_message *out; … … 753 754 } 754 755 755 CALLER_OWN GPtrArray *owl_global_get_style_names(const owl_global *g) 756 { 757 return owl_dict_get_keys(&g->styledict); 756 void owl_global_get_style_names(const owl_global *g, owl_list *l) { 757 owl_dict_get_keys(&(g->styledict), l); 758 758 } 759 759 -
help.c
rce68f23 rf25df21 6 6 owl_fmtext fm; 7 7 const char *varname; 8 GPtrArray *varnames;9 int i ;8 owl_list varnames; 9 int i, numvarnames; 10 10 11 11 owl_fmtext_init_null(&fm); … … 129 129 owl_fmtext_append_bold(&fm, 130 130 "Variables:\n"); 131 varnames = owl_variable_dict_get_names(owl_global_get_vardict(&g)); 132 for (i = 0; i < varnames->len; i++) { 133 varname = varnames->pdata[i]; 131 owl_list_create(&varnames); 132 owl_variable_dict_get_names(owl_global_get_vardict(&g), &varnames); 133 numvarnames = owl_list_get_size(&varnames); 134 for (i=0; i<numvarnames; i++) { 135 varname = owl_list_get_element(&varnames, i); 134 136 if (varname && varname[0]!='_') { 135 137 owl_variable_describe(owl_global_get_vardict(&g), varname, &fm); 136 138 } 137 139 } 138 owl_ ptr_array_free(varnames, g_free);140 owl_list_cleanup(&varnames, g_free); 139 141 140 142 owl_fmtext_append_normal(&fm, "\n"); -
keybinding.c
r6829afc rd427f08 14 14 15 15 /* sets up a new keybinding for a command */ 16 CALLER_OWNowl_keybinding *owl_keybinding_new(const char *keyseq, const char *command, void (*function_fn)(void), const char *desc)16 G_GNUC_WARN_UNUSED_RESULT owl_keybinding *owl_keybinding_new(const char *keyseq, const char *command, void (*function_fn)(void), const char *desc) 17 17 { 18 18 owl_keybinding *kb = g_new(owl_keybinding, 1); … … 85 85 } 86 86 87 CALLER_OWNchar *owl_keybinding_stack_tostring(int *j, int len)87 G_GNUC_WARN_UNUSED_RESULT char *owl_keybinding_stack_tostring(int *j, int len) 88 88 { 89 89 GString *string; … … 100 100 } 101 101 102 CALLER_OWNchar *owl_keybinding_tostring(const owl_keybinding *kb)102 G_GNUC_WARN_UNUSED_RESULT char *owl_keybinding_tostring(const owl_keybinding *kb) 103 103 { 104 104 return owl_keybinding_stack_tostring(kb->keys, kb->len); -
keymap.c
rce68f23 rd427f08 11 11 km->name = g_strdup(name); 12 12 km->desc = g_strdup(desc); 13 km->bindings = g_ptr_array_new();13 owl_list_create(&km->bindings); 14 14 km->parent = NULL; 15 15 km->default_fn = default_fn; … … 24 24 g_free(km->name); 25 25 g_free(km->desc); 26 owl_ ptr_array_free(km->bindings, (GDestroyNotify)owl_keybinding_delete);26 owl_list_cleanup(&km->bindings, (void (*)(void *))owl_keybinding_delete); 27 27 } 28 28 … … 35 35 int owl_keymap_create_binding(owl_keymap *km, const char *keyseq, const char *command, void (*function_fn)(void), const char *desc) 36 36 { 37 owl_keybinding *kb ;37 owl_keybinding *kb, *curkb; 38 38 int i; 39 39 … … 44 44 * otherwise just add this one. 45 45 */ 46 for (i = km->bindings->len-1; i >= 0; i--) { 47 if (owl_keybinding_equal(km->bindings->pdata[i], kb)) { 48 owl_keybinding_delete(g_ptr_array_remove_index(km->bindings, i)); 49 } 50 } 51 g_ptr_array_add(km->bindings, kb); 46 for (i = owl_list_get_size(&km->bindings)-1; i>=0; i--) { 47 curkb = owl_list_get_element(&km->bindings, i); 48 if (owl_keybinding_equal(curkb, kb)) { 49 owl_list_remove_element(&km->bindings, i); 50 owl_keybinding_delete(curkb); 51 } 52 } 53 owl_list_append_element(&km->bindings, kb); 52 54 return 0; 53 55 } … … 56 58 int owl_keymap_remove_binding(owl_keymap *km, const char *keyseq) 57 59 { 58 owl_keybinding *kb ;60 owl_keybinding *kb, *curkb; 59 61 int i; 60 62 … … 63 65 return -1; 64 66 65 for (i = km->bindings->len-1; i >= 0; i--) { 66 if (owl_keybinding_equal(km->bindings->pdata[i], kb)) { 67 owl_keybinding_delete(g_ptr_array_remove_index(km->bindings, i)); 67 for (i = owl_list_get_size(&km->bindings)-1; i >= 0; i--) { 68 curkb = owl_list_get_element(&km->bindings, i); 69 if (owl_keybinding_equal(curkb, kb)) { 70 owl_list_remove_element(&km->bindings, i); 71 owl_keybinding_delete(curkb); 68 72 owl_keybinding_delete(kb); 69 73 return(0); … … 76 80 77 81 /* returns a summary line describing this keymap. the caller must free. */ 78 CALLER_OWNchar *owl_keymap_summary(const owl_keymap *km)82 G_GNUC_WARN_UNUSED_RESULT char *owl_keymap_summary(const owl_keymap *km) 79 83 { 80 84 if (!km || !km->name || !km->desc) return NULL; … … 135 139 static void _owl_keymap_format_bindings(const owl_keymap *km, owl_fmtext *fm) 136 140 { 137 int i ;141 int i, nbindings; 138 142 const owl_keybinding *kb; 139 143 140 for (i = 0; i < km->bindings->len; i++) { 144 nbindings = owl_list_get_size(&km->bindings); 145 for (i=0; i<nbindings; i++) { 141 146 char *kbstr; 142 147 const owl_cmd *cmd; 143 148 const char *tmpdesc, *desc = ""; 144 149 145 kb = km->bindings->pdata[i];150 kb = owl_list_get_element(&km->bindings, i); 146 151 kbstr = owl_keybinding_tostring(kb); 147 152 owl_fmtext_append_normal(fm, OWL_TABSTR); … … 209 214 } 210 215 211 CALLER_OWN GPtrArray *owl_keyhandler_get_keymap_names(const owl_keyhandler *kh)212 { 213 return owl_dict_get_keys(&kh->keymaps);216 void owl_keyhandler_get_keymap_names(const owl_keyhandler *kh, owl_list *l) 217 { 218 owl_dict_get_keys(&kh->keymaps, l); 214 219 } 215 220 … … 269 274 * keyhandler and keymap apart. */ 270 275 for (km=kh->active; km; km=km->parent) { 271 for (i = km->bindings->len-1; i >=0; i--) {272 kb = km->bindings->pdata[i];276 for (i=owl_list_get_size(&km->bindings)-1; i>=0; i--) { 277 kb = owl_list_get_element(&km->bindings, i); 273 278 match = owl_keybinding_match(kb, kh); 274 279 if (match == 1) { /* subset match */ -
keypress.c
r2560529 rd427f08 129 129 /* OWL_META is definied in owl.h */ 130 130 131 CALLER_OWN char*owl_keypress_tostring(int j, int esc)131 char G_GNUC_WARN_UNUSED_RESULT *owl_keypress_tostring(int j, int esc) 132 132 { 133 133 GString *kb; -
logging.c
r6829afc rd427f08 80 80 } 81 81 82 CALLER_OWNchar *owl_log_zephyr(const owl_message *m)82 G_GNUC_WARN_UNUSED_RESULT char *owl_log_zephyr(const owl_message *m) 83 83 { 84 84 char *tmp = NULL; … … 104 104 } 105 105 106 CALLER_OWNchar *owl_log_aim(const owl_message *m)106 G_GNUC_WARN_UNUSED_RESULT char *owl_log_aim(const owl_message *m) 107 107 { 108 108 GString *buffer = NULL; … … 122 122 } 123 123 124 CALLER_OWNchar *owl_log_jabber(const owl_message *m)124 G_GNUC_WARN_UNUSED_RESULT char *owl_log_jabber(const owl_message *m) 125 125 { 126 126 GString *buffer = NULL; … … 135 135 } 136 136 137 CALLER_OWNchar *owl_log_generic(const owl_message *m)137 G_GNUC_WARN_UNUSED_RESULT char *owl_log_generic(const owl_message *m) 138 138 { 139 139 GString *buffer; -
message.c
rf9df2f0 rd427f08 43 43 44 44 owl_message_set_hostname(m, ""); 45 m->attributes = g_ptr_array_new();45 owl_list_create(&(m->attributes)); 46 46 47 47 /* save the time */ … … 58 58 void owl_message_set_attribute(owl_message *m, const char *attrname, const char *attrvalue) 59 59 { 60 int i ;60 int i, j; 61 61 owl_pair *p = NULL, *pair = NULL; 62 62 … … 64 64 65 65 /* look for an existing pair with this key, */ 66 for (i = 0; i < m->attributes->len; i++) { 67 p = m->attributes->pdata[i]; 66 j=owl_list_get_size(&(m->attributes)); 67 for (i=0; i<j; i++) { 68 p=owl_list_get_element(&(m->attributes), i); 68 69 if (owl_pair_get_key(p) == attrname) { 69 70 g_free(owl_pair_get_value(p)); … … 76 77 pair = g_new(owl_pair, 1); 77 78 owl_pair_create(pair, attrname, NULL); 78 g_ptr_array_add(m->attributes, pair);79 owl_list_append_element(&(m->attributes), pair); 79 80 } 80 81 owl_pair_set_value(pair, owl_validate_or_convert(attrvalue)); … … 86 87 const char *owl_message_get_attribute_value(const owl_message *m, const char *attrname) 87 88 { 88 int i ;89 int i, j; 89 90 owl_pair *p; 90 91 GQuark quark; … … 96 97 attrname = g_quark_to_string(quark); 97 98 98 for (i = 0; i < m->attributes->len; i++) { 99 p = m->attributes->pdata[i]; 99 j=owl_list_get_size(&(m->attributes)); 100 for (i=0; i<j; i++) { 101 p=owl_list_get_element(&(m->attributes), i); 100 102 if (owl_pair_get_key(p) == attrname) { 101 103 return(owl_pair_get_value(p)); … … 116 118 */ 117 119 void owl_message_attributes_tofmtext(const owl_message *m, owl_fmtext *fm) { 118 int i ;120 int i, j; 119 121 owl_pair *p; 120 122 char *buff, *tmpbuff; … … 122 124 owl_fmtext_init_null(fm); 123 125 124 for (i = 0; i < m->attributes->len; i++) { 125 p = m->attributes->pdata[i]; 126 j=owl_list_get_size(&(m->attributes)); 127 for (i=0; i<j; i++) { 128 p=owl_list_get_element(&(m->attributes), i); 126 129 127 130 tmpbuff = g_strdup(owl_pair_get_value(p)); … … 577 580 578 581 /* caller must free return value. */ 579 CALLER_OWNchar *owl_message_get_cc(const owl_message *m)582 G_GNUC_WARN_UNUSED_RESULT char *owl_message_get_cc(const owl_message *m) 580 583 { 581 584 const char *cur; … … 594 597 595 598 /* caller must free return value */ 596 CALLER_OWNGList *owl_message_get_cc_without_recipient(const owl_message *m)599 G_GNUC_WARN_UNUSED_RESULT GList *owl_message_get_cc_without_recipient(const owl_message *m) 597 600 { 598 601 char *cc, *shortuser, *recip; … … 1001 1004 void owl_message_cleanup(owl_message *m) 1002 1005 { 1003 int i ;1006 int i, j; 1004 1007 owl_pair *p; 1005 1008 #ifdef HAVE_LIBZEPHYR … … 1011 1014 1012 1015 /* free all the attributes */ 1013 for (i = 0; i < m->attributes->len; i++) { 1014 p = m->attributes->pdata[i]; 1016 j=owl_list_get_size(&(m->attributes)); 1017 for (i=0; i<j; i++) { 1018 p=owl_list_get_element(&(m->attributes), i); 1015 1019 g_free(owl_pair_get_value(p)); 1016 1020 g_free(p); 1017 1021 } 1018 1022 1019 g_ptr_array_free(m->attributes, true);1023 owl_list_cleanup(&(m->attributes), NULL); 1020 1024 1021 1025 owl_message_invalidate_format(m); -
messagelist.c
rfc8a87a rd427f08 3 3 #include <string.h> 4 4 5 voidowl_messagelist_create(owl_messagelist *ml)5 int owl_messagelist_create(owl_messagelist *ml) 6 6 { 7 ml->list = g_ptr_array_new(); 8 } 9 10 void owl_messagelist_cleanup(owl_messagelist *ml, bool free_messages) 11 { 12 if (free_messages) 13 g_ptr_array_foreach(ml->list, (GFunc)owl_message_delete, NULL); 14 g_ptr_array_free(ml->list, true); 7 owl_list_create(&(ml->list)); 8 return(0); 15 9 } 16 10 17 11 int owl_messagelist_get_size(const owl_messagelist *ml) 18 12 { 19 return ml->list->len;13 return(owl_list_get_size(&(ml->list))); 20 14 } 21 15 22 16 void *owl_messagelist_get_element(const owl_messagelist *ml, int n) 23 17 { 24 return ml->list->pdata[n];18 return(owl_list_get_element(&(ml->list), n)); 25 19 } 26 20 … … 32 26 33 27 first = 0; 34 last = ml->list->len- 1;28 last = owl_list_get_size(&(ml->list)) - 1; 35 29 while (first <= last) { 36 30 mid = (first + last) / 2; 37 m = ml->list->pdata[mid];31 m = owl_list_get_element(&(ml->list), mid); 38 32 msg_id = owl_message_get_id(m); 39 33 if (msg_id == target_id) { … … 50 44 void owl_messagelist_append_element(owl_messagelist *ml, void *element) 51 45 { 52 g_ptr_array_add(ml->list, element);46 owl_list_append_element(&ml->list, element); 53 47 } 54 48 … … 57 51 { 58 52 /* mark a message as deleted */ 59 owl_message_mark_delete( ml->list->pdata[n]);53 owl_message_mark_delete(owl_list_get_element(&(ml->list), n)); 60 54 return(0); 61 55 } … … 64 58 { 65 59 /* mark a message as deleted */ 66 owl_message_unmark_delete( ml->list->pdata[n]);60 owl_message_unmark_delete(owl_list_get_element(&(ml->list), n)); 67 61 return(0); 68 62 } … … 71 65 { 72 66 /* expunge deleted messages */ 73 int i ;74 GPtrArray *newlist;67 int i, j; 68 owl_list newlist; 75 69 owl_message *m; 76 70 77 newlist = g_ptr_array_new();71 owl_list_create(&newlist); 78 72 /*create a new list without messages marked as deleted */ 79 for (i = 0; i < ml->list->len; i++) { 80 m = ml->list->pdata[i]; 73 j=owl_list_get_size(&(ml->list)); 74 for (i=0; i<j; i++) { 75 m=owl_list_get_element(&(ml->list), i); 81 76 if (owl_message_is_delete(m)) { 82 77 owl_message_delete(m); 83 78 } else { 84 g_ptr_array_add(newlist, m);79 owl_list_append_element(&newlist, m); 85 80 } 86 81 } 87 82 88 83 /* free the old list */ 89 g_ptr_array_free(ml->list, true);84 owl_list_cleanup(&(ml->list), NULL); 90 85 91 86 /* copy the new list to the old list */ … … 97 92 void owl_messagelist_invalidate_formats(const owl_messagelist *ml) 98 93 { 99 int i ;94 int i, j; 100 95 owl_message *m; 101 96 102 for (i = 0; i < ml->list->len; i++) { 103 m = ml->list->pdata[i]; 97 j=owl_list_get_size(&(ml->list)); 98 for (i=0; i<j; i++) { 99 m=owl_list_get_element(&(ml->list), i); 104 100 owl_message_invalidate_format(m); 105 101 } -
owl.h
r2560529 r95b52d1 199 199 #define OWL_ENABLE_ZCRYPT 1 200 200 #endif 201 202 /* Annotate functions in which the caller owns the return value and is203 * responsible for ensuring it is freed. */204 #define CALLER_OWN G_GNUC_WARN_UNUSED_RESULT205 201 206 202 #define OWL_META(key) ((key)|010000) … … 255 251 * WARNING: this approach is hard to make 256 252 * thread-safe... */ 257 CALLER_OWN char*(*get_tostring_fn)(const struct _owl_variable *v, const void *val);253 char G_GNUC_WARN_UNUSED_RESULT *(*get_tostring_fn)(const struct _owl_variable *v, const void *val); 258 254 /* converts val to a string; 259 255 * caller must free the result */ … … 270 266 GString *buff; 271 267 } owl_fmtext; 268 269 typedef struct _owl_list { 270 int size; 271 int avail; 272 void **list; 273 } owl_list; 272 274 273 275 typedef struct _owl_dict_el { … … 311 313 312 314 /* These don't take any context */ 313 CALLER_OWN char*(*cmd_args_fn)(int argc, const char *const *argv, const char *buff);315 char G_GNUC_WARN_UNUSED_RESULT *(*cmd_args_fn)(int argc, const char *const *argv, const char *buff); 314 316 /* takes argv and the full command as buff. 315 317 * caller must free return value if !NULL */ … … 318 320 319 321 /* The following also take the active context if it's valid */ 320 CALLER_OWN char*(*cmd_ctxargs_fn)(void *ctx, int argc, const char *const *argv, const char *buff);322 char G_GNUC_WARN_UNUSED_RESULT *(*cmd_ctxargs_fn)(void *ctx, int argc, const char *const *argv, const char *buff); 321 323 /* takes argv and the full command as buff. 322 324 * caller must free return value if !NULL */ … … 336 338 char *zsig; 337 339 char *message; 338 GPtrArray *recips;340 owl_list recips; 339 341 int cc; 340 342 int noping; … … 357 359 int delete; 358 360 const char *hostname; 359 GPtrArray *attributes;/* this is a list of pairs */361 owl_list attributes; /* this is a list of pairs */ 360 362 char *timestr; 361 363 time_t time; … … 416 418 417 419 typedef struct _owl_messagelist { 418 GPtrArray *list;420 owl_list list; 419 421 } owl_messagelist; 420 422 … … 479 481 char *name; /* name of keymap */ 480 482 char *desc; /* description */ 481 GPtrArray *bindings; /* key bindings */483 owl_list bindings; /* key bindings */ 482 484 const struct _owl_keymap *parent; /* parent */ 483 485 void (*default_fn)(owl_input j); /* default action (takes a keypress) */ … … 502 504 503 505 typedef struct _owl_buddylist { 504 GPtrArray *buddies;506 owl_list buddies; 505 507 } owl_buddylist; 506 508 507 509 typedef struct _owl_zbuddylist { 508 GPtrArray *zusers;510 owl_list zusers; 509 511 } owl_zbuddylist; 510 512 511 513 typedef struct _owl_errqueue { 512 GPtrArray *errlist;514 owl_list errlist; 513 515 } owl_errqueue; 514 516 … … 536 538 owl_dict filters; 537 539 GList *filterlist; 538 GPtrArray *puntlist;540 owl_list puntlist; 539 541 owl_vardict vars; 540 542 owl_cmddict cmds; -
perlconfig.c
rce68f23 rd427f08 23 23 24 24 25 CALLER_OWNSV *owl_new_sv(const char * str)25 G_GNUC_WARN_UNUSED_RESULT SV *owl_new_sv(const char * str) 26 26 { 27 27 SV *ret = newSVpv(str, 0); … … 36 36 } 37 37 38 CALLER_OWN AV *owl_new_av(const GPtrArray*l, SV *(*to_sv)(const void *))38 G_GNUC_WARN_UNUSED_RESULT AV *owl_new_av(const owl_list *l, SV *(*to_sv)(const void *)) 39 39 { 40 40 AV *ret; … … 44 44 ret = newAV(); 45 45 46 for (i = 0; i < l->len; i++) {47 element = l->pdata[i];46 for (i = 0; i < owl_list_get_size(l); i++) { 47 element = owl_list_get_element(l, i); 48 48 av_push(ret, to_sv(element)); 49 49 } … … 52 52 } 53 53 54 CALLER_OWNHV *owl_new_hv(const owl_dict *d, SV *(*to_sv)(const void *))54 G_GNUC_WARN_UNUSED_RESULT HV *owl_new_hv(const owl_dict *d, SV *(*to_sv)(const void *)) 55 55 { 56 56 HV *ret; 57 GPtrArray *keys;57 owl_list l; 58 58 const char *key; 59 59 void *element; … … 63 63 64 64 /* TODO: add an iterator-like interface to owl_dict */ 65 keys = owl_dict_get_keys(d); 66 for (i = 0; i < keys->len; i++) { 67 key = keys->pdata[i]; 65 owl_list_create(&l); 66 owl_dict_get_keys(d, &l); 67 for (i = 0; i < owl_list_get_size(&l); i++) { 68 key = owl_list_get_element(&l, i); 68 69 element = owl_dict_find_element(d, key); 69 70 (void)hv_store(ret, key, strlen(key), to_sv(element), 0); 70 71 } 71 owl_ ptr_array_free(keys, g_free);72 owl_list_cleanup(&l, g_free); 72 73 73 74 return ret; 74 75 } 75 76 76 CALLER_OWNSV *owl_perlconfig_message2hashref(const owl_message *m)77 G_GNUC_WARN_UNUSED_RESULT SV *owl_perlconfig_message2hashref(const owl_message *m) 77 78 { 78 79 HV *h, *stash; … … 114 115 } 115 116 116 for (i = 0; i < m->attributes->len; i++) { 117 pair = m->attributes->pdata[i]; 117 j=owl_list_get_size(&(m->attributes)); 118 for(i=0; i<j; i++) { 119 pair=owl_list_get_element(&(m->attributes), i); 118 120 (void)hv_store(h, owl_pair_get_key(pair), strlen(owl_pair_get_key(pair)), 119 121 owl_new_sv(owl_pair_get_value(pair)),0); … … 163 165 } 164 166 165 CALLER_OWNSV *owl_perlconfig_curmessage2hashref(void)167 G_GNUC_WARN_UNUSED_RESULT SV *owl_perlconfig_curmessage2hashref(void) 166 168 { 167 169 int curmsg; … … 181 183 This has been somewhat addressed, but is still not lossless. 182 184 */ 183 CALLER_OWNowl_message *owl_perlconfig_hashref2message(SV *msg)185 G_GNUC_WARN_UNUSED_RESULT owl_message *owl_perlconfig_hashref2message(SV *msg) 184 186 { 185 187 owl_message * m; … … 249 251 /* Calls in a scalar context, passing it a hash reference. 250 252 If return value is non-null, caller must free. */ 251 CALLER_OWNchar *owl_perlconfig_call_with_message(const char *subname, const owl_message *m)253 G_GNUC_WARN_UNUSED_RESULT char *owl_perlconfig_call_with_message(const char *subname, const owl_message *m) 252 254 { 253 255 dSP ; … … 298 300 If the return value is non-null, the caller must free it. 299 301 */ 300 CALLER_OWNchar *owl_perlconfig_message_call_method(const owl_message *m, const char *method, int argc, const char **argv)302 G_GNUC_WARN_UNUSED_RESULT char *owl_perlconfig_message_call_method(const owl_message *m, const char *method, int argc, const char **argv) 301 303 { 302 304 dSP; … … 348 350 349 351 /* caller must free result, if not NULL */ 350 CALLER_OWNchar *owl_perlconfig_initperl(const char *file, int *Pargc, char ***Pargv, char ***Penv)352 G_GNUC_WARN_UNUSED_RESULT char *owl_perlconfig_initperl(const char *file, int *Pargc, char ***Pargv, char ***Penv) 351 353 { 352 354 int ret; … … 434 436 435 437 /* caller is responsible for freeing returned string */ 436 CALLER_OWNchar *owl_perlconfig_execute(const char *line)438 G_GNUC_WARN_UNUSED_RESULT char *owl_perlconfig_execute(const char *line) 437 439 { 438 440 STRLEN len; … … 504 506 505 507 /* caller must free the result */ 506 CALLER_OWNchar *owl_perlconfig_perlcmd(const owl_cmd *cmd, int argc, const char *const *argv)508 G_GNUC_WARN_UNUSED_RESULT char *owl_perlconfig_perlcmd(const owl_cmd *cmd, int argc, const char *const *argv) 507 509 { 508 510 int i, count; -
perlglue.xs
rce68f23 rbcde7926 329 329 all_filters() 330 330 PREINIT: 331 GPtrArray *fl; 332 CODE: 333 { 334 fl = owl_dict_get_keys(&g.filters); 335 RETVAL = owl_new_av(fl, (SV*(*)(const void*))owl_new_sv); 331 owl_list fl; 332 CODE: 333 { 334 owl_list_create(&fl); 335 owl_dict_get_keys(&g.filters, &fl); 336 RETVAL = owl_new_av(&fl, (SV*(*)(const void*))owl_new_sv); 336 337 sv_2mortal((SV*)RETVAL); 337 owl_ ptr_array_free(fl, g_free);338 owl_list_cleanup(&fl, g_free); 338 339 } 339 340 OUTPUT: … … 343 344 all_styles() 344 345 PREINIT: 345 GPtrArray *l; 346 CODE: 347 { 348 l = owl_global_get_style_names(&g); 349 RETVAL = owl_new_av(l, (SV*(*)(const void*))owl_new_sv); 346 owl_list l; 347 CODE: 348 { 349 owl_list_create(&l); 350 owl_global_get_style_names(&g, &l); 351 RETVAL = owl_new_av(&l, (SV*(*)(const void*))owl_new_sv); 350 352 sv_2mortal((SV*)RETVAL); 351 353 } … … 353 355 RETVAL 354 356 CLEANUP: 355 owl_ ptr_array_free(l, g_free);357 owl_list_cleanup(&l, g_free); 356 358 357 359 … … 359 361 all_variables() 360 362 PREINIT: 361 GPtrArray *l; 362 CODE: 363 { 364 l = owl_dict_get_keys(owl_global_get_vardict(&g)); 365 RETVAL = owl_new_av(l, (SV*(*)(const void*))owl_new_sv); 363 owl_list l; 364 CODE: 365 { 366 owl_list_create(&l); 367 owl_dict_get_keys(owl_global_get_vardict(&g), &l); 368 RETVAL = owl_new_av(&l, (SV*(*)(const void*))owl_new_sv); 366 369 sv_2mortal((SV*)RETVAL); 367 370 } … … 369 372 RETVAL 370 373 CLEANUP: 371 owl_ ptr_array_free(l, g_free);374 owl_list_cleanup(&l, g_free); 372 375 373 376 … … 375 378 all_keymaps() 376 379 PREINIT: 377 GPtrArray *l;380 owl_list l; 378 381 const owl_keyhandler *kh; 379 382 CODE: 380 383 { 381 384 kh = owl_global_get_keyhandler(&g); 382 l = owl_keyhandler_get_keymap_names(kh); 383 RETVAL = owl_new_av(l, (SV*(*)(const void*))owl_new_sv); 385 owl_list_create(&l); 386 owl_keyhandler_get_keymap_names(kh, &l); 387 RETVAL = owl_new_av(&l, (SV*(*)(const void*))owl_new_sv); 384 388 sv_2mortal((SV*)RETVAL); 385 389 } … … 387 391 RETVAL 388 392 CLEANUP: 389 owl_ ptr_array_free(l, g_free);393 owl_list_cleanup(&l, g_free); 390 394 391 395 void -
popwin.c
r6829afc rd427f08 1 1 #include "owl.h" 2 2 3 CALLER_OWNowl_popwin *owl_popwin_new(void)3 G_GNUC_WARN_UNUSED_RESULT owl_popwin *owl_popwin_new(void) 4 4 { 5 5 owl_popwin *pw = g_new0(owl_popwin, 1); -
tester.c
rce68f23 r4e37d56 230 230 int owl_dict_regtest(void) { 231 231 owl_dict d; 232 GPtrArray *l;232 owl_list l; 233 233 int numfailed=0; 234 234 char *av = g_strdup("aval"), *bv = g_strdup("bval"), *cv = g_strdup("cval"), … … 251 251 252 252 FAIL_UNLESS("get_size", 3==owl_dict_get_size(&d)); 253 l = owl_dict_get_keys(&d); 254 FAIL_UNLESS("get_keys result size", 3 == l->len); 253 owl_list_create(&l); 254 owl_dict_get_keys(&d, &l); 255 FAIL_UNLESS("get_keys result size", 3==owl_list_get_size(&l)); 255 256 256 257 /* these assume the returned keys are sorted */ 257 FAIL_UNLESS("get_keys result val", 0 == strcmp("a", l->pdata[0]));258 FAIL_UNLESS("get_keys result val", 0 == strcmp("b", l->pdata[1]));259 FAIL_UNLESS("get_keys result val", 0 == strcmp("c", l->pdata[2]));260 261 owl_ ptr_array_free(l, g_free);258 FAIL_UNLESS("get_keys result val",0==strcmp("a",owl_list_get_element(&l,0))); 259 FAIL_UNLESS("get_keys result val",0==strcmp("b",owl_list_get_element(&l,1))); 260 FAIL_UNLESS("get_keys result val",0==strcmp("c",owl_list_get_element(&l,2))); 261 262 owl_list_cleanup(&l, g_free); 262 263 owl_dict_cleanup(&d, NULL); 263 264 -
text.c
r6829afc rd427f08 7 7 /* Returns a copy of 'in' with each line indented 'n' 8 8 * characters. Result must be freed with g_free. */ 9 CALLER_OWNchar *owl_text_indent(const char *in, int n)9 G_GNUC_WARN_UNUSED_RESULT char *owl_text_indent(const char *in, int n) 10 10 { 11 11 const char *ptr1, *ptr2, *last; … … 48 48 49 49 /* caller must free the return */ 50 CALLER_OWNchar *owl_text_htmlstrip(const char *in)50 G_GNUC_WARN_UNUSED_RESULT char *owl_text_htmlstrip(const char *in) 51 51 { 52 52 const char *ptr1, *end, *ptr2, *ptr3; … … 129 129 130 130 /* Caller must free return */ 131 CALLER_OWNchar *owl_text_expand_tabs(const char *in)131 G_GNUC_WARN_UNUSED_RESULT char *owl_text_expand_tabs(const char *in) 132 132 { 133 133 int len = 0; … … 188 188 189 189 /* caller must free the return */ 190 CALLER_OWNchar *owl_text_wordwrap(const char *in, int col)190 G_GNUC_WARN_UNUSED_RESULT char *owl_text_wordwrap(const char *in, int col) 191 191 { 192 192 char *out; … … 269 269 * Caller must free returned string. 270 270 */ 271 CALLER_OWNchar *owl_text_substitute(const char *in, const char *from, const char *to)271 G_GNUC_WARN_UNUSED_RESULT char *owl_text_substitute(const char *in, const char *from, const char *to) 272 272 { 273 273 char **split = g_strsplit(in, from, 0), *out; … … 284 284 * On success returns the string, on error returns NULL. 285 285 */ 286 CALLER_OWNchar *owl_text_quote(const char *in, const char *toquote, const char *quotestr)286 G_GNUC_WARN_UNUSED_RESULT char *owl_text_quote(const char *in, const char *toquote, const char *quotestr) 287 287 { 288 288 int i, x, r, place, escape; -
util.c
r3cdd6d2 rd427f08 35 35 * duplicate slashes are removed. Caller must free the return. 36 36 */ 37 CALLER_OWNchar *owl_util_makepath(const char *in)37 G_GNUC_WARN_UNUSED_RESULT char *owl_util_makepath(const char *in) 38 38 { 39 39 int i, j, x; … … 98 98 } 99 99 100 void owl_ptr_array_free(GPtrArray *array, GDestroyNotify element_free_func)101 {102 /* TODO: when we move to requiring glib 2.22+, use103 * g_ptr_array_new_with_free_func instead. */104 if (element_free_func)105 g_ptr_array_foreach(array, (GFunc)element_free_func, NULL);106 g_ptr_array_free(array, true);107 }108 109 100 /* Break a command line up into argv, argc. The caller must free 110 101 the returned values with g_strfreev. If there is an error argc will be set 111 102 to -1, argv will be NULL and the caller does not need to free anything. The 112 103 returned vector is NULL-terminated. */ 113 CALLER_OWNchar **owl_parseline(const char *line, int *argc)104 G_GNUC_WARN_UNUSED_RESULT char **owl_parseline(const char *line, int *argc) 114 105 { 115 106 GPtrArray *argv; … … 179 170 /* check for unbalanced quotes */ 180 171 if (quote!='\0') { 181 owl_ptr_array_free(argv, g_free); 172 /* TODO: when we move to requiring glib 2.22+, use 173 * g_ptr_array_new_with_free_func. */ 174 g_ptr_array_foreach(argv, (GFunc)g_free, NULL); 175 g_ptr_array_free(argv, true); 182 176 if (argc) *argc = -1; 183 177 return(NULL); … … 251 245 } 252 246 253 CALLER_OWNchar *owl_string_build_quoted(const char *tmpl, ...)247 G_GNUC_WARN_UNUSED_RESULT char *owl_string_build_quoted(const char *tmpl, ...) 254 248 { 255 249 GString *buf = g_string_new(""); … … 263 257 /* Returns a quoted version of arg suitable for placing in a 264 258 * command-line. Result should be freed with g_free. */ 265 CALLER_OWNchar *owl_arg_quote(const char *arg)259 G_GNUC_WARN_UNUSED_RESULT char *owl_arg_quote(const char *arg) 266 260 { 267 261 GString *buf = g_string_new("");; … … 271 265 272 266 /* caller must free the return */ 273 CALLER_OWNchar *owl_util_minutes_to_timestr(int in)267 G_GNUC_WARN_UNUSED_RESULT char *owl_util_minutes_to_timestr(int in) 274 268 { 275 269 int days, hours; … … 337 331 338 332 /* Get the default tty name. Caller must free the return */ 339 CALLER_OWNchar *owl_util_get_default_tty(void)333 G_GNUC_WARN_UNUSED_RESULT char *owl_util_get_default_tty(void) 340 334 { 341 335 const char *tmp; … … 359 353 * return. 360 354 */ 361 CALLER_OWNchar *owl_util_stripnewlines(const char *in)355 G_GNUC_WARN_UNUSED_RESULT char *owl_util_stripnewlines(const char *in) 362 356 { 363 357 … … 390 384 * Error conditions are the same as g_file_read_link. 391 385 */ 392 CALLER_OWNgchar *owl_util_recursive_resolve_link(const char *filename)386 G_GNUC_WARN_UNUSED_RESULT gchar *owl_util_recursive_resolve_link(const char *filename) 393 387 { 394 388 gchar *last_path = g_strdup(filename); … … 517 511 The caller is responsible for freeing the allocated string. 518 512 */ 519 CALLER_OWNchar *owl_util_baseclass(const char *class)513 G_GNUC_WARN_UNUSED_RESULT char *owl_util_baseclass(const char *class) 520 514 { 521 515 char *start, *end; … … 553 547 /* Strips format characters from a valid utf-8 string. Returns the 554 548 empty string if 'in' does not validate. Caller must free the return. */ 555 CALLER_OWNchar *owl_strip_format_chars(const char *in)549 G_GNUC_WARN_UNUSED_RESULT char *owl_strip_format_chars(const char *in) 556 550 { 557 551 char *r; … … 592 586 * Caller must free the return. 593 587 */ 594 CALLER_OWNchar *owl_validate_or_convert(const char *in)588 G_GNUC_WARN_UNUSED_RESULT char *owl_validate_or_convert(const char *in) 595 589 { 596 590 if (g_utf8_validate(in, -1, NULL)) { … … 608 602 * Caller must free the return. 609 603 */ 610 CALLER_OWNchar *owl_validate_utf8(const char *in)604 G_GNUC_WARN_UNUSED_RESULT char *owl_validate_utf8(const char *in) 611 605 { 612 606 char *out; … … 641 635 642 636 /* caller must free the return */ 643 CALLER_OWNchar *owl_escape_highbit(const char *str)637 G_GNUC_WARN_UNUSED_RESULT char *owl_escape_highbit(const char *str) 644 638 { 645 639 GString *out = g_string_new(""); … … 704 698 705 699 /* Read the rest of the input available in fp into a string. */ 706 CALLER_OWNchar *owl_slurp(FILE *fp)700 G_GNUC_WARN_UNUSED_RESULT char *owl_slurp(FILE *fp) 707 701 { 708 702 char *buf = NULL; -
variable.c
rce68f23 rd427f08 646 646 } 647 647 648 CALLER_OWNowl_variable *owl_variable_newvar(const char *name, const char *summary, const char *description)648 G_GNUC_WARN_UNUSED_RESULT owl_variable *owl_variable_newvar(const char *name, const char *summary, const char *description) 649 649 { 650 650 owl_variable * var = g_new0(owl_variable, 1); … … 729 729 } 730 730 731 CALLER_OWN GPtrArray *owl_variable_dict_get_names(const owl_vardict *d) {732 return owl_dict_get_keys(d);731 void owl_variable_dict_get_names(const owl_vardict *d, owl_list *l) { 732 owl_dict_get_keys(d, l); 733 733 } 734 734 … … 825 825 } 826 826 827 CALLER_OWNchar *owl_variable_get_tostring(const owl_vardict *d, const char *name)827 G_GNUC_WARN_UNUSED_RESULT char *owl_variable_get_tostring(const owl_vardict *d, const char *name) 828 828 { 829 829 owl_variable *v; … … 834 834 } 835 835 836 CALLER_OWNchar *owl_variable_get_default_tostring(const owl_vardict *d, const char *name)836 G_GNUC_WARN_UNUSED_RESULT char *owl_variable_get_default_tostring(const owl_vardict *d, const char *name) 837 837 { 838 838 owl_variable *v; … … 995 995 } 996 996 997 CALLER_OWNchar *owl_variable_bool_get_tostring_default(const owl_variable *v, const void *val)997 G_GNUC_WARN_UNUSED_RESULT char *owl_variable_bool_get_tostring_default(const owl_variable *v, const void *val) 998 998 { 999 999 if (val == NULL) { … … 1031 1031 } 1032 1032 1033 CALLER_OWNchar *owl_variable_int_get_tostring_default(const owl_variable *v, const void *val)1033 G_GNUC_WARN_UNUSED_RESULT char *owl_variable_int_get_tostring_default(const owl_variable *v, const void *val) 1034 1034 { 1035 1035 if (val == NULL) { … … 1071 1071 } 1072 1072 1073 CALLER_OWNchar *owl_variable_enum_get_tostring(const owl_variable *v, const void *val)1073 G_GNUC_WARN_UNUSED_RESULT char *owl_variable_enum_get_tostring(const owl_variable *v, const void *val) 1074 1074 { 1075 1075 char **enums; … … 1112 1112 } 1113 1113 1114 CALLER_OWNchar *owl_variable_string_get_tostring_default(const owl_variable *v, const void *val)1114 G_GNUC_WARN_UNUSED_RESULT char *owl_variable_string_get_tostring_default(const owl_variable *v, const void *val) 1115 1115 { 1116 1116 if (val == NULL) { -
view.c
rfc8a87a r3b8a563 37 37 ml=&(v->ml); 38 38 39 /* nuke the old list , don't free the messages*/40 owl_ messagelist_cleanup(ml, false);39 /* nuke the old list */ 40 owl_list_cleanup(&ml->list, NULL); 41 41 owl_messagelist_create(&(v->ml)); 42 42 … … 159 159 void owl_view_cleanup(owl_view *v) 160 160 { 161 owl_ messagelist_cleanup(&v->ml, false);161 owl_list_cleanup(&v->ml.list, NULL); 162 162 g_free(v->name); 163 163 } -
viewwin.c
r6829afc rd427f08 12 12 * will be used by the viewwin 13 13 */ 14 CALLER_OWNowl_viewwin *owl_viewwin_new_text(owl_window *win, const char *text)14 G_GNUC_WARN_UNUSED_RESULT owl_viewwin *owl_viewwin_new_text(owl_window *win, const char *text) 15 15 { 16 16 owl_viewwin *v = g_new0(owl_viewwin, 1); … … 34 34 * will be used by the viewwin 35 35 */ 36 CALLER_OWNowl_viewwin *owl_viewwin_new_fmtext(owl_window *win, const owl_fmtext *fmtext)36 G_GNUC_WARN_UNUSED_RESULT owl_viewwin *owl_viewwin_new_fmtext(owl_window *win, const owl_fmtext *fmtext) 37 37 { 38 38 char *text; … … 237 237 } 238 238 239 CALLER_OWNowl_editwin *owl_viewwin_set_typwin_active(owl_viewwin *v, owl_history *hist) {239 G_GNUC_WARN_UNUSED_RESULT owl_editwin *owl_viewwin_set_typwin_active(owl_viewwin *v, owl_history *hist) { 240 240 int lines, cols; 241 241 owl_editwin *cmdline; -
window.c
r6829afc rd427f08 569 569 }; 570 570 571 CALLER_OWNGSource *owl_window_redraw_source_new(void)571 G_GNUC_WARN_UNUSED_RESULT GSource *owl_window_redraw_source_new(void) 572 572 { 573 573 GSource *source; -
zbuddylist.c
r7ed9bc6 rddbbcffa 3 3 void owl_zbuddylist_create(owl_zbuddylist *zb) 4 4 { 5 zb->zusers = g_ptr_array_new();5 owl_list_create(&(zb->zusers)); 6 6 } 7 7 8 8 int owl_zbuddylist_adduser(owl_zbuddylist *zb, const char *name) 9 9 { 10 int i ;10 int i, j; 11 11 char *user; 12 12 13 13 user=long_zuser(name); 14 14 15 for (i = 0; i < zb->zusers->len; i++) { 16 if (!strcasecmp(user, zb->zusers->pdata[i])) { 15 j=owl_list_get_size(&(zb->zusers)); 16 for (i=0; i<j; i++) { 17 if (!strcasecmp(user, owl_list_get_element(&(zb->zusers), i))) { 17 18 g_free(user); 18 19 return(-1); 19 20 } 20 21 } 21 g_ptr_array_add(zb->zusers, user);22 owl_list_append_element(&(zb->zusers), user); 22 23 return(0); 23 24 } … … 25 26 int owl_zbuddylist_deluser(owl_zbuddylist *zb, const char *name) 26 27 { 27 int i ;28 char *user ;28 int i, j; 29 char *user, *ptr; 29 30 30 31 user=long_zuser(name); 31 32 32 for (i = 0; i < zb->zusers->len; i++) { 33 if (!strcasecmp(user, zb->zusers->pdata[i])) { 34 g_free(g_ptr_array_remove_index(zb->zusers, i)); 33 j=owl_list_get_size(&(zb->zusers)); 34 for (i=0; i<j; i++) { 35 ptr=owl_list_get_element(&(zb->zusers), i); 36 if (!strcasecmp(user, ptr)) { 37 owl_list_remove_element(&(zb->zusers), i); 38 g_free(ptr); 35 39 g_free(user); 36 40 return(0); … … 43 47 int owl_zbuddylist_contains_user(const owl_zbuddylist *zb, const char *name) 44 48 { 45 int i ;49 int i, j; 46 50 char *user; 47 51 48 52 user=long_zuser(name); 49 53 50 for (i = 0; i < zb->zusers->len; i++) { 51 if (!strcasecmp(user, zb->zusers->pdata[i])) { 54 j=owl_list_get_size(&(zb->zusers)); 55 for (i=0; i<j; i++) { 56 if (!strcasecmp(user, owl_list_get_element(&(zb->zusers), i))) { 52 57 g_free(user); 53 58 return(1); -
zcrypt.c
r6829afc rd427f08 27 27 #include "filterproc.h" 28 28 29 /* Annotate functions in which the caller owns the return value and is30 * responsible for ensuring it is freed. */31 #define CALLER_OWN G_GNUC_WARN_UNUSED_RESULT32 33 29 #define MAX_KEY 128 34 30 #define MAX_LINE 128 … … 57 53 } ZWRITEOPTIONS; 58 54 59 CALLER_OWNchar *GetZephyrVarKeyFile(const char *whoami, const char *class, const char *instance);55 G_GNUC_WARN_UNUSED_RESULT char *GetZephyrVarKeyFile(const char *whoami, const char *class, const char *instance); 60 56 int ParseCryptSpec(const char *spec, const char **keyfile); 61 CALLER_OWNchar *BuildArgString(char **argv, int start, int end);62 CALLER_OWNchar *read_keystring(const char *keyfile);57 G_GNUC_WARN_UNUSED_RESULT char *BuildArgString(char **argv, int start, int end); 58 G_GNUC_WARN_UNUSED_RESULT char *read_keystring(const char *keyfile); 63 59 64 60 int do_encrypt(int zephyr, const char *class, const char *instance, … … 368 364 /* Build a space-separated string from argv from elements between start * 369 365 * and end - 1. malloc()'s the returned string. */ 370 CALLER_OWNchar *BuildArgString(char **argv, int start, int end)366 G_GNUC_WARN_UNUSED_RESULT char *BuildArgString(char **argv, int start, int end) 371 367 { 372 368 int len = 1; … … 405 401 #define MAX_SEARCH 3 406 402 /* Find the class/instance in the .crypt-table */ 407 CALLER_OWNchar *GetZephyrVarKeyFile(const char *whoami, const char *class, const char *instance)403 G_GNUC_WARN_UNUSED_RESULT char *GetZephyrVarKeyFile(const char *whoami, const char *class, const char *instance) 408 404 { 409 405 char *keyfile = NULL; … … 583 579 } 584 580 585 CALLER_OWNchar *slurp_stdin(int ignoredot, int *length) {581 G_GNUC_WARN_UNUSED_RESULT char *slurp_stdin(int ignoredot, int *length) { 586 582 char *buf; 587 583 char *inptr; … … 615 611 } 616 612 617 CALLER_OWNchar *GetInputBuffer(ZWRITEOPTIONS *zoptions, int *length) {613 G_GNUC_WARN_UNUSED_RESULT char *GetInputBuffer(ZWRITEOPTIONS *zoptions, int *length) { 618 614 char *buf; 619 615 … … 641 637 } 642 638 643 CALLER_OWNchar *read_keystring(const char *keyfile) {639 G_GNUC_WARN_UNUSED_RESULT char *read_keystring(const char *keyfile) { 644 640 char *keystring; 645 641 FILE *fkey = fopen(keyfile, "r"); -
zephyr.c
recffae6 rd427f08 524 524 */ 525 525 #ifdef HAVE_LIBZEPHYR 526 CALLER_OWNchar *owl_zephyr_get_field(const ZNotice_t *n, int j)526 G_GNUC_WARN_UNUSED_RESULT char *owl_zephyr_get_field(const ZNotice_t *n, int j) 527 527 { 528 528 int i, count, save; … … 552 552 } 553 553 554 CALLER_OWNchar *owl_zephyr_get_field_as_utf8(const ZNotice_t *n, int j)554 G_GNUC_WARN_UNUSED_RESULT char *owl_zephyr_get_field_as_utf8(const ZNotice_t *n, int j) 555 555 { 556 556 int i, count, save; … … 584 584 } 585 585 #else 586 CALLER_OWNchar *owl_zephyr_get_field(void *n, int j)586 G_GNUC_WARN_UNUSED_RESULT char *owl_zephyr_get_field(void *n, int j) 587 587 { 588 588 return(g_strdup("")); 589 589 } 590 CALLER_OWNchar *owl_zephyr_get_field_as_utf8(void *n, int j)590 G_GNUC_WARN_UNUSED_RESULT char *owl_zephyr_get_field_as_utf8(void *n, int j) 591 591 { 592 592 return owl_zephyr_get_field(n, j); … … 621 621 * caller must free the return 622 622 */ 623 CALLER_OWNchar *owl_zephyr_get_message(const ZNotice_t *n, const owl_message *m)623 G_GNUC_WARN_UNUSED_RESULT char *owl_zephyr_get_message(const ZNotice_t *n, const owl_message *m) 624 624 { 625 625 #define OWL_NFIELDS 5 … … 838 838 zw.opcode = g_strdup(retnotice->z_opcode); 839 839 zw.zsig = g_strdup(""); 840 zw.recips = g_ptr_array_new();841 g_ptr_array_add(zw.recips, g_strdup(retnotice->z_recipient));840 owl_list_create(&(zw.recips)); 841 owl_list_append_element(&(zw.recips), g_strdup(retnotice->z_recipient)); 842 842 843 843 owl_log_outgoing_zephyr_error(&zw, buff); … … 942 942 #endif 943 943 944 CALLER_OWNchar *owl_zephyr_zlocate(const char *user, int auth)944 G_GNUC_WARN_UNUSED_RESULT char *owl_zephyr_zlocate(const char *user, int auth) 945 945 { 946 946 #ifdef HAVE_LIBZEPHYR … … 1042 1042 1043 1043 /* caller must free the return */ 1044 CALLER_OWNchar *owl_zephyr_makesubline(const char *class, const char *inst, const char *recip)1044 G_GNUC_WARN_UNUSED_RESULT char *owl_zephyr_makesubline(const char *class, const char *inst, const char *recip) 1045 1045 { 1046 1046 return g_strdup_printf("%s,%s,%s\n", class, inst, !strcmp(recip, "") ? "*" : recip); … … 1122 1122 * free the return. 1123 1123 */ 1124 CALLER_OWNchar *owl_zephyr_getsubs(void)1124 G_GNUC_WARN_UNUSED_RESULT char *owl_zephyr_getsubs(void) 1125 1125 { 1126 1126 #ifdef HAVE_LIBZEPHYR … … 1242 1242 * The caller must free the return 1243 1243 */ 1244 CALLER_OWNchar *short_zuser(const char *in)1244 G_GNUC_WARN_UNUSED_RESULT char *short_zuser(const char *in) 1245 1245 { 1246 1246 char *ptr = strrchr(in, '@'); … … 1254 1254 * The caller must free the return. 1255 1255 */ 1256 CALLER_OWNchar *long_zuser(const char *in)1256 G_GNUC_WARN_UNUSED_RESULT char *long_zuser(const char *in) 1257 1257 { 1258 1258 char *ptr = strrchr(in, '@'); … … 1282 1282 * caller must free the return. 1283 1283 */ 1284 CALLER_OWNchar *owl_zephyr_smartstripped_user(const char *in)1284 G_GNUC_WARN_UNUSED_RESULT char *owl_zephyr_smartstripped_user(const char *in) 1285 1285 { 1286 1286 char *slash, *dot, *realm, *out; … … 1324 1324 } 1325 1325 1326 /* Read the list of users in 'filename' as a .anyone file, and return as a 1327 * GPtrArray of strings. If 'filename' is NULL, use the default .anyone file 1328 * in the users home directory. Returns NULL on failure. 1326 /* read the list of users in 'filename' as a .anyone file, and put the 1327 * names of the zephyr users in the list 'in'. If 'filename' is NULL, 1328 * use the default .anyone file in the users home directory. Returns 1329 * -1 on failure, 0 on success. 1329 1330 */ 1330 GPtrArray *owl_zephyr_get_anyone_list(const char *filename)1331 int owl_zephyr_get_anyone_list(owl_list *in, const char *filename) 1331 1332 { 1332 1333 #ifdef HAVE_LIBZEPHYR 1333 1334 char *ourfile, *tmp, *s = NULL; 1334 1335 FILE *f; 1335 GPtrArray *list;1336 1336 1337 1337 ourfile = owl_zephyr_dotfile(".anyone", filename); … … 1341 1341 owl_function_error("Error opening file %s: %s", ourfile, strerror(errno) ? strerror(errno) : ""); 1342 1342 g_free(ourfile); 1343 return NULL;1343 return -1; 1344 1344 } 1345 1345 g_free(ourfile); 1346 1346 1347 list = g_ptr_array_new();1348 1347 while (owl_getline_chomp(&s, f)) { 1349 1348 /* ignore comments, blank lines etc. */ … … 1361 1360 tmp[0] = '\0'; 1362 1361 1363 g_ptr_array_add(list, long_zuser(s));1362 owl_list_append_element(in, long_zuser(s)); 1364 1363 } 1365 1364 g_free(s); 1366 1365 fclose(f); 1367 return list;1368 #else 1369 return NULL;1366 return 0; 1367 #else 1368 return -1; 1370 1369 #endif 1371 1370 } -
zwrite.c
r3cdd6d2 rd427f08 5 5 #include "owl.h" 6 6 7 CALLER_OWNowl_zwrite *owl_zwrite_new(const char *line)7 G_GNUC_WARN_UNUSED_RESULT owl_zwrite *owl_zwrite_new(const char *line) 8 8 { 9 9 owl_zwrite *z = g_new(owl_zwrite, 1); … … 34 34 z->cc=0; 35 35 z->noping=0; 36 z->recips = g_ptr_array_new();36 owl_list_create(&(z->recips)); 37 37 z->zwriteline = g_strdup(line); 38 38 … … 97 97 } 98 98 /* we must already have users or a class or an instance */ 99 if ( z->recips->len <1 && (!z->class) && (!z->inst)) {99 if (owl_list_get_size(&(z->recips))<1 && (!z->class) && (!z->inst)) { 100 100 badargs=1; 101 101 break; … … 117 117 } else { 118 118 /* anything unattached is a recipient */ 119 g_ptr_array_add(z->recips, owl_validate_utf8(myargv[0]));119 owl_list_append_element(&(z->recips), owl_validate_utf8(myargv[0])); 120 120 myargv++; 121 121 myargc--; … … 131 131 if (z->class == NULL && 132 132 z->inst == NULL && 133 z->recips->len ==0) {133 owl_list_get_size(&(z->recips))==0) { 134 134 owl_function_error("You must specify a recipient for zwrite"); 135 135 return(-1); … … 162 162 void owl_zwrite_send_ping(const owl_zwrite *z) 163 163 { 164 int i ;164 int i, j; 165 165 char *to; 166 166 … … 173 173 /* if there are no recipients we won't send a ping, which 174 174 is what we want */ 175 for (i = 0; i < z->recips->len; i++) { 175 j=owl_list_get_size(&(z->recips)); 176 for (i=0; i<j; i++) { 176 177 to = owl_zwrite_get_recip_n_with_realm(z, i); 177 178 send_ping(to, z->class, z->inst); … … 190 191 void owl_zwrite_set_message(owl_zwrite *z, const char *msg) 191 192 { 192 int i ;193 int i, j; 193 194 GString *message; 194 195 char *tmp = NULL, *tmp2; … … 196 197 g_free(z->message); 197 198 198 if (z->recips->len > 0 && z->cc) { 199 j=owl_list_get_size(&(z->recips)); 200 if (j>0 && z->cc) { 199 201 message = g_string_new("CC: "); 200 for (i = 0; i < z->recips->len; i++) {202 for (i=0; i<j; i++) { 201 203 tmp = owl_zwrite_get_recip_n_with_realm(z, i); 202 204 g_string_append_printf(message, "%s ", tmp); … … 231 233 int owl_zwrite_send_message(const owl_zwrite *z) 232 234 { 233 int i, ret = 0;235 int i, j, ret = 0; 234 236 char *to = NULL; 235 237 236 238 if (z->message==NULL) return(-1); 237 239 238 if (z->recips->len > 0) { 239 for (i = 0; i < z->recips->len; i++) { 240 j=owl_list_get_size(&(z->recips)); 241 if (j>0) { 242 for (i=0; i<j; i++) { 240 243 to = owl_zwrite_get_recip_n_with_realm(z, i); 241 244 ret = send_zephyr(z->opcode, z->zsig, z->class, z->inst, to, z->message); … … 309 312 int owl_zwrite_get_numrecips(const owl_zwrite *z) 310 313 { 311 return z->recips->len;314 return(owl_list_get_size(&(z->recips))); 312 315 } 313 316 314 317 const char *owl_zwrite_get_recip_n(const owl_zwrite *z, int n) 315 318 { 316 return z->recips->pdata[n];319 return(owl_list_get_element(&(z->recips), n)); 317 320 } 318 321 319 322 /* Caller must free the result. */ 320 CALLER_OWNchar *owl_zwrite_get_recip_n_with_realm(const owl_zwrite *z, int n)323 G_GNUC_WARN_UNUSED_RESULT char *owl_zwrite_get_recip_n_with_realm(const owl_zwrite *z, int n) 321 324 { 322 325 if (z->realm[0]) { … … 330 333 { 331 334 /* return true if at least one of the recipients is personal */ 332 int i; 333 char *recip; 334 335 for (i = 0; i < z->recips->len; i++) { 336 recip = z->recips->pdata[i]; 337 if (recip[0] != '@') return 1; 335 int i, j; 336 char *foo; 337 338 j=owl_list_get_size(&(z->recips)); 339 for (i=0; i<j; i++) { 340 foo=owl_list_get_element(&(z->recips), i); 341 if (foo[0]!='@') return(1); 338 342 } 339 343 return(0); … … 348 352 void owl_zwrite_cleanup(owl_zwrite *z) 349 353 { 350 owl_ ptr_array_free(z->recips,g_free);354 owl_list_cleanup(&(z->recips), &g_free); 351 355 g_free(z->cmd); 352 356 g_free(z->zwriteline); … … 366 370 * If not a CC, only the recip_index'th user will be replied to. 367 371 */ 368 CALLER_OWNchar *owl_zwrite_get_replyline(const owl_zwrite *z, int recip_index)372 G_GNUC_WARN_UNUSED_RESULT char *owl_zwrite_get_replyline(const owl_zwrite *z, int recip_index) 369 373 { 370 374 /* Match ordering in zwrite help. */ … … 399 403 } 400 404 if (z->cc) { 401 for (i = 0; i < z->recips->len; i++) {405 for (i = 0; i < owl_list_get_size(&(z->recips)); i++) { 402 406 g_string_append_c(buf, ' '); 403 owl_string_append_quoted_arg(buf, z->recips->pdata[i]);407 owl_string_append_quoted_arg(buf, owl_list_get_element(&(z->recips), i)); 404 408 } 405 } else if (recip_index < z->recips->len) {409 } else if (recip_index < owl_list_get_size(&(z->recips))) { 406 410 g_string_append_c(buf, ' '); 407 owl_string_append_quoted_arg(buf, z->recips->pdata[recip_index]);411 owl_string_append_quoted_arg(buf, owl_list_get_element(&(z->recips), recip_index)); 408 412 } 409 413
Note: See TracChangeset
for help on using the changeset viewer.