]> diplodocus.org Git - nmh/blobdiff - sbr/fmt_compile.c
Added -convertargs switch to repl(1), to pass arguments to programs
[nmh] / sbr / fmt_compile.c
index 200d738d79203627413e666ccfe5dacd45d9a9d5..dd43dc8acfa3f17c4f0cc41f86b0a8a0c96fa501 100644 (file)
@@ -159,7 +159,8 @@ static struct ftable functable[] = {
      { "decodecomp", TF_COMP,  FT_LS_DECODECOMP, 0,            TFL_PUTS },
      { "decode",     TF_EXPR,  FT_LS_DECODE,   0,              TFL_PUTS },
      { "trim",       TF_EXPR,  FT_LS_TRIM,     0,              0 },
-     { "units",      TF_EXPR,  FT_LS_UNITS,    0,              TFL_PUTS  },
+     { "kilo",       TF_EXPR,  FT_LS_KILO,     0,              TFL_PUTS },
+     { "kibi",       TF_EXPR,  FT_LS_KIBI,     0,              TFL_PUTS },
      { "compval",    TF_COMP,  FT_LV_COMP,     0,              TFL_PUTN },
      { "compflag",   TF_COMP,  FT_LV_COMPFLAG, 0,              TFL_PUTN },
      { "num",        TF_NUM,   FT_LV_LIT,      0,              TFL_PUTN },
@@ -222,6 +223,8 @@ static struct ftable functable[] = {
      { "friendly",   TF_COMP,  FT_LS_FRIENDLY, FT_PARSEADDR,   TFL_PUTS },
 
      { "mymbox",     TF_COMP,  FT_LV_COMPFLAG, FT_MYMBOX,      TFL_PUTN },
+     { "getmymbox",  TF_COMP,  FT_STR,         FT_GETMYMBOX,   0 },
+     { "getmyaddr",  TF_COMP,  FT_LS_ADDR,     FT_GETMYADDR,   TFL_PUTS },
 
      { "unquote",    TF_EXPR,  FT_LS_UNQUOTE,  0,              TFL_PUTS },
 
@@ -283,7 +286,7 @@ static struct colormap colortable[] = {
 
 /* Add new component to the hash table */
 #define NEWCOMP(cm,name) do { \
-       cm = ((struct comp *) calloc(1, sizeof (struct comp)));\
+       cm = ((struct comp *) mh_xcalloc (1, sizeof (struct comp)));\
        cm->c_name = getcpy(name);\
        cm->c_refcount++;\
        ncomp++;\
@@ -405,7 +408,7 @@ fmt_compile(char *fstring, struct format **fmt, int reset_comptable)
      */
     i = strlen(fstring)/2 + 1;
                if (i==1) i++;
-    next_fp = formatvec = (struct format *)calloc ((size_t) i,
+    next_fp = formatvec = (struct format *)mh_xcalloc ((size_t) i,
                                                   sizeof(struct format));
     if (next_fp == NULL)
        adios (NULL, "unable to allocate format storage");
@@ -561,14 +564,19 @@ do_name(char *sp, int preprocess)
        if (cm->c_type & CT_ADDR) {
            CERROR("component used as both date and address");
        }
-       cm->c_tws = (struct tws *)
-           calloc((size_t) 1, sizeof(*cm->c_tws));
+       if (cm->c_tws) {
+           memset (cm->c_tws, 0, sizeof *cm->c_tws);
+       } else {
+           cm->c_tws = mh_xcalloc (1, sizeof *cm->c_tws);
+       }
        fp->f_type = preprocess;
        PUTCOMP(sp);
        cm->c_type |= CT_DATE;
        break;
 
     case FT_MYMBOX:
+    case FT_GETMYMBOX:
+    case FT_GETMYADDR:
        if (!primed) {
            ismymbox ((struct mailname *) 0);
            primed++;