mirror of
https://github.com/Aigor44/ncursesw-morphos.git
synced 2024-12-27 07:49:06 +08:00
89ca7974b0
+ amend fix for _nc_ripoffline from 20091031 to make test/ditto.c work in threaded configuration. + move _nc_tracebits, _tracedump and _tracemouse to curses.priv.h, since they are not part of the suggested ABI6.
535 lines
19 KiB
C
535 lines
19 KiB
C
/****************************************************************************
|
|
* Copyright (c) 1998-2014,2016 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 *
|
|
* "Software"), to deal in the Software without restriction, including *
|
|
* without limitation the rights to use, copy, modify, merge, publish, *
|
|
* distribute, distribute with modifications, sublicense, and/or sell *
|
|
* copies of the Software, and to permit persons to whom the Software is *
|
|
* furnished to do so, subject to the following conditions: *
|
|
* *
|
|
* The above copyright notice and this permission notice shall be included *
|
|
* in all copies or substantial portions of the Software. *
|
|
* *
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
|
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
|
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
|
|
* IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
|
|
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
|
|
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
|
|
* THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
|
* *
|
|
* Except as contained in this notice, the name(s) of the above copyright *
|
|
* holders shall not be used in advertising or otherwise to promote the *
|
|
* sale, use or other dealings in this Software without prior written *
|
|
* authorization. *
|
|
****************************************************************************/
|
|
|
|
/****************************************************************************
|
|
* Author: Juergen Pfeifer, 1996 *
|
|
****************************************************************************/
|
|
|
|
/*
|
|
Version Control
|
|
$Id: gen.c,v 1.70 2016/02/13 22:00:22 tom Exp $
|
|
--------------------------------------------------------------------------*/
|
|
/*
|
|
This program prints on its standard output the source for the
|
|
Terminal_Interface.Curses_Constants Ada package specification. This pure
|
|
package only exports C constants to the Ada compiler.
|
|
*/
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
#include <ncurses_cfg.h>
|
|
#else
|
|
#include <ncurses.h>
|
|
#endif
|
|
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
#include <menu.h>
|
|
#include <form.h>
|
|
|
|
#undef UCHAR
|
|
#undef UINT
|
|
|
|
typedef unsigned char UCHAR;
|
|
typedef unsigned int UINT;
|
|
|
|
/* These global variables will be set by main () */
|
|
static int little_endian;
|
|
static const char *my_program_invocation_name = NULL;
|
|
|
|
static void
|
|
my_error(const char *message)
|
|
{
|
|
fprintf(stderr, "%s: %s\n", my_program_invocation_name, message);
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
static void
|
|
print_constant(const char *name,
|
|
long value)
|
|
{
|
|
printf(" %-28s : constant := %ld;\n", name, value);
|
|
}
|
|
|
|
#define PRINT_NAMED_CONSTANT(name) \
|
|
print_constant (#name, name)
|
|
|
|
static void
|
|
print_comment(const char *message)
|
|
{
|
|
printf("\n -- %s\n\n", message);
|
|
}
|
|
|
|
/*
|
|
* Make sure that KEY_MIN and KEY_MAX are defined.
|
|
* main () will protest if KEY_MIN == 256
|
|
*/
|
|
#ifndef KEY_MAX
|
|
# define KEY_MAX 0777
|
|
#endif
|
|
#ifndef KEY_MIN
|
|
# define KEY_MIN 0401
|
|
#endif
|
|
|
|
static UCHAR
|
|
bit_is_set(const UCHAR * const data,
|
|
const UINT offset)
|
|
{
|
|
const UCHAR byte = data[offset >> 3];
|
|
UINT bit;
|
|
|
|
if (little_endian)
|
|
bit = offset; /* offset */
|
|
else /* or */
|
|
bit = ~offset; /* 7 - offset */
|
|
bit &= 7; /* modulo 8 */
|
|
return (UCHAR) (byte & (1 << bit));
|
|
}
|
|
|
|
/* Find lowest and highest used offset in a byte array. */
|
|
/* Returns 0 if and only if all bits are unset. */
|
|
static int
|
|
find_pos(const UCHAR * const data,
|
|
const UINT sizeof_data,
|
|
UINT * const low,
|
|
UINT * const high)
|
|
{
|
|
const UINT last = (sizeof_data << 3) - 1;
|
|
UINT offset;
|
|
|
|
for (offset = last; !bit_is_set(data, offset); offset--)
|
|
if (!offset) /* All bits are 0. */
|
|
return 0;
|
|
*high = offset;
|
|
|
|
for (offset = 0; !bit_is_set(data, offset); offset++)
|
|
{
|
|
}
|
|
*low = offset;
|
|
|
|
return -1;
|
|
}
|
|
|
|
#define PRINT_BITMASK(c_type, ada_name, mask_macro) \
|
|
{ \
|
|
UINT first, last; \
|
|
c_type mask = (mask_macro); \
|
|
if (!find_pos ((UCHAR *)&mask, sizeof (mask), &first, &last)) \
|
|
my_error ("failed to locate " ada_name); \
|
|
print_constant (ada_name "_First", first); \
|
|
print_constant (ada_name "_Last", last); \
|
|
}
|
|
|
|
#define PRINT_NAMED_BITMASK(c_type, mask_macro) \
|
|
PRINT_BITMASK (c_type, #mask_macro, mask_macro)
|
|
|
|
#define STRUCT_OFFSET(record, field) \
|
|
{ \
|
|
UINT first, last; \
|
|
record mask; \
|
|
memset (&mask, 0, sizeof (mask)); \
|
|
memset (&mask.field, 0xff, sizeof(mask.field)); \
|
|
if (!find_pos ((UCHAR *)&mask, sizeof (mask), &first, &last)) \
|
|
my_error ("failed to locate" #record "_" #field); \
|
|
print_constant (#record "_" #field "_First", first); \
|
|
print_constant (#record "_" #field "_Last", last); \
|
|
}
|
|
|
|
/*--------------------*/
|
|
/* Start of main (). */
|
|
/*--------------------*/
|
|
|
|
int
|
|
main(int argc, const char *argv[])
|
|
{
|
|
const int x = 0x12345678;
|
|
|
|
little_endian = (*((const char *)&x) == 0x78);
|
|
|
|
my_program_invocation_name = argv[0];
|
|
|
|
if (KEY_MIN == 256)
|
|
my_error("unexpected value for KEY_MIN: 256");
|
|
|
|
if (argc != 2)
|
|
my_error("Only one argument expected (DFT_ARG_SUFFIX)");
|
|
|
|
printf("-- Generated by the C program %s (source " __FILE__ ").\n",
|
|
my_program_invocation_name);
|
|
printf("-- Do not edit this file directly.\n");
|
|
printf("-- The values provided here may vary on your system.\n");
|
|
printf("\n");
|
|
printf("with System;\n");
|
|
printf("package Terminal_Interface.Curses_Constants is\n");
|
|
printf(" pragma Pure;\n");
|
|
printf("\n");
|
|
|
|
printf(" DFT_ARG_SUFFIX : constant String := \"%s\";\n", argv[1]);
|
|
printf(" Bit_Order : constant System.Bit_Order := System.%s_Order_First;\n",
|
|
little_endian ? "Low" : "High");
|
|
print_constant("Sizeof_Bool", 8 * sizeof(bool));
|
|
|
|
PRINT_NAMED_CONSTANT(OK);
|
|
PRINT_NAMED_CONSTANT(ERR);
|
|
printf(" pragma Warnings (Off); -- redefinition of Standard.True and False\n");
|
|
PRINT_NAMED_CONSTANT(TRUE);
|
|
PRINT_NAMED_CONSTANT(FALSE);
|
|
printf(" pragma Warnings (On);\n");
|
|
|
|
print_comment("Version of the ncurses library from extensions(3NCURSES)");
|
|
PRINT_NAMED_CONSTANT(NCURSES_VERSION_MAJOR);
|
|
PRINT_NAMED_CONSTANT(NCURSES_VERSION_MINOR);
|
|
printf(" Version : constant String := \"%d.%d\";\n",
|
|
NCURSES_VERSION_MAJOR, NCURSES_VERSION_MINOR);
|
|
|
|
print_comment("Character non-color attributes from attr(3NCURSES)");
|
|
printf(" -- attr_t and chtype may be signed in C.\n");
|
|
printf(" type attr_t is mod 2 ** %lu;\n", (long unsigned)(8 * sizeof(attr_t)));
|
|
PRINT_NAMED_BITMASK(attr_t, A_CHARTEXT);
|
|
PRINT_NAMED_BITMASK(attr_t, A_COLOR);
|
|
PRINT_BITMASK(attr_t, "Attr", A_ATTRIBUTES & ~A_COLOR);
|
|
PRINT_NAMED_BITMASK(attr_t, A_STANDOUT);
|
|
PRINT_NAMED_BITMASK(attr_t, A_UNDERLINE);
|
|
PRINT_NAMED_BITMASK(attr_t, A_REVERSE);
|
|
PRINT_NAMED_BITMASK(attr_t, A_BLINK);
|
|
PRINT_NAMED_BITMASK(attr_t, A_DIM);
|
|
PRINT_NAMED_BITMASK(attr_t, A_BOLD);
|
|
PRINT_NAMED_BITMASK(attr_t, A_PROTECT);
|
|
PRINT_NAMED_BITMASK(attr_t, A_INVIS);
|
|
PRINT_NAMED_BITMASK(attr_t, A_ALTCHARSET);
|
|
PRINT_NAMED_BITMASK(attr_t, A_HORIZONTAL);
|
|
PRINT_NAMED_BITMASK(attr_t, A_LEFT);
|
|
PRINT_NAMED_BITMASK(attr_t, A_LOW);
|
|
PRINT_NAMED_BITMASK(attr_t, A_RIGHT);
|
|
PRINT_NAMED_BITMASK(attr_t, A_TOP);
|
|
PRINT_NAMED_BITMASK(attr_t, A_VERTICAL);
|
|
print_constant("chtype_Size", 8 * sizeof(chtype));
|
|
|
|
print_comment("predefined color numbers from color(3NCURSES)");
|
|
PRINT_NAMED_CONSTANT(COLOR_BLACK);
|
|
PRINT_NAMED_CONSTANT(COLOR_RED);
|
|
PRINT_NAMED_CONSTANT(COLOR_GREEN);
|
|
PRINT_NAMED_CONSTANT(COLOR_YELLOW);
|
|
PRINT_NAMED_CONSTANT(COLOR_BLUE);
|
|
PRINT_NAMED_CONSTANT(COLOR_MAGENTA);
|
|
PRINT_NAMED_CONSTANT(COLOR_CYAN);
|
|
PRINT_NAMED_CONSTANT(COLOR_WHITE);
|
|
|
|
print_comment("ETI return codes from ncurses.h");
|
|
PRINT_NAMED_CONSTANT(E_OK);
|
|
PRINT_NAMED_CONSTANT(E_SYSTEM_ERROR);
|
|
PRINT_NAMED_CONSTANT(E_BAD_ARGUMENT);
|
|
PRINT_NAMED_CONSTANT(E_POSTED);
|
|
PRINT_NAMED_CONSTANT(E_CONNECTED);
|
|
PRINT_NAMED_CONSTANT(E_BAD_STATE);
|
|
PRINT_NAMED_CONSTANT(E_NO_ROOM);
|
|
PRINT_NAMED_CONSTANT(E_NOT_POSTED);
|
|
PRINT_NAMED_CONSTANT(E_UNKNOWN_COMMAND);
|
|
PRINT_NAMED_CONSTANT(E_NO_MATCH);
|
|
PRINT_NAMED_CONSTANT(E_NOT_SELECTABLE);
|
|
PRINT_NAMED_CONSTANT(E_NOT_CONNECTED);
|
|
PRINT_NAMED_CONSTANT(E_REQUEST_DENIED);
|
|
PRINT_NAMED_CONSTANT(E_INVALID_FIELD);
|
|
PRINT_NAMED_CONSTANT(E_CURRENT);
|
|
|
|
print_comment("Input key codes not defined in any ncurses manpage");
|
|
PRINT_NAMED_CONSTANT(KEY_MIN);
|
|
PRINT_NAMED_CONSTANT(KEY_MAX);
|
|
#ifdef KEY_CODE_YES
|
|
PRINT_NAMED_CONSTANT(KEY_CODE_YES);
|
|
#endif
|
|
|
|
print_comment("Input key codes from getch(3NCURSES)");
|
|
PRINT_NAMED_CONSTANT(KEY_BREAK);
|
|
PRINT_NAMED_CONSTANT(KEY_DOWN);
|
|
PRINT_NAMED_CONSTANT(KEY_UP);
|
|
PRINT_NAMED_CONSTANT(KEY_LEFT);
|
|
PRINT_NAMED_CONSTANT(KEY_RIGHT);
|
|
PRINT_NAMED_CONSTANT(KEY_HOME);
|
|
PRINT_NAMED_CONSTANT(KEY_BACKSPACE);
|
|
PRINT_NAMED_CONSTANT(KEY_F0);
|
|
print_constant("KEY_F1", KEY_F(1));
|
|
print_constant("KEY_F2", KEY_F(2));
|
|
print_constant("KEY_F3", KEY_F(3));
|
|
print_constant("KEY_F4", KEY_F(4));
|
|
print_constant("KEY_F5", KEY_F(5));
|
|
print_constant("KEY_F6", KEY_F(6));
|
|
print_constant("KEY_F7", KEY_F(7));
|
|
print_constant("KEY_F8", KEY_F(8));
|
|
print_constant("KEY_F9", KEY_F(9));
|
|
print_constant("KEY_F10", KEY_F(10));
|
|
print_constant("KEY_F11", KEY_F(11));
|
|
print_constant("KEY_F12", KEY_F(12));
|
|
print_constant("KEY_F13", KEY_F(13));
|
|
print_constant("KEY_F14", KEY_F(14));
|
|
print_constant("KEY_F15", KEY_F(15));
|
|
print_constant("KEY_F16", KEY_F(16));
|
|
print_constant("KEY_F17", KEY_F(17));
|
|
print_constant("KEY_F18", KEY_F(18));
|
|
print_constant("KEY_F19", KEY_F(19));
|
|
print_constant("KEY_F20", KEY_F(20));
|
|
print_constant("KEY_F21", KEY_F(21));
|
|
print_constant("KEY_F22", KEY_F(22));
|
|
print_constant("KEY_F23", KEY_F(23));
|
|
print_constant("KEY_F24", KEY_F(24));
|
|
PRINT_NAMED_CONSTANT(KEY_DL);
|
|
PRINT_NAMED_CONSTANT(KEY_IL);
|
|
PRINT_NAMED_CONSTANT(KEY_DC);
|
|
PRINT_NAMED_CONSTANT(KEY_IC);
|
|
PRINT_NAMED_CONSTANT(KEY_EIC);
|
|
PRINT_NAMED_CONSTANT(KEY_CLEAR);
|
|
PRINT_NAMED_CONSTANT(KEY_EOS);
|
|
PRINT_NAMED_CONSTANT(KEY_EOL);
|
|
PRINT_NAMED_CONSTANT(KEY_SF);
|
|
PRINT_NAMED_CONSTANT(KEY_SR);
|
|
PRINT_NAMED_CONSTANT(KEY_NPAGE);
|
|
PRINT_NAMED_CONSTANT(KEY_PPAGE);
|
|
PRINT_NAMED_CONSTANT(KEY_STAB);
|
|
PRINT_NAMED_CONSTANT(KEY_CTAB);
|
|
PRINT_NAMED_CONSTANT(KEY_CATAB);
|
|
PRINT_NAMED_CONSTANT(KEY_ENTER);
|
|
PRINT_NAMED_CONSTANT(KEY_SRESET);
|
|
PRINT_NAMED_CONSTANT(KEY_RESET);
|
|
PRINT_NAMED_CONSTANT(KEY_PRINT);
|
|
PRINT_NAMED_CONSTANT(KEY_LL);
|
|
PRINT_NAMED_CONSTANT(KEY_A1);
|
|
PRINT_NAMED_CONSTANT(KEY_A3);
|
|
PRINT_NAMED_CONSTANT(KEY_B2);
|
|
PRINT_NAMED_CONSTANT(KEY_C1);
|
|
PRINT_NAMED_CONSTANT(KEY_C3);
|
|
PRINT_NAMED_CONSTANT(KEY_BTAB);
|
|
PRINT_NAMED_CONSTANT(KEY_BEG);
|
|
PRINT_NAMED_CONSTANT(KEY_CANCEL);
|
|
PRINT_NAMED_CONSTANT(KEY_CLOSE);
|
|
PRINT_NAMED_CONSTANT(KEY_COMMAND);
|
|
PRINT_NAMED_CONSTANT(KEY_COPY);
|
|
PRINT_NAMED_CONSTANT(KEY_CREATE);
|
|
PRINT_NAMED_CONSTANT(KEY_END);
|
|
PRINT_NAMED_CONSTANT(KEY_EXIT);
|
|
PRINT_NAMED_CONSTANT(KEY_FIND);
|
|
PRINT_NAMED_CONSTANT(KEY_HELP);
|
|
PRINT_NAMED_CONSTANT(KEY_MARK);
|
|
PRINT_NAMED_CONSTANT(KEY_MESSAGE);
|
|
PRINT_NAMED_CONSTANT(KEY_MOVE);
|
|
PRINT_NAMED_CONSTANT(KEY_NEXT);
|
|
PRINT_NAMED_CONSTANT(KEY_OPEN);
|
|
PRINT_NAMED_CONSTANT(KEY_OPTIONS);
|
|
PRINT_NAMED_CONSTANT(KEY_PREVIOUS);
|
|
PRINT_NAMED_CONSTANT(KEY_REDO);
|
|
PRINT_NAMED_CONSTANT(KEY_REFERENCE);
|
|
PRINT_NAMED_CONSTANT(KEY_REFRESH);
|
|
PRINT_NAMED_CONSTANT(KEY_REPLACE);
|
|
PRINT_NAMED_CONSTANT(KEY_RESTART);
|
|
PRINT_NAMED_CONSTANT(KEY_RESUME);
|
|
PRINT_NAMED_CONSTANT(KEY_SAVE);
|
|
PRINT_NAMED_CONSTANT(KEY_SBEG);
|
|
PRINT_NAMED_CONSTANT(KEY_SCANCEL);
|
|
PRINT_NAMED_CONSTANT(KEY_SCOMMAND);
|
|
PRINT_NAMED_CONSTANT(KEY_SCOPY);
|
|
PRINT_NAMED_CONSTANT(KEY_SCREATE);
|
|
PRINT_NAMED_CONSTANT(KEY_SDC);
|
|
PRINT_NAMED_CONSTANT(KEY_SDL);
|
|
PRINT_NAMED_CONSTANT(KEY_SELECT);
|
|
PRINT_NAMED_CONSTANT(KEY_SEND);
|
|
PRINT_NAMED_CONSTANT(KEY_SEOL);
|
|
PRINT_NAMED_CONSTANT(KEY_SEXIT);
|
|
PRINT_NAMED_CONSTANT(KEY_SFIND);
|
|
PRINT_NAMED_CONSTANT(KEY_SHELP);
|
|
PRINT_NAMED_CONSTANT(KEY_SHOME);
|
|
PRINT_NAMED_CONSTANT(KEY_SIC);
|
|
PRINT_NAMED_CONSTANT(KEY_SLEFT);
|
|
PRINT_NAMED_CONSTANT(KEY_SMESSAGE);
|
|
PRINT_NAMED_CONSTANT(KEY_SMOVE);
|
|
PRINT_NAMED_CONSTANT(KEY_SNEXT);
|
|
PRINT_NAMED_CONSTANT(KEY_SOPTIONS);
|
|
PRINT_NAMED_CONSTANT(KEY_SPREVIOUS);
|
|
PRINT_NAMED_CONSTANT(KEY_SPRINT);
|
|
PRINT_NAMED_CONSTANT(KEY_SREDO);
|
|
PRINT_NAMED_CONSTANT(KEY_SREPLACE);
|
|
PRINT_NAMED_CONSTANT(KEY_SRIGHT);
|
|
PRINT_NAMED_CONSTANT(KEY_SRSUME);
|
|
PRINT_NAMED_CONSTANT(KEY_SSAVE);
|
|
PRINT_NAMED_CONSTANT(KEY_SSUSPEND);
|
|
PRINT_NAMED_CONSTANT(KEY_SUNDO);
|
|
PRINT_NAMED_CONSTANT(KEY_SUSPEND);
|
|
PRINT_NAMED_CONSTANT(KEY_UNDO);
|
|
PRINT_NAMED_CONSTANT(KEY_MOUSE);
|
|
PRINT_NAMED_CONSTANT(KEY_RESIZE);
|
|
|
|
print_comment("alternate character codes (ACS) from addch(3NCURSES)");
|
|
#define PRINT_ACS(name) print_constant (#name, &name - &acs_map[0])
|
|
PRINT_ACS(ACS_ULCORNER);
|
|
PRINT_ACS(ACS_LLCORNER);
|
|
PRINT_ACS(ACS_URCORNER);
|
|
PRINT_ACS(ACS_LRCORNER);
|
|
PRINT_ACS(ACS_LTEE);
|
|
PRINT_ACS(ACS_RTEE);
|
|
PRINT_ACS(ACS_BTEE);
|
|
PRINT_ACS(ACS_TTEE);
|
|
PRINT_ACS(ACS_HLINE);
|
|
PRINT_ACS(ACS_VLINE);
|
|
PRINT_ACS(ACS_PLUS);
|
|
PRINT_ACS(ACS_S1);
|
|
PRINT_ACS(ACS_S9);
|
|
PRINT_ACS(ACS_DIAMOND);
|
|
PRINT_ACS(ACS_CKBOARD);
|
|
PRINT_ACS(ACS_DEGREE);
|
|
PRINT_ACS(ACS_PLMINUS);
|
|
PRINT_ACS(ACS_BULLET);
|
|
PRINT_ACS(ACS_LARROW);
|
|
PRINT_ACS(ACS_RARROW);
|
|
PRINT_ACS(ACS_DARROW);
|
|
PRINT_ACS(ACS_UARROW);
|
|
PRINT_ACS(ACS_BOARD);
|
|
PRINT_ACS(ACS_LANTERN);
|
|
PRINT_ACS(ACS_BLOCK);
|
|
PRINT_ACS(ACS_S3);
|
|
PRINT_ACS(ACS_S7);
|
|
PRINT_ACS(ACS_LEQUAL);
|
|
PRINT_ACS(ACS_GEQUAL);
|
|
PRINT_ACS(ACS_PI);
|
|
PRINT_ACS(ACS_NEQUAL);
|
|
PRINT_ACS(ACS_STERLING);
|
|
|
|
print_comment("Menu_Options from opts(3MENU)");
|
|
PRINT_NAMED_BITMASK(Menu_Options, O_ONEVALUE);
|
|
PRINT_NAMED_BITMASK(Menu_Options, O_SHOWDESC);
|
|
PRINT_NAMED_BITMASK(Menu_Options, O_ROWMAJOR);
|
|
PRINT_NAMED_BITMASK(Menu_Options, O_IGNORECASE);
|
|
PRINT_NAMED_BITMASK(Menu_Options, O_SHOWMATCH);
|
|
PRINT_NAMED_BITMASK(Menu_Options, O_NONCYCLIC);
|
|
print_constant("Menu_Options_Size", 8 * sizeof(Menu_Options));
|
|
|
|
print_comment("Item_Options from menu_opts(3MENU)");
|
|
PRINT_NAMED_BITMASK(Item_Options, O_SELECTABLE);
|
|
print_constant("Item_Options_Size", 8 * sizeof(Item_Options));
|
|
|
|
print_comment("Field_Options from field_opts(3FORM)");
|
|
PRINT_NAMED_BITMASK(Field_Options, O_VISIBLE);
|
|
PRINT_NAMED_BITMASK(Field_Options, O_ACTIVE);
|
|
PRINT_NAMED_BITMASK(Field_Options, O_PUBLIC);
|
|
PRINT_NAMED_BITMASK(Field_Options, O_EDIT);
|
|
PRINT_NAMED_BITMASK(Field_Options, O_WRAP);
|
|
PRINT_NAMED_BITMASK(Field_Options, O_BLANK);
|
|
PRINT_NAMED_BITMASK(Field_Options, O_AUTOSKIP);
|
|
PRINT_NAMED_BITMASK(Field_Options, O_NULLOK);
|
|
PRINT_NAMED_BITMASK(Field_Options, O_PASSOK);
|
|
PRINT_NAMED_BITMASK(Field_Options, O_STATIC);
|
|
print_constant("Field_Options_Size", 8 * sizeof(Field_Options));
|
|
|
|
print_comment("Field_Options from opts(3FORM)");
|
|
PRINT_NAMED_BITMASK(Field_Options, O_NL_OVERLOAD);
|
|
PRINT_NAMED_BITMASK(Field_Options, O_BS_OVERLOAD);
|
|
/* Field_Options_Size is defined below */
|
|
|
|
print_comment("MEVENT structure from mouse(3NCURSES)");
|
|
STRUCT_OFFSET(MEVENT, id);
|
|
STRUCT_OFFSET(MEVENT, x);
|
|
STRUCT_OFFSET(MEVENT, y);
|
|
STRUCT_OFFSET(MEVENT, z);
|
|
STRUCT_OFFSET(MEVENT, bstate);
|
|
print_constant("MEVENT_Size", 8 * sizeof(MEVENT));
|
|
|
|
print_comment("mouse events from mouse(3NCURSES)");
|
|
{
|
|
mmask_t all_events;
|
|
|
|
#define PRINT_MOUSE_EVENT(event) \
|
|
print_constant (#event, event); \
|
|
all_events |= event
|
|
|
|
all_events = 0;
|
|
PRINT_MOUSE_EVENT(BUTTON1_RELEASED);
|
|
PRINT_MOUSE_EVENT(BUTTON1_PRESSED);
|
|
PRINT_MOUSE_EVENT(BUTTON1_CLICKED);
|
|
PRINT_MOUSE_EVENT(BUTTON1_DOUBLE_CLICKED);
|
|
PRINT_MOUSE_EVENT(BUTTON1_TRIPLE_CLICKED);
|
|
#ifdef BUTTON1_RESERVED_EVENT
|
|
PRINT_MOUSE_EVENT(BUTTON1_RESERVED_EVENT);
|
|
#endif
|
|
print_constant("all_events_button_1", (long)all_events);
|
|
|
|
all_events = 0;
|
|
PRINT_MOUSE_EVENT(BUTTON2_RELEASED);
|
|
PRINT_MOUSE_EVENT(BUTTON2_PRESSED);
|
|
PRINT_MOUSE_EVENT(BUTTON2_CLICKED);
|
|
PRINT_MOUSE_EVENT(BUTTON2_DOUBLE_CLICKED);
|
|
PRINT_MOUSE_EVENT(BUTTON2_TRIPLE_CLICKED);
|
|
#ifdef BUTTON2_RESERVED_EVENT
|
|
PRINT_MOUSE_EVENT(BUTTON2_RESERVED_EVENT);
|
|
#endif
|
|
print_constant("all_events_button_2", (long)all_events);
|
|
|
|
all_events = 0;
|
|
PRINT_MOUSE_EVENT(BUTTON3_RELEASED);
|
|
PRINT_MOUSE_EVENT(BUTTON3_PRESSED);
|
|
PRINT_MOUSE_EVENT(BUTTON3_CLICKED);
|
|
PRINT_MOUSE_EVENT(BUTTON3_DOUBLE_CLICKED);
|
|
PRINT_MOUSE_EVENT(BUTTON3_TRIPLE_CLICKED);
|
|
#ifdef BUTTON3_RESERVED_EVENT
|
|
PRINT_MOUSE_EVENT(BUTTON3_RESERVED_EVENT);
|
|
#endif
|
|
print_constant("all_events_button_3", (long)all_events);
|
|
|
|
all_events = 0;
|
|
PRINT_MOUSE_EVENT(BUTTON4_RELEASED);
|
|
PRINT_MOUSE_EVENT(BUTTON4_PRESSED);
|
|
PRINT_MOUSE_EVENT(BUTTON4_CLICKED);
|
|
PRINT_MOUSE_EVENT(BUTTON4_DOUBLE_CLICKED);
|
|
PRINT_MOUSE_EVENT(BUTTON4_TRIPLE_CLICKED);
|
|
#ifdef BUTTON4_RESERVED_EVENT
|
|
PRINT_MOUSE_EVENT(BUTTON4_RESERVED_EVENT);
|
|
#endif
|
|
print_constant("all_events_button_4", (long)all_events);
|
|
}
|
|
PRINT_NAMED_CONSTANT(BUTTON_CTRL);
|
|
PRINT_NAMED_CONSTANT(BUTTON_SHIFT);
|
|
PRINT_NAMED_CONSTANT(BUTTON_ALT);
|
|
PRINT_NAMED_CONSTANT(REPORT_MOUSE_POSITION);
|
|
PRINT_NAMED_CONSTANT(ALL_MOUSE_EVENTS);
|
|
|
|
print_comment("trace selection from trace(3NCURSES)");
|
|
PRINT_NAMED_BITMASK(UINT, TRACE_TIMES);
|
|
PRINT_NAMED_BITMASK(UINT, TRACE_TPUTS);
|
|
PRINT_NAMED_BITMASK(UINT, TRACE_UPDATE);
|
|
PRINT_NAMED_BITMASK(UINT, TRACE_MOVE);
|
|
PRINT_NAMED_BITMASK(UINT, TRACE_CHARPUT);
|
|
PRINT_NAMED_BITMASK(UINT, TRACE_CALLS);
|
|
PRINT_NAMED_BITMASK(UINT, TRACE_VIRTPUT);
|
|
PRINT_NAMED_BITMASK(UINT, TRACE_IEVENT);
|
|
PRINT_NAMED_BITMASK(UINT, TRACE_BITS);
|
|
PRINT_NAMED_BITMASK(UINT, TRACE_ICALLS);
|
|
PRINT_NAMED_BITMASK(UINT, TRACE_CCALLS);
|
|
PRINT_NAMED_BITMASK(UINT, TRACE_DATABASE);
|
|
PRINT_NAMED_BITMASK(UINT, TRACE_ATTRS);
|
|
print_constant("Trace_Size", 8 * sizeof(UINT));
|
|
|
|
printf("end Terminal_Interface.Curses_Constants;\n");
|
|
exit(EXIT_SUCCESS);
|
|
}
|