X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=test%2Fdemo_panels.c;h=6c8258915713c5fe5d60140d6f360a6b4b7ce8fd;hb=2bcad5fdfc4aa83a1479bd1d21dadc32dad8c2a8;hp=c47f52f242d84d6f77b731b06129801d657d7d1f;hpb=efa78d11c3ea7f51c7078b64a34c98b44ecb0e1a;p=ncurses.git diff --git a/test/demo_panels.c b/test/demo_panels.c index c47f52f2..6c825891 100644 --- a/test/demo_panels.c +++ b/test/demo_panels.c @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 2007-2018,2019 Free Software Foundation, Inc. * + * Copyright 2018-2020,2022 Thomas E. Dickey * + * Copyright 2003-2016,2017 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -26,7 +27,7 @@ * authorization. * ****************************************************************************/ /* - * $Id: demo_panels.c,v 1.43 2019/08/24 23:11:01 tom Exp $ + * $Id: demo_panels.c,v 1.48 2022/12/04 00:40:11 tom Exp $ * * Demonstrate a variety of functions from the panel library. */ @@ -204,7 +205,7 @@ mkpanel(short color, int rows, int cols, int tly, int tlx) { WINDOW *win; PANEL *pan = 0; - char *userdata = typeMalloc(char, 5); + char *userdata = typeMalloc(char, 6); if ((win = newwin(rows, cols, tly, tlx)) != 0) { keypad(win, TRUE); @@ -222,7 +223,7 @@ mkpanel(short color, int rows, int cols, int tly, int tlx) wbkgdset(win, A_BOLD | ' '); } } - _nc_SPRINTF(userdata, _nc_SLIMIT(3) "p%d", color % 8); + _nc_SPRINTF(userdata, _nc_SLIMIT(4) "p%d", color % 8); set_panel_userptr(pan, (NCURSES_CONST void *) userdata); return pan; } @@ -740,39 +741,43 @@ demo_panels(InitPanel myInit, FillPanel myFill) } static void -usage(void) +usage(int ok) { static const char *const tbl[] = { "Usage: demo_panels [options]" ,"" + ,USAGE_COMMON ,"Options:" - ," -i file read commands from file" - ," -o file record commands in file" - ," -m do not use colors" + ," -i file read commands from file" + ," -o file record commands in file" + ," -m do not use colors" #if USE_WIDEC_SUPPORT - ," -w use wide-characters in panels and background" + ," -w use wide-characters in panels and background" #endif - ," -x do not enclose panels in boxes" + ," -x do not enclose panels in boxes" }; size_t n; for (n = 0; n < SIZEOF(tbl); n++) fprintf(stderr, "%s\n", tbl[n]); - ExitProgram(EXIT_FAILURE); + ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE); } +/* *INDENT-OFF* */ +VERSION_COMMON() +/* *INDENT-ON* */ int main(int argc, char *argv[]) { - int c; + int ch; bool monochrome = FALSE; InitPanel myInit = init_panel; FillPanel myFill = fill_panel; setlocale(LC_ALL, ""); - while ((c = getopt(argc, argv, "i:o:mwx")) != -1) { - switch (c) { + while ((ch = getopt(argc, argv, OPTS_COMMON "i:o:mwx")) != -1) { + switch (ch) { case 'i': log_in = fopen(optarg, "r"); break; @@ -791,8 +796,12 @@ main(int argc, char *argv[]) case 'x': unboxed = TRUE; break; + case OPTS_VERSION: + show_version(argv); + ExitProgram(EXIT_SUCCESS); default: - usage(); + usage(ch == OPTS_USAGE); + /* NOTREACHED */ } } if (unboxed)