]> diplodocus.org Git - nmh/commitdiff
Create "nowrap" flag to turn off all line wrapping.
authorKen Hornstein <kenh@pobox.com>
Sat, 28 Jan 2012 05:29:13 +0000 (00:29 -0500)
committerKen Hornstein <kenh@pobox.com>
Sat, 28 Jan 2012 05:29:13 +0000 (00:29 -0500)
man/mhl.man
uip/mhlsbr.c

index f8546c31e89f2f777cdbcf98ef3edd22fd337819..cc62b7c8c665fcfe26c40c580095324e3a8b9d3c 100644 (file)
@@ -235,6 +235,8 @@ leftadjust  flag    strip off leading whitespace on each
 noleftadjust   flag    don't leftadjust
 compress       flag    change newlines in text to spaces
 nocompress     flag    don't compress
 noleftadjust   flag    don't leftadjust
 compress       flag    change newlines in text to spaces
 nocompress     flag    don't compress
+wrap   flag    Wrap lines that exceed width (default)
+nowrap flag    Do not perform line wrapping
 split  flag    don't combine multiple fields into
                a single field
 nosplit        flag    combine multiple fields into
 split  flag    don't combine multiple fields into
                a single field
 nosplit        flag    combine multiple fields into
index 6335463f4447167ff4dbf128a4aaea1f0f2bacca..5f355ab52af4b594154c244fcd56317c8efed2d1 100644 (file)
@@ -109,8 +109,9 @@ static struct swit mhlswitches[] = {
 #define        FACEDFLT    0x008000    /* default for face                  */
 #define        SPLIT       0x010000    /* split headers (don't concatenate) */
 #define        NONEWLINE   0x020000    /* don't write trailing newline      */
 #define        FACEDFLT    0x008000    /* default for face                  */
 #define        SPLIT       0x010000    /* split headers (don't concatenate) */
 #define        NONEWLINE   0x020000    /* don't write trailing newline      */
-#define        LBITS   "\020\01NOCOMPONENT\02UPPERCASE\03CENTER\04CLEARTEXT\05EXTRA\06HDROUTPUT\07CLEARSCR\010LEFTADJUST\011COMPRESS\012ADDRFMT\013BELL\014DATEFMT\015FORMAT\016INIT\017FACEFMT\020FACEDFLT\021SPLIT\022NONEWLINE"
-#define        GFLAGS  (NOCOMPONENT | UPPERCASE | CENTER | LEFTADJUST | COMPRESS | SPLIT)
+#define NOWRAP      0x040000   /* Don't wrap lines ever             */
+#define        LBITS   "\020\01NOCOMPONENT\02UPPERCASE\03CENTER\04CLEARTEXT\05EXTRA\06HDROUTPUT\07CLEARSCR\010LEFTADJUST\011COMPRESS\012ADDRFMT\013BELL\014DATEFMT\015FORMAT\016INIT\017FACEFMT\020FACEDFLT\021SPLIT\022NONEWLINE\023NOWRAP"
+#define        GFLAGS  (NOCOMPONENT | UPPERCASE | CENTER | LEFTADJUST | COMPRESS | SPLIT | NOWRAP)
 
 struct mcomp {
     char *c_name;              /* component name          */
 
 struct mcomp {
     char *c_name;              /* component name          */
@@ -192,6 +193,8 @@ static struct triple triples[] = {
     { "datefield",     DATEFMT,     ADDRFMT },
     { "newline",       0,           NONEWLINE },
     { "nonewline",     NONEWLINE,   0 },
     { "datefield",     DATEFMT,     ADDRFMT },
     { "newline",       0,           NONEWLINE },
     { "nonewline",     NONEWLINE,   0 },
+    { "wrap",          0,           NOWRAP },
+    { "nowrap",        NOWRAP,      0 },
     { NULL,            0,           0 }
 };
 
     { NULL,            0,           0 }
 };
 
@@ -269,8 +272,8 @@ static struct mcomp *add_queue (struct mcomp **, struct mcomp **, char *, char *
 static void free_queue (struct mcomp **, struct mcomp **);
 static void putcomp (struct mcomp *, struct mcomp *, int);
 static char *oneline (char *, long);
 static void free_queue (struct mcomp **, struct mcomp **);
 static void putcomp (struct mcomp *, struct mcomp *, int);
 static char *oneline (char *, long);
-static void putstr (char *);
-static void putch (char);
+static void putstr (char *, long);
+static void putch (char, long);
 static void intrser (int);
 static void pipeser (int);
 static void quitser (int);
 static void intrser (int);
 static void pipeser (int);
 static void quitser (int);
@@ -1199,8 +1202,8 @@ putcomp (struct mcomp *c1, struct mcomp *c2, int flag)
     onelp = NULL;
 
     if (c1->c_flags & CLEARTEXT) {
     onelp = NULL;
 
     if (c1->c_flags & CLEARTEXT) {
-       putstr (c1->c_text);
-       putstr ("\n");
+       putstr (c1->c_text, c1->c_flags);
+       putstr ("\n", c1->c_flags);
        return;
     }
 
        return;
     }
 
@@ -1233,9 +1236,9 @@ putcomp (struct mcomp *c1, struct mcomp *c2, int flag)
            for (cp = (c1->c_text ? c1->c_text : c1->c_name); *cp; cp++)
                if (islower (*cp))
                    *cp = toupper (*cp);
            for (cp = (c1->c_text ? c1->c_text : c1->c_name); *cp; cp++)
                if (islower (*cp))
                    *cp = toupper (*cp);
-       putstr (c1->c_text ? c1->c_text : c1->c_name);
+       putstr (c1->c_text ? c1->c_text : c1->c_name, c1->c_flags);
        if (flag != BODYCOMP) {
        if (flag != BODYCOMP) {
-           putstr (": ");
+           putstr (": ", c1->c_flags);
            if (!(c1->c_flags & SPLIT))
                c1->c_flags |= HDROUTPUT;
 
            if (!(c1->c_flags & SPLIT))
                c1->c_flags |= HDROUTPUT;
 
@@ -1243,7 +1246,7 @@ putcomp (struct mcomp *c1, struct mcomp *c2, int flag)
        if ((count = c1->c_cwidth -
                strlen (c1->c_text ? c1->c_text : c1->c_name) - 2) > 0)
            while (count--)
        if ((count = c1->c_cwidth -
                strlen (c1->c_text ? c1->c_text : c1->c_name) - 2) > 0)
            while (count--)
-               putstr (" ");
+               putstr (" ", c1->c_flags);
        }
        else
            c1->c_flags |= HDROUTPUT;           /* for BODYCOMP */
        }
        else
            c1->c_flags |= HDROUTPUT;           /* for BODYCOMP */
@@ -1256,15 +1259,15 @@ putcomp (struct mcomp *c1, struct mcomp *c2, int flag)
            for (cp = c2->c_name; *cp; cp++)
                if (islower (*cp))
                    *cp = toupper (*cp);
            for (cp = c2->c_name; *cp; cp++)
                if (islower (*cp))
                    *cp = toupper (*cp);
-       putstr (c2->c_name);
-       putstr (": ");
+       putstr (c2->c_name, c1->c_flags);
+       putstr (": ", c1->c_flags);
        if (!(c1->c_flags & SPLIT))
            c2->c_flags |= HDROUTPUT;
 
        cchdr++;
        if ((count = c1->c_cwidth - strlen (c2->c_name) - 2) > 0)
            while (count--)
        if (!(c1->c_flags & SPLIT))
            c2->c_flags |= HDROUTPUT;
 
        cchdr++;
        if ((count = c1->c_cwidth - strlen (c2->c_name) - 2) > 0)
            while (count--)
-               putstr (" ");
+               putstr (" ", c1->c_flags);
     }
     if (c1->c_flags & UPPERCASE)
        for (cp = c2->c_text; *cp; cp++)
     }
     if (c1->c_flags & UPPERCASE)
        for (cp = c2->c_text; *cp; cp++)
@@ -1283,18 +1286,18 @@ putcomp (struct mcomp *c1, struct mcomp *c2, int flag)
     count += c1->c_offset;
 
     if ((cp = oneline (c2->c_text, c1->c_flags)))
     count += c1->c_offset;
 
     if ((cp = oneline (c2->c_text, c1->c_flags)))
-       putstr(cp);
+       putstr(cp, c1->c_flags);
     if (term == '\n')
     if (term == '\n')
-       putstr ("\n");
+       putstr ("\n", c1->c_flags);
     while ((cp = oneline (c2->c_text, c1->c_flags))) {
        lm = count;
        if (flag == BODYCOMP
                && !(c1->c_flags & NOCOMPONENT))
     while ((cp = oneline (c2->c_text, c1->c_flags))) {
        lm = count;
        if (flag == BODYCOMP
                && !(c1->c_flags & NOCOMPONENT))
-           putstr (c1->c_text ? c1->c_text : c1->c_name);
+           putstr (c1->c_text ? c1->c_text : c1->c_name, c1->c_flags);
        if (*cp)
        if (*cp)
-           putstr (cp);
+           putstr (cp, c1->c_flags);
        if (term == '\n')
        if (term == '\n')
-           putstr ("\n");
+           putstr ("\n", c1->c_flags);
     }
     if (flag == BODYCOMP && term == '\n')
        c1->c_flags &= ~HDROUTPUT;              /* Buffer ended on a newline */
     }
     if (flag == BODYCOMP && term == '\n')
        c1->c_flags &= ~HDROUTPUT;              /* Buffer ended on a newline */
@@ -1354,27 +1357,27 @@ oneline (char *stuff, long flags)
 
 
 static void
 
 
 static void
-putstr (char *string)
+putstr (char *string, long flags)
 {
     if (!column && lm > 0) {
        while (lm > 0)
            if (lm >= 8) {
 {
     if (!column && lm > 0) {
        while (lm > 0)
            if (lm >= 8) {
-               putch ('\t');
+               putch ('\t', flags);
                lm -= 8;
            }
            else {
                lm -= 8;
            }
            else {
-               putch (' ');
+               putch (' ', flags);
                lm--;
            }
     }
     lm = 0;
     while (*string)
                lm--;
            }
     }
     lm = 0;
     while (*string)
-       putch (*string++);
+       putch (*string++, flags);
 }
 
 
 static void
 }
 
 
 static void
-putch (char ch)
+putch (char ch, long flags)
 {
     char buf[BUFSIZ];
 
 {
     char buf[BUFSIZ];
 
@@ -1431,12 +1434,12 @@ putch (char ch)
            break;
     }
 
            break;
     }
 
-    if (column >= wid) {
-       putch ('\n');
+    if (column >= wid && (flags & NOWRAP) == 0) {
+       putch ('\n', flags);
        if (ovoff > 0)
            lm = ovoff;
        if (ovoff > 0)
            lm = ovoff;
-       putstr (ovtxt ? ovtxt : "");
-       putch (ch);
+       putstr (ovtxt ? ovtxt : "", flags);
+       putch (ch, flags);
        return;
     }
 
        return;
     }