X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;ds=sidebyside;f=test%2Fclip_printw.c;h=49d67c53741fbc5b84581943d5ccef3dd4831e7c;hb=2bcad5fdfc4aa83a1479bd1d21dadc32dad8c2a8;hp=f068457619833ddecdfb44e0c96ca23c3b011a15;hpb=47d2fb4537d9ad5bb14f4810561a327930ca4280;p=ncurses.git diff --git a/test/clip_printw.c b/test/clip_printw.c index f0684576..49d67c53 100644 --- a/test/clip_printw.c +++ b/test/clip_printw.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2019,2020 Thomas E. Dickey * + * Copyright 2019-2020,2022 Thomas E. Dickey * * Copyright 2008-2016,2017 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -27,7 +27,7 @@ * authorization. * ****************************************************************************/ /* - * $Id: clip_printw.c,v 1.17 2020/02/02 23:34:34 tom Exp $ + * $Id: clip_printw.c,v 1.21 2022/12/10 23:31:31 tom Exp $ * * demonstrate how to use printw without wrapping. */ @@ -331,7 +331,10 @@ test_clipping(WINDOW *win) need = (unsigned) st.count + 1; _nc_SPRINTF(fmt, _nc_SLIMIT(sizeof(fmt)) "%%c%%%ds%%c", st.count); } else { - need = (unsigned) getmaxx(win) - 1; + int want = getmaxx(win); + if (want < 10) + want = 10; + need = (unsigned) want - 1; _nc_STRCPY(fmt, "%c%s%c", sizeof(fmt)); } if ((buffer = typeMalloc(char, need + 1)) != 0) { @@ -355,9 +358,45 @@ test_clipping(WINDOW *win) } while ((st.ch = wgetch(win)) != ERR); } +static void +usage(int ok) +{ + static const char *msg[] = + { + "Usage: clip_printw [options]" + ,"" + ,USAGE_COMMON + }; + size_t n; + + for (n = 0; n < SIZEOF(msg); n++) + fprintf(stderr, "%s\n", msg[n]); + + ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE); +} +/* *INDENT-OFF* */ +VERSION_COMMON() +/* *INDENT-ON* */ + int -main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED) +main(int argc, char *argv[]) { + int ch; + + while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) { + switch (ch) { + case OPTS_VERSION: + show_version(argv); + ExitProgram(EXIT_SUCCESS); + default: + usage(ch == OPTS_USAGE); + /* NOTREACHED */ + } + } + if (optind < argc) + usage(FALSE); + + setlocale(LC_ALL, ""); initscr(); cbreak(); noecho();