Ignore:
Timestamp:
Oct 25, 2006, 6:06:19 PM (14 years ago)
Author:
Sam Hocevar
Message:
  • Added filter_flip, filter_flop and filter_rotate.
  • Add a -F flag to specify filters to apply. Can be specified more than once, and filters can be chained using ":", eg. "-F flip:gay".
File:
1 edited

Legend:

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

    r1227 r1228  
    5151    int i, j, ret;
    5252
    53     unsigned int flag_gay = 0;
    54     unsigned int flag_metal = 0;
    5553    int infocode = -1;
    5654
     
    6058
    6159    cx->term_width = 80;
     60
     61    cx->filters = NULL;
     62    cx->nfilters = 0;
    6263
    6364#if defined(HAVE_GETOPT_H)
     
    7475            { "width", 1, NULL, 'w' },
    7576            { "termwidth", 0, NULL, 't' },
     77            { "filter", 1, NULL, 'F' },
    7678            { "gay", 0, NULL, 'g' },
    7779            { "metal", 0, NULL, 'm' },
     
    8385        };
    8486
    85         int c = getopt_long(argc, argv, "d:f:I:w:ghimtv",
     87        int c = getopt_long(argc, argv, "f:d:w:tF:gmihI:v",
    8688                            long_options, &option_index);
    8789#   else
    8890#       define MOREINFO "Try `%s -h' for more information.\n"
    89         int c = getopt(argc, argv, "d:f:I:w:ghimtv");
     91        int c = getopt(argc, argv, "f:d:w:tF:gmihI:v");
    9092#   endif
    9193        if(c == -1)
     
    109111            cx->dir = optarg;
    110112            break;
     113        case 'F': /* --filter */
     114            if(filter_add(cx, optarg))
     115                return -1;
     116            break;
    111117        case 'g': /* --gay */
    112             flag_gay = 1;
     118            filter_add(cx, "gay");
    113119            break;
    114120        case 'm': /* --metal */
    115             flag_metal = 1;
     121            filter_add(cx, "metal");
    116122            break;
    117123        case 'w': /* --width */
     
    221227
    222228    /* Apply optional effects to our string */
    223     if(!strcasecmp(cx->font, "mono9"))
    224         filter_autocrop(cx->cv);
    225     if(flag_metal)
    226         filter_metal(cx->cv);
    227     if(flag_gay)
    228         filter_gay(cx->cv);
     229    filter_do(cx);
    229230
    230231    /* Output char */
     
    241242#if defined(HAVE_GETOPT_H)
    242243#   define USAGE \
    243     "Usage: toilet [ -ghimtv ] [ -d fontdirectory ]\n" \
     244    "Usage: toilet [ -ghimtvF ] [ -d fontdirectory ]\n" \
    244245    "              [ -f fontfile ] [ -w outputwidth ]\n" \
    245246    "              [ -I infocode ] [ message ]\n"
     
    275276    printf("  -w, --width <width>      set output width\n");
    276277    printf("  -t, --termwidth          adapt to terminal's width\n");
     278    printf("  -F, --filter             apply one or several filters to the text\n");
    277279    printf("  -g, --gay                add a rainbow effect to the text\n");
    278280    printf("  -m, --metal              add a metal effect to the text\n");
     
    286288    printf("  -w <width>       set output width\n");
    287289    printf("  -t               adapt to terminal's width\n");
     290    printf("  -F               apply one or several filters to the text\n");
    288291    printf("  -g               add a rainbow effect to the text\n");
    289292    printf("  -m               add a metal effect to the text\n");
Note: See TracChangeset for help on using the changeset viewer.