Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • zwrite.c

    r3cdd6d2 rd427f08  
    55#include "owl.h"
    66
    7 CALLER_OWN owl_zwrite *owl_zwrite_new(const char *line)
     7G_GNUC_WARN_UNUSED_RESULT owl_zwrite *owl_zwrite_new(const char *line)
    88{
    99  owl_zwrite *z = g_new(owl_zwrite, 1);
     
    3434  z->cc=0;
    3535  z->noping=0;
    36   z->recips = g_ptr_array_new();
     36  owl_list_create(&(z->recips));
    3737  z->zwriteline = g_strdup(line);
    3838
     
    9797      }
    9898      /* 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)) {
    100100        badargs=1;
    101101        break;
     
    117117    } else {
    118118      /* 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]));
    120120      myargv++;
    121121      myargc--;
     
    131131  if (z->class == NULL &&
    132132      z->inst == NULL &&
    133       z->recips->len == 0) {
     133      owl_list_get_size(&(z->recips))==0) {
    134134    owl_function_error("You must specify a recipient for zwrite");
    135135    return(-1);
     
    162162void owl_zwrite_send_ping(const owl_zwrite *z)
    163163{
    164   int i;
     164  int i, j;
    165165  char *to;
    166166
     
    173173  /* if there are no recipients we won't send a ping, which
    174174     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++) {
    176177    to = owl_zwrite_get_recip_n_with_realm(z, i);
    177178    send_ping(to, z->class, z->inst);
     
    190191void owl_zwrite_set_message(owl_zwrite *z, const char *msg)
    191192{
    192   int i;
     193  int i, j;
    193194  GString *message;
    194195  char *tmp = NULL, *tmp2;
     
    196197  g_free(z->message);
    197198
    198   if (z->recips->len > 0 && z->cc) {
     199  j=owl_list_get_size(&(z->recips));
     200  if (j>0 && z->cc) {
    199201    message = g_string_new("CC: ");
    200     for (i = 0; i < z->recips->len; i++) {
     202    for (i=0; i<j; i++) {
    201203      tmp = owl_zwrite_get_recip_n_with_realm(z, i);
    202204      g_string_append_printf(message, "%s ", tmp);
     
    231233int owl_zwrite_send_message(const owl_zwrite *z)
    232234{
    233   int i, ret = 0;
     235  int i, j, ret = 0;
    234236  char *to = NULL;
    235237
    236238  if (z->message==NULL) return(-1);
    237239
    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++) {
    240243      to = owl_zwrite_get_recip_n_with_realm(z, i);
    241244      ret = send_zephyr(z->opcode, z->zsig, z->class, z->inst, to, z->message);
     
    309312int owl_zwrite_get_numrecips(const owl_zwrite *z)
    310313{
    311   return z->recips->len;
     314  return(owl_list_get_size(&(z->recips)));
    312315}
    313316
    314317const char *owl_zwrite_get_recip_n(const owl_zwrite *z, int n)
    315318{
    316   return z->recips->pdata[n];
     319  return(owl_list_get_element(&(z->recips), n));
    317320}
    318321
    319322/* Caller must free the result. */
    320 CALLER_OWN char *owl_zwrite_get_recip_n_with_realm(const owl_zwrite *z, int n)
     323G_GNUC_WARN_UNUSED_RESULT char *owl_zwrite_get_recip_n_with_realm(const owl_zwrite *z, int n)
    321324{
    322325  if (z->realm[0]) {
     
    330333{
    331334  /* 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);
    338342  }
    339343  return(0);
     
    348352void owl_zwrite_cleanup(owl_zwrite *z)
    349353{
    350   owl_ptr_array_free(z->recips, g_free);
     354  owl_list_cleanup(&(z->recips), &g_free);
    351355  g_free(z->cmd);
    352356  g_free(z->zwriteline);
     
    366370 * If not a CC, only the recip_index'th user will be replied to.
    367371 */
    368 CALLER_OWN char *owl_zwrite_get_replyline(const owl_zwrite *z, int recip_index)
     372G_GNUC_WARN_UNUSED_RESULT char *owl_zwrite_get_replyline(const owl_zwrite *z, int recip_index)
    369373{
    370374  /* Match ordering in zwrite help. */
     
    399403  }
    400404  if (z->cc) {
    401     for (i = 0; i < z->recips->len; i++) {
     405    for (i = 0; i < owl_list_get_size(&(z->recips)); i++) {
    402406      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));
    404408    }
    405   } else if (recip_index < z->recips->len) {
     409  } else if (recip_index < owl_list_get_size(&(z->recips))) {
    406410    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));
    408412  }
    409413
Note: See TracChangeset for help on using the changeset viewer.