.\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc. *
+.\" Copyright 2018-2022,2023 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 *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" Author: Thomas E. Dickey <dickey@clark.net> 1997
+.\" Author: Thomas E. Dickey 1997
.\"
-.\" $Id: define_key.3x,v 1.4 1998/02/11 12:13:48 tom Exp $
-.TH define_key 3X ""
-.
+.\" $Id: define_key.3x,v 1.34 2023/09/23 23:04:14 tom Exp $
+.TH define_key 3X 2023-09-23 "ncurses 6.4" "Library calls"
.SH NAME
-\fBdefine_key\fP \- define a keycode
-.
+\fB\%define_key\fP \-
+define a \fIcurses\fR keycode
.SH SYNOPSIS
\fB#include <curses.h>\fP
-
-\fBint define_key(char *definition, int keycode);\fP
-.
+.PP
+\fBint define_key(const char *\fIdefinition\fB, int \fIkeycode\fB);\fR
.SH DESCRIPTION
-This is an extension to the curses library.
+This is an extension to the \fIcurses\fP 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
+strings, so that the \fIncurses\fP library will interpret them just as it would
the predefined codes in the terminfo database.
.PP
-If the given string is null, any existing definition for the keycode is
-removed.
-.
+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.
.SH RETURN VALUE
-The keycode must be greater than zero, else ERR is returned.
-.
+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.
.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.
-.
+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.
.SH SEE ALSO
-\fBkeyok\fR(3X).
-.
+\fB\%keyok\fP(3X),
+\fB\%key_defined\fP(3X)
.SH AUTHOR
-Thomas Dickey.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
+Thomas Dickey