]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - man/define_key.3x
ncurses 6.5 - patch 20240525
[ncurses.git] / man / define_key.3x
index 216a3cbce4b6a22c9af127a6765aa2a2650a4e5d..6937d620363ea9aac6f0461ace9c83b64c39ca5b 100644 (file)
@@ -1,5 +1,6 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              *
+.\" 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  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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 1997
 .\"
 .\"
 .\" Author: Thomas E. Dickey 1997
 .\"
-.\" $Id: define_key.3x,v 1.12 2006/02/25 21:49:19 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
 .SH NAME
-\fBdefine_key\fP \- define a keycode
+\fB\%define_key\fP \-
+define a \fIcurses\fP function key code
 .SH SYNOPSIS
 .SH SYNOPSIS
-\fB#include <curses.h>\fP
-.sp
-\fBint define_key(const char *definition, int keycode);\fP
+.nf
+\fB#include <curses.h>
+.PP
+\fBint define_key(const char * \fIdefinition\fP, int \fIkey-code\fP);
+.fi
 .SH DESCRIPTION
 .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
 .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
 .SH RETURN VALUE
-The keycode must be greater than zero, else ERR 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
 .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
 .SH SEE ALSO
-\fBkeyok\fR(3X),
-\fBkey_defined\fR(3X).
-.SH AUTHOR
-Thomas Dickey.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
+\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)