Ignore:
Timestamp:
Sep 27, 2006, 9:18:20 AM (13 years ago)
Author:
Sam Hocevar
Message:
  • Implemented figlet's -t (adapt to terminal's width).
File:
1 edited

Legend:

Unmodified
Added
Removed
  • toilet/trunk/src/main.c

    r1115 r1116  
    2424#   include <getopt.h>
    2525#endif
     26#if defined(HAVE_SYS_IOCTL_H) && defined(TIOCGWINSZ)
     27#   include <sys/ioctl.h>
     28#endif
    2629#include <stdio.h>
    2730#include <string.h>
     
    6871            { "directory", 1, NULL, 'd' },
    6972            { "width", 1, NULL, 'w' },
     73            { "termwidth", 0, NULL, 't' },
    7074            { "gay", 0, NULL, 'g' },
    7175            { "metal", 0, NULL, 'm' },
     
    7781        };
    7882
    79         int c = getopt_long(argc, argv, "d:f:I:w:ghimv",
     83        int c = getopt_long(argc, argv, "d:f:I:w:ghimtv",
    8084                            long_options, &option_index);
    8185#   else
    8286#       define MOREINFO "Try `%s -h' for more information.\n"
    83         int c = getopt(argc, argv, "d:f:I:w:ghimv");
     87        int c = getopt(argc, argv, "d:f:I:w:ghimtv");
    8488#   endif
    8589        if(c == -1)
     
    112116            term_width = atoi(optarg);
    113117            break;
     118        case 't': /* --termwidth */
     119        {
     120#if defined(HAVE_SYS_IOCTL_H) && defined(TIOCGWINSZ)
     121            struct winsize ws;
     122
     123            if((ioctl(1, TIOCGWINSZ, &ws) != -1 ||
     124                ioctl(2, TIOCGWINSZ, &ws) != -1 ||
     125                ioctl(0, TIOCGWINSZ, &ws) != -1) && ws.ws_col != 0)
     126                term_width = ws.ws_col;
     127#endif
     128            break;
     129        }
    114130        case 'i': /* --irc */
    115131            export = "irc";
     
    222238static void usage(void)
    223239{
    224     printf("Usage: toilet [ -ghimv ] [ -d fontdirectory ]\n");
     240    printf("Usage: toilet [ -ghimtv ] [ -d fontdirectory ]\n");
    225241    printf("              [ -f fontfile ] [ -w outputwidth ]\n");
    226242    printf("              [ -I infocode ] [ message ]\n");
     
    229245    printf("  -d, --directory <dir>    specify font directory\n");
    230246    printf("  -w, --width <width>      set output width\n");
     247    printf("  -t, --termwidth          adapt to terminal's width\n");
    231248    printf("  -g, --gay                add a rainbow effect to the text\n");
    232249    printf("  -m, --metal              add a metal effect to the text\n");
     
    239256    printf("  -d <dir>         specify font directory\n");
    240257    printf("  -w <width>       set output width\n");
     258    printf("  -t               adapt to terminal's width\n");
    241259    printf("  -g               add a rainbow effect to the text\n");
    242260    printf("  -m               add a metal effect to the text\n");
Note: See TracChangeset for help on using the changeset viewer.