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