X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=mdp.c;h=3bf1bd20f696cede99ce06edf29c2d36020a6496;hb=2c77b5e6e665dcce85cc22d7673573c46137593d;hp=d641faaa449865a2363cd441e896a622756ca88f;hpb=11bf64f833379a70fc3f9b2adb365312810a26c2;p=smdp.git diff --git a/mdp.c b/mdp.c index d641faa..3bf1bd2 100644 --- a/mdp.c +++ b/mdp.c @@ -1,5 +1,5 @@ /* - * mpd -- A command-line based markdown presentation tool. + * mdp -- A command-line based markdown presentation tool. * Copyright (C) 2014 Michael Goehler * * This program is free software: you can redistribute it and/or modify @@ -32,6 +32,7 @@ void usage() { fprintf(stderr, "%s", " add it multiple times to increases debug level\n"); fprintf(stderr, "%s", " -f, --nofade disable color fading in 256 color mode\n"); fprintf(stderr, "%s", " -h, --help display this help and exit\n"); + fprintf(stderr, "%s", " -i, --invert swap black and white color\n"); fprintf(stderr, "%s", " -t, --notrans disable transparency in transparent terminal\n"); fprintf(stderr, "%s", "\nWith no FILE, or when FILE is -, read standard input.\n\n"); exit(EXIT_FAILURE); @@ -50,12 +51,14 @@ void version() { int main(int argc, char *argv[]) { int notrans = 0; int nofade = 0; + int invert = 0; // define command-line options struct option longopts[] = { { "debug", no_argument, 0, 'd' }, { "nofade", no_argument, 0, 'f' }, { "help", no_argument, 0, 'h' }, + { "invert", no_argument, 0, 'i' }, { "notrans", no_argument, 0, 't' }, { "version", no_argument, 0, 'v' }, { 0, 0, 0, 0 } @@ -63,11 +66,12 @@ int main(int argc, char *argv[]) { // parse command-line options int opt, debug = 0; - while ((opt = getopt_long(argc, argv, ":dfhtv", longopts, NULL)) != -1) { + while ((opt = getopt_long(argc, argv, ":dfhitv", longopts, NULL)) != -1) { switch(opt) { case 'd': debug += 1; break; case 'f': nofade = 1; break; case 'h': usage(); break; + case 'i': invert = 1; break; case 't': notrans = 1; break; case 'v': version(); break; case ':': fprintf(stderr, "%s: '%c' requires an argument\n", argv[0], optopt); usage(); break; @@ -104,11 +108,15 @@ int main(int argc, char *argv[]) { // close file fclose(input); + // replace stdin with current tty if input was a pipe + if(input == stdin) + freopen("/dev/tty", "rw", stdin); + if(debug > 0) { markdown_debug(deck, debug); } - ncurses_display(deck, notrans, nofade); + ncurses_display(deck, notrans, nofade, invert); return(EXIT_SUCCESS); }