Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • zwrite.c

    r3ef779b ra52d13a  
    99int owl_zwrite_create_from_line(owl_zwrite *z, char *line)
    1010{
    11   int argc, badargs, myargc;
     11  int argc, badargs, myargc, i, len;
    1212  char **argv, **myargv;
     13  char *msg = NULL;
    1314
    1415  badargs=0;
    1516 
    16   /* start with null entires */
     17  /* start with null entries */
    1718  z->realm=NULL;
    1819  z->class=NULL;
     
    8283        break;
    8384      }
    84       /* we must already have users or a class or an instance*/
     85      /* we must already have users or a class or an instance */
    8586      if (owl_list_get_size(&(z->recips))<1 && (!z->class) && (!z->inst)) {
    8687        badargs=1;
     
    9192      myargv++;
    9293      myargc--;
    93       z->message = owl_strdup("");
     94      len = 0;
     95      for (i=0;i<myargc;i++) {
     96        len += strlen(myargv[i-1]) + 1;
     97      }
     98      msg = owl_malloc(len);
     99      msg[0] = '\0';
    94100      while (myargc) {
    95         z->message=owl_realloc(z->message, strlen(z->message)+strlen(myargv[0])+5);
    96         strcat(z->message, myargv[0]);
    97         strcat(z->message, " ");
    98         myargc--;
    99         myargv++;
    100       }
    101       z->message[strlen(z->message)-1]='\0'; /* remove last space */
     101        strcat(msg, myargv[0]);
     102        strcat(msg, " ");
     103        myargc--;
     104        myargv++;
     105      }
     106      msg[strlen(msg)-1] = '\0';
    102107      break;
    103108    } else if (!strcmp(myargv[0], "-C")) {
     
    136141  if (z->opcode==NULL) z->opcode=owl_strdup("");
    137142  /* z->message is allowed to stay NULL */
    138  
     143
     144  if(msg) {
     145    owl_zwrite_set_message(z, msg);
     146    owl_free(msg);
     147  }
     148
    139149  return(0);
    140150}
     
    222232  int i, j;
    223233  char *toline = NULL;
    224   char *tmp = NULL;
     234  char *tmp = NULL, *tmp2;
    225235
    226236  if (z->message) owl_free(z->message);
     
    240250    }
    241251    tmp = owl_validate_utf8(msg);
    242     z->message=owl_sprintf("%s\n%s", toline, tmp);
     252    tmp2 = owl_text_expand_tabs(tmp);
     253    z->message=owl_sprintf("%s\n%s", toline, tmp2);
    243254    owl_free(toline);
     255    owl_free(tmp);
     256    owl_free(tmp2);
    244257  } else {
    245     z->message=owl_validate_utf8(msg);
    246   }
    247   if (tmp) owl_free(tmp);
     258    tmp=owl_validate_utf8(msg);
     259    z->message=owl_text_expand_tabs(tmp);
     260    owl_free(tmp);
     261  }
    248262}
    249263
Note: See TracChangeset for help on using the changeset viewer.