]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - man/define_key.3x
ncurses 6.5 - patch 20240608
[ncurses.git] / man / define_key.3x
index 48e7b61a414980c0e995b8b29243ab4a2308dfff..1e450207d7886f26d6d4a483a77d92f5e92b3dba 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright 2018-2022,2023 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.39 2023/11/25 14:26:30 tom Exp $
-.TH define_key 3X 2023-11-25 "ncurses 6.4" "Library calls"
+.\" $Id: define_key.3x,v 1.48 2024/06/08 23:25:11 tom Exp $
+.TH define_key 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.
+.de bP
+.ie n  .IP \(bu 4
+.el    .IP \(bu 2
+..
+.
 .SH NAME
 \fB\%define_key\fP \-
-define a \fIcurses\fR keycode
+define a \fIcurses\fP function key code
 .SH SYNOPSIS
 .nf
 \fB#include <curses.h>
 .PP
-\fBint define_key(const char *\fIdefinition\fP, int \fIkeycode\fP);
+\fBint define_key(const char * \fIdefinition\fP, int \fIkey-code\fP);
 .fi
 .SH DESCRIPTION
-This is an extension to the \fIcurses\fP library.
-It permits an application to define keycodes with their corresponding control
-strings, so that the \fIncurses\fP 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 \fIdefinition\fP is \fBNULL\fP,
-any existing one 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
-Either \fIkeycode\fP must be greater than zero,
-or \fIdefinition\fP must be non-\fBNULL\fP,
-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 \fIncurses\fP.
-They were not supported on
-Version 7, BSD or System V implementations.
-It is recommended that
-any code depending on them be conditioned using \fB\%NCURSES_VERSION\fP.
+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
+\fB\%curses\fP(3X),
+\fB\%keybound\fP(3X),
 \fB\%keyok\fP(3X),
-\fB\%key_defined\fP(3X)
+\fB\%key_defined\fP(3X),
+\fB\%terminfo\fP(5)