X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=man%2Fdefine_key.3x;h=d0dbe7fccaa9e4904074a0bb1a0839f37135ab5b;hb=HEAD;hp=216a3cbce4b6a22c9af127a6765aa2a2650a4e5d;hpb=027ae42953e3186daed8f3882da73de48291b606;p=ncurses.git diff --git a/man/define_key.3x b/man/define_key.3x index 216a3cbc..6937d620 100644 --- a/man/define_key.3x +++ b/man/define_key.3x @@ -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 * @@ -28,38 +29,102 @@ .\" .\" 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 -\fBdefine_key\fP \- define a keycode +\fB\%define_key\fP \- +define a \fIcurses\fP function key code .SH SYNOPSIS -\fB#include \fP -.sp -\fBint define_key(const char *definition, int keycode);\fP +.nf +\fB#include +.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, 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 -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\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)