]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - test/demo_tabs.c
ncurses 6.4 - patch 20240420
[ncurses.git] / test / demo_tabs.c
index 68023a328205940287d36801156344aa12f8ae2e..16c1ad57cfd8d5ee624c95bf9b25f30008d7ea7e 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2019 Free Software Foundation, Inc.                        *
+ * Copyright 2019-2020,2022 Thomas E. Dickey                                *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 /*
  * Author: Thomas E. Dickey
  *
- * $Id: demo_tabs.c,v 1.2 2019/02/17 01:01:11 tom Exp $
+ * $Id: demo_tabs.c,v 1.10 2022/12/04 00:40:11 tom Exp $
  *
  * A simple demo of tabs in curses.
  */
-#include "test.priv.h"
+#define USE_CURSES
+#define USE_TINFO
+#include <test.priv.h>
 
 static void
-usage(void)
+usage(int ok)
 {
     static const char *msg[] =
     {
-       "Usage: demo_tabs [options]",
-       "",
-       "Print a grid to test tab-stops with the curses interface",
-       "",
-       "Options:",
-       " -l COUNT total number of lines to show",
-       " -t NUM   set TABSIZE variable to the given value",
+       "Usage: demo_tabs [options]"
+       ,""
+       ,"Print a grid to test tab-stops with the curses interface"
+       ,""
+       ,USAGE_COMMON
+       ,"Options:"
+       ," -l COUNT total number of lines to show"
+       ," -t NUM   set TABSIZE variable to the given value"
     };
     unsigned n;
     for (n = 0; n < SIZEOF(msg); ++n) {
        fprintf(stderr, "%s\n", msg[n]);
     }
-    ExitProgram(EXIT_FAILURE);
+    ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
 }
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
 
 int
 main(int argc, char *argv[])
 {
     int tabstop;
-    int n, col, row, step;
+    int ch, col, row, step;
     int line_limit = -1;
     int curses_stops = -1;
 
-    while ((n = getopt(argc, argv, "l:t:")) != -1) {
-       switch (n) {
+    while ((ch = getopt(argc, argv, OPTS_COMMON "l:t:")) != -1) {
+       switch (ch) {
        case 'l':
            line_limit = atoi(optarg);
            break;
        case 't':
            curses_stops = atoi(optarg);
            break;
+       case OPTS_VERSION:
+           show_version(argv);
+           ExitProgram(EXIT_SUCCESS);
        default:
-           usage();
-           break;
+           usage(ch == OPTS_USAGE);
+           /* NOTREACHED */
        }
     }
 
@@ -82,17 +91,19 @@ main(int argc, char *argv[])
     cbreak();
     if (curses_stops > 0)
        set_tabsize(curses_stops);
+#if HAVE_TIGETNUM
     tabstop = tigetnum("it");
     if (tabstop <= 0)
+#endif
        tabstop = 8;
     for (row = 0; row < LINES; ++row) {
        move(row, 0);
        for (col = step = 0; col < COLS - 1; ++col) {
            if (row == 0) {
-               chtype ch = '-';
+               chtype ct = '-';
                if ((col % tabstop) == 0)
-                   ch = '+';
-               addch(ch);
+                   ct = '+';
+               addch(ct);
            } else if (col + 1 < row) {
                addch('*');
            } else {