]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - man/define_key.3x
ncurses 6.5 - patch 20240525
[ncurses.git] / man / define_key.3x
index 1476bb7661d06a7a92ef8e064964ad073a58044c..6937d620363ea9aac6f0461ace9c83b64c39ca5b 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright 2018-2021,2022 Thomas E. Dickey                                *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey                                *
 .\" Copyright 1998-2010,2017 Free Software Foundation, Inc.                  *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\"
 .\" Author: Thomas E. Dickey 1997
 .\"
-.\" $Id: define_key.3x,v 1.21 2022/02/12 20:03:40 tom Exp $
-.TH define_key 3X ""
+.\" $Id: define_key.3x,v 1.46 2024/05/25 20:15:04 tom Exp $
+.TH define_key 3X 2024-05-25 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.
+.de bP
+.ie n  .IP \(bu 4
+.el    .IP \(bu 2
+..
+.
 .SH NAME
-\fBdefine_key\fP \- define a keycode
+\fB\%define_key\fP \-
+define a \fIcurses\fP function key code
 .SH SYNOPSIS
-\fB#include <curses.h>\fP
-.sp
-\fBint define_key(const char *\fIdefinition\fB, int \fIkeycode\fB);\fR
+.nf
+\fB#include <curses.h>
+.PP
+\fBint define_key(const char * \fIdefinition\fP, int \fIkey-code\fP);
+.fi
 .SH DESCRIPTION
-This is an extension to the curses library.
-It permits an application to define keycodes with their corresponding control
-strings, so that the ncurses library will interpret them just as it would
-the predefined codes in the terminfo database.
+The
+.B \%define_key
+.I \%ncurses
+extension permits a
+.I curses
+application to
+.I bind
+a string
+.I definition
+to the function key
+.I key-code
+returned by \fB\%wgetch\fP(3X)
+(wide-character API users:
+\fB\%wget_wch\fP(3X))
+when \fB\%keypad\fP(3X) is enabled in a window and a function key is
+pressed.
+.I \%ncurses
+interprets such a binding as it does those in the
+.I \%term\%info
+database entry for the terminal type.
 .PP
-If the given string is null, any existing definition for the keycode is
-removed.
-Similarly, if the given keycode is negative or zero, any existing string
-for the given definition is removed.
+A
+.I definition
+of
+.B NULL
+removes any existing binding from
+.IR key-code "."
+Similarly,
+a non-positive
+.I key-code
+removes an existing binding for
+.IR definition ","
+if any.
 .SH RETURN VALUE
-The keycode must be greater than zero, and the string non-null,
-otherwise \fBERR\fP is returned.
-\fBERR\fP may also be returned if there is insufficient memory to allocate the
-data to store the definition.
-If no error is detected, \fBOK\fP is returned.
+.B \%define_key
+returns
+.B ERR
+if
+.bP
+.I definition
+is
+.B NULL
+and
+.I key-code
+is nonpositive,
+or
+.bP
+insufficient memory is available to bind
+.I definition
+to
+.IR key-code "."
+.PP
+Otherwise,
+.B \%define_key
+returns
+.BR OK "."
+.SH EXTENSIONS
+.B \%define_key
+is an
+.I \%ncurses
+extension.
 .SH PORTABILITY
-These routines are specific to ncurses.
-They were not supported on
-Version 7, BSD or System V implementations.
-It is recommended that
-any code depending on them be conditioned using NCURSES_VERSION.
+Applications employing
+.I \%ncurses
+extensions should condition their use on the visibility of the
+.B \%NCURSES_VERSION
+preprocessor macro.
+.PP
+NetBSD
+.I curses
+since 2.0 (2004) supports
+.BR \%define_key "."
+.SH AUTHORS
+Thomas Dickey
 .SH SEE ALSO
-\fBkeyok\fP(3X),
-\fBkey_defined\fP(3X).
-.SH AUTHOR
-Thomas Dickey.
+\fB\%ncurses\fP(3X),
+\fB\%keyok\fP(3X),
+\fB\%key_defined\fP(3X),
+\fB\%keybound\fP(3X),
+\fB\%keyok\fP(3X),
+\fB\%terminfo\fP(5)