Path: utzoo!censor!geac!torsqnt!jarvis.csri.toronto.edu!cs.utexas.edu!tut.cis.ohio-state.edu!rls!randy From: randy@rls.UUCP (Randall L. Smith) Newsgroups: comp.unix.i386 Subject: Re: color on console Summary: How's this source? Message-ID: <10390@rls.UUCP> Date: 25 Feb 90 06:57:48 GMT References: <9mB5e3w160w@nstar.uucp> Organization: The Internet Lines: 104 In article <9mB5e3w160w@nstar.uucp>, larry@nstar.uucp (Larry Snyder) writes: > Does anyone have a utility for use under 386/ix that sets > the color on the console like the SCO "setcolor" utility? Here's one inspired by SCO setcolor I whipped up awhile back. It's not very well written nor has lots-o-features but you get the source and may help you. Enjoy. /* * color.c - Set color of monitor. * * Author: Randall L. Smith, October 1988. * Flames: rls!randy@tut.cis.ohio-state.edu -or- ...!osu-cis!rls!randy * * This code is hereby transferred to the public domain. Make big money * or anything else you like. Even pretend you wrote it because I don't * want to admit this is mine. :-) Some pretty obvious improvements can * be made, but it just doesn't matter to me right now. * * This has been compiled under MSC 4.0. * * Param Desc * 8 Invisible (black on black) display. Yeesh. * 30 Foreground black * 31 Foreground red * 32 Foreground green * 33 Foreground yellow * 34 Foreground blue * 35 Foreground magenta * 36 Foreground cyan * 37 Foreground white * 40 Background black * 41 Background red * 42 Background green * 43 Background yellow * 44 Background blue * 45 Background magenta * 46 Background cyan * 47 Background white * * Bugs: Has stupid notion that the default color of screen is green. * Aren't they all? :-) * */ #include char colors; int fprintf(); int printf(); int strcmp(); main(argc, argv) int argc; char *argv[]; { if (argc == 3) { if ((strcmp(argv[1], "-F") == 0) || (strcmp(argv[1], "-f") == 0)) colors = '3'; else if ((strcmp(argv[1], "-B") == 0) || (strcmp(argv[1], "-b") == 0)) colors = '4'; } else { (void) print_help(); return -1; } if (strcmp(argv[2], "black") == 0) { (void) printf("\033[%c0m", colors); /* black */ } else if (strcmp(argv[2], "red") == 0) { (void) printf("\033[%c1m", colors); /* red */ } else if (strcmp(argv[2], "green") == 0) { (void) printf("\033[%c2m", colors); /* green */ } else if (strcmp(argv[2], "yellow") == 0) { (void) printf("\033[1;%c3m", colors); /* yellow */ } else if (strcmp(argv[2], "blue") == 0) { (void) printf("\033[%c4m", colors); /* blue */ } else if (strcmp(argv[2], "magenta") == 0) { (void) printf("\033[%c5m", colors); /* magenta */ } else if (strcmp(argv[2], "cyan") == 0) { (void) printf("\033[%c6m", colors); /* cyan */ } else if (strcmp(argv[2], "white") == 0) { (void) printf("\033[%c7m", colors); /* white */ } else { (void) fprintf(stderr, "Unknown color %s \n", argv[2]); (void) print_help(); return -1; } return 0; } /* * Default black background - green foreground. */ print_help() { (void) fprintf(stderr, "Usage: color -[fbh] desired-color \n"); (void) fprintf(stderr, "Valid colors are: "); (void) fprintf(stderr, " \033[47;30m black \033[40;31m red \033[32m green \033[1;33m yellow\n"); (void) fprintf(stderr, " \033[0;34m blue \033[35m magenta \033[36m cyan \033[37m white\n"); (void) fprintf(stderr, " \033[32m for [f]oreground or [b]ackground.\n"); return 0; }