Enable xterm "metaSendsEscape" switch
This commit is contained in:
parent
c6dba0b4ac
commit
2ec425480a
|
@ -1,3 +1,6 @@
|
||||||
|
2017-04-11 Markus Gans <guru.mail@muenster.de>
|
||||||
|
* Enable xterm "metaSendsEscape" switch
|
||||||
|
|
||||||
2017-04-09 Markus Gans <guru.mail@muenster.de>
|
2017-04-09 Markus Gans <guru.mail@muenster.de>
|
||||||
* The Final Cut compiles now also under NetBSD
|
* The Final Cut compiles now also under NetBSD
|
||||||
* Rename preprocessor macro names with leading underscore
|
* Rename preprocessor macro names with leading underscore
|
||||||
|
|
|
@ -18877,7 +18877,6 @@ $as_echo X"$ac_prefix_conf_OUT" |
|
||||||
rm -f "$ac_prefix_conf_OUT"
|
rm -f "$ac_prefix_conf_OUT"
|
||||||
mv $tmp/pconfig.h "$ac_prefix_conf_OUT"
|
mv $tmp/pconfig.h "$ac_prefix_conf_OUT"
|
||||||
fi
|
fi
|
||||||
cp conftest.prefix _configs.sed
|
|
||||||
else
|
else
|
||||||
as_fn_error $? "input file $ac_prefix_conf_INP does not exist - skip generating $ac_prefix_conf_OUT" "$LINENO" 5
|
as_fn_error $? "input file $ac_prefix_conf_INP does not exist - skip generating $ac_prefix_conf_OUT" "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -8,18 +8,14 @@
|
||||||
#
|
#
|
||||||
# DESCRIPTION
|
# DESCRIPTION
|
||||||
#
|
#
|
||||||
# This is a new variant from ac_prefix_config_ this one will use a
|
# Generate an installable config.h.
|
||||||
# lowercase-prefix if the config-define was starting with a
|
|
||||||
# lowercase-char, e.g. "#define const", "#define restrict", or "#define
|
|
||||||
# off_t", (and this one can live in another directory, e.g.
|
|
||||||
# testpkg/config.h therefore I decided to move the output-header to be the
|
|
||||||
# first arg)
|
|
||||||
#
|
#
|
||||||
# takes the usual config.h generated header file; looks for each of the
|
# A package should not normally install its config.h as a system header,
|
||||||
# generated "#define SOMEDEF" lines, and prefixes the defined name (ie.
|
# but if it must, this macro can be used to avoid namespace pollution by
|
||||||
# makes it "#define PREFIX_SOMEDEF". The result is written to the output
|
# making a copy of config.h with a prefix added to all the macro names.
|
||||||
# config.header file. The PREFIX is converted to uppercase for the
|
#
|
||||||
# conversions.
|
# Each "#define SOMEDEF" line of the configuration header has the given
|
||||||
|
# prefix added, in the same case as the first character of the macro name.
|
||||||
#
|
#
|
||||||
# Defaults:
|
# Defaults:
|
||||||
#
|
#
|
||||||
|
@ -27,9 +23,7 @@
|
||||||
# PREFIX = $PACKAGE
|
# PREFIX = $PACKAGE
|
||||||
# ORIG-HEADER, from AM_CONFIG_HEADER(config.h)
|
# ORIG-HEADER, from AM_CONFIG_HEADER(config.h)
|
||||||
#
|
#
|
||||||
# Your configure.ac script should contain both macros in this order, and
|
# Your configure.ac script should contain both macros in this order.
|
||||||
# unlike the earlier variations of this prefix-macro it is okay to place
|
|
||||||
# the AX_PREFIX_CONFIG_H call before the AC_OUTPUT invokation.
|
|
||||||
#
|
#
|
||||||
# Example:
|
# Example:
|
||||||
#
|
#
|
||||||
|
@ -42,9 +36,10 @@
|
||||||
# AC_OUTPUT(Makefile) # creates the "config.h" now
|
# AC_OUTPUT(Makefile) # creates the "config.h" now
|
||||||
# # and also mylib/_config.h
|
# # and also mylib/_config.h
|
||||||
#
|
#
|
||||||
# if the argument to AX_PREFIX_CONFIG_H would have been omitted then the
|
# If the argument to AX_PREFIX_CONFIG_H would have been omitted then the
|
||||||
# default outputfile would have been called simply "testpkg-config.h", but
|
# default output file would have been called simply "testpkg-config.h",
|
||||||
# even under the name "mylib/_config.h" it contains prefix-defines like
|
# but even under the name "mylib/_config.h" it contains prefix-defines
|
||||||
|
# like
|
||||||
#
|
#
|
||||||
# #ifndef TESTPKG_VERSION
|
# #ifndef TESTPKG_VERSION
|
||||||
# #define TESTPKG_VERSION "0.1.1"
|
# #define TESTPKG_VERSION "0.1.1"
|
||||||
|
@ -56,11 +51,10 @@
|
||||||
# #define _testpkg_const _const
|
# #define _testpkg_const _const
|
||||||
# #endif
|
# #endif
|
||||||
#
|
#
|
||||||
# and this "mylib/_config.h" can be installed along with other
|
# and this "mylib/_config.h" can be installed along with other header
|
||||||
# header-files, which is most convenient when creating a shared library
|
# files, which is most convenient when creating a shared library (that has
|
||||||
# (that has some headers) where some functionality is dependent on the
|
# some headers) whose functionality depends on features detected at
|
||||||
# OS-features detected at compile-time. No need to invent some
|
# compile-time. No need to invent some "mylib-confdefs.h.in" manually.
|
||||||
# "mylib-confdefs.h.in" manually. :-)
|
|
||||||
#
|
#
|
||||||
# Note that some AC_DEFINEs that end up in the config.h file are actually
|
# Note that some AC_DEFINEs that end up in the config.h file are actually
|
||||||
# self-referential - e.g. AC_C_INLINE, AC_C_CONST, and the AC_TYPE_OFF_T
|
# self-referential - e.g. AC_C_INLINE, AC_C_CONST, and the AC_TYPE_OFF_T
|
||||||
|
@ -89,6 +83,7 @@
|
||||||
#
|
#
|
||||||
# LICENSE
|
# LICENSE
|
||||||
#
|
#
|
||||||
|
# Copyright (c) 2014 Reuben Thomas <rrt@sc3d.org>
|
||||||
# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
|
# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
|
||||||
# Copyright (c) 2008 Marten Svantesson
|
# Copyright (c) 2008 Marten Svantesson
|
||||||
# Copyright (c) 2008 Gerald Point <Gerald.Point@labri.fr>
|
# Copyright (c) 2008 Gerald Point <Gerald.Point@labri.fr>
|
||||||
|
@ -119,12 +114,12 @@
|
||||||
# modified version of the Autoconf Macro, you may extend this special
|
# modified version of the Autoconf Macro, you may extend this special
|
||||||
# exception to the GPL to apply to your modified version as well.
|
# exception to the GPL to apply to your modified version as well.
|
||||||
|
|
||||||
#serial 11
|
#serial 15
|
||||||
|
|
||||||
AC_DEFUN([AX_PREFIX_CONFIG_H],[dnl
|
AC_DEFUN([AX_PREFIX_CONFIG_H],[dnl
|
||||||
AC_PREREQ([2.62])
|
AC_PREREQ([2.62])
|
||||||
AC_BEFORE([AC_CONFIG_HEADERS],[$0])dnl
|
AC_BEFORE([AC_CONFIG_HEADERS],[$0])dnl
|
||||||
AC_CONFIG_COMMANDS([ifelse($1,,$PACKAGE-config.h,$1)],[dnl
|
AC_CONFIG_COMMANDS(m4_default([$1], [$PACKAGE-config.h]),[dnl
|
||||||
AS_VAR_PUSHDEF([_OUT],[ac_prefix_conf_OUT])dnl
|
AS_VAR_PUSHDEF([_OUT],[ac_prefix_conf_OUT])dnl
|
||||||
AS_VAR_PUSHDEF([_DEF],[ac_prefix_conf_DEF])dnl
|
AS_VAR_PUSHDEF([_DEF],[ac_prefix_conf_DEF])dnl
|
||||||
AS_VAR_PUSHDEF([_PKG],[ac_prefix_conf_PKG])dnl
|
AS_VAR_PUSHDEF([_PKG],[ac_prefix_conf_PKG])dnl
|
||||||
|
@ -133,12 +128,12 @@ AS_VAR_PUSHDEF([_UPP],[ac_prefix_conf_UPP])dnl
|
||||||
AS_VAR_PUSHDEF([_INP],[ac_prefix_conf_INP])dnl
|
AS_VAR_PUSHDEF([_INP],[ac_prefix_conf_INP])dnl
|
||||||
m4_pushdef([_script],[conftest.prefix])dnl
|
m4_pushdef([_script],[conftest.prefix])dnl
|
||||||
m4_pushdef([_symbol],[m4_cr_Letters[]m4_cr_digits[]_])dnl
|
m4_pushdef([_symbol],[m4_cr_Letters[]m4_cr_digits[]_])dnl
|
||||||
_OUT=`echo ifelse($1, , $PACKAGE-config.h, $1)`
|
_OUT=`echo m4_default([$1], [$PACKAGE-config.h])`
|
||||||
_DEF=`echo _$_OUT | sed -e "y:m4_cr_letters:m4_cr_LETTERS[]:" -e "s/@<:@^m4_cr_Letters@:>@/_/g"`
|
_DEF=`echo _$_OUT | sed -e "y:m4_cr_letters:m4_cr_LETTERS[]:" -e "s/@<:@^m4_cr_Letters@:>@/_/g"`
|
||||||
_PKG=`echo ifelse($2, , $PACKAGE, $2)`
|
_PKG=`echo m4_default([$2], [$PACKAGE])`
|
||||||
_LOW=`echo _$_PKG | sed -e "y:m4_cr_LETTERS-:m4_cr_letters[]_:"`
|
_LOW=`echo _$_PKG | sed -e "y:m4_cr_LETTERS-:m4_cr_letters[]_:"`
|
||||||
_UPP=`echo $_PKG | sed -e "y:m4_cr_letters-:m4_cr_LETTERS[]_:" -e "/^@<:@m4_cr_digits@:>@/s/^/_/"`
|
_UPP=`echo $_PKG | sed -e "y:m4_cr_letters-:m4_cr_LETTERS[]_:" -e "/^@<:@m4_cr_digits@:>@/s/^/_/"`
|
||||||
_INP=`echo "ifelse($3,,,$3)" | sed -e 's/ *//'`
|
_INP=`echo "$3" | sed -e 's/ *//'`
|
||||||
if test ".$_INP" = "."; then
|
if test ".$_INP" = "."; then
|
||||||
for ac_file in : $CONFIG_HEADERS; do test "_$ac_file" = _: && continue
|
for ac_file in : $CONFIG_HEADERS; do test "_$ac_file" = _: && continue
|
||||||
case "$ac_file" in
|
case "$ac_file" in
|
||||||
|
@ -192,7 +187,6 @@ else
|
||||||
rm -f "$_OUT"
|
rm -f "$_OUT"
|
||||||
mv $tmp/pconfig.h "$_OUT"
|
mv $tmp/pconfig.h "$_OUT"
|
||||||
fi
|
fi
|
||||||
cp _script _configs.sed
|
|
||||||
else
|
else
|
||||||
AC_MSG_ERROR([input file $_INP does not exist - skip generating $_OUT])
|
AC_MSG_ERROR([input file $_INP does not exist - skip generating $_OUT])
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -717,7 +717,7 @@ int FOptiMove::repeatedAppend (capability& o, int count, char* dst)
|
||||||
dst_len = ( dst != 0 ) ? std::strlen(dst) : 0;
|
dst_len = ( dst != 0 ) ? std::strlen(dst) : 0;
|
||||||
total = 0;
|
total = 0;
|
||||||
|
|
||||||
if ( (dst_len + uInt(count) * src_len) < sizeof(move_buf)-1 )
|
if ( (dst_len + uInt(count) * src_len) < sizeof(move_buf) - 1 )
|
||||||
{
|
{
|
||||||
total += count * o.duration;
|
total += count * o.duration;
|
||||||
|
|
||||||
|
@ -727,7 +727,7 @@ int FOptiMove::repeatedAppend (capability& o, int count, char* dst)
|
||||||
|
|
||||||
while ( count-- > 0 )
|
while ( count-- > 0 )
|
||||||
{
|
{
|
||||||
std::strcpy (dst, o.cap);
|
std::strncpy (dst, o.cap, src_len + 1);
|
||||||
dst += src_len;
|
dst += src_len;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -757,7 +757,9 @@ int FOptiMove::relativeMove ( char*& move
|
||||||
if ( F_row_address.cap )
|
if ( F_row_address.cap )
|
||||||
{
|
{
|
||||||
if ( move )
|
if ( move )
|
||||||
std::strcpy (move, tparm(F_row_address.cap, to_y, 0, 0, 0, 0, 0, 0, 0, 0));
|
std::strncpy ( move
|
||||||
|
, tparm(F_row_address.cap, to_y, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||||
|
, sizeof(move_buf) - 1 );
|
||||||
|
|
||||||
vtime = F_row_address.duration;
|
vtime = F_row_address.duration;
|
||||||
}
|
}
|
||||||
|
@ -769,7 +771,9 @@ int FOptiMove::relativeMove ( char*& move
|
||||||
if ( F_parm_down_cursor.cap && F_parm_down_cursor.duration < vtime )
|
if ( F_parm_down_cursor.cap && F_parm_down_cursor.duration < vtime )
|
||||||
{
|
{
|
||||||
if ( move )
|
if ( move )
|
||||||
std::strcpy (move, tparm(F_parm_down_cursor.cap, num, 0, 0, 0, 0, 0, 0, 0, 0));
|
std::strncpy ( move
|
||||||
|
, tparm(F_parm_down_cursor.cap, num, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||||
|
, sizeof(move_buf) - 1 );
|
||||||
|
|
||||||
vtime = F_parm_down_cursor.duration;
|
vtime = F_parm_down_cursor.duration;
|
||||||
}
|
}
|
||||||
|
@ -789,7 +793,9 @@ int FOptiMove::relativeMove ( char*& move
|
||||||
if ( F_parm_up_cursor.cap && F_parm_up_cursor.duration < vtime )
|
if ( F_parm_up_cursor.cap && F_parm_up_cursor.duration < vtime )
|
||||||
{
|
{
|
||||||
if ( move )
|
if ( move )
|
||||||
std::strcpy (move, tparm(F_parm_up_cursor.cap, num, 0, 0, 0, 0, 0, 0, 0, 0));
|
std::strncpy ( move
|
||||||
|
, tparm(F_parm_up_cursor.cap, num, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||||
|
, sizeof(move_buf) - 1 );
|
||||||
|
|
||||||
vtime = F_parm_up_cursor.duration;
|
vtime = F_parm_up_cursor.duration;
|
||||||
}
|
}
|
||||||
|
@ -865,7 +871,7 @@ int FOptiMove::relativeMove ( char*& move
|
||||||
|
|
||||||
if ( htime_r < htime )
|
if ( htime_r < htime )
|
||||||
{
|
{
|
||||||
std::strcpy (hmove, str);
|
std::strncpy (hmove, str, sizeof(move_buf) - 1);
|
||||||
htime = htime_r;
|
htime = htime_r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -915,7 +921,7 @@ int FOptiMove::relativeMove ( char*& move
|
||||||
|
|
||||||
if ( htime_l < htime )
|
if ( htime_l < htime )
|
||||||
{
|
{
|
||||||
std::strcpy (hmove, str);
|
std::strncpy (hmove, str, sizeof(move_buf) - 1);
|
||||||
htime = htime_l;
|
htime = htime_l;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -928,9 +934,9 @@ int FOptiMove::relativeMove ( char*& move
|
||||||
if ( move )
|
if ( move )
|
||||||
{
|
{
|
||||||
if ( *move )
|
if ( *move )
|
||||||
strcat (move, hmove);
|
std::strncat (move, hmove, sizeof(move_buf) - std::strlen(move) - 1);
|
||||||
else
|
else
|
||||||
std::strcpy (move, hmove);
|
std::strncpy (move, hmove, sizeof(move_buf) - 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2235,7 +2235,7 @@ inline void FString::_replace (const wchar_t* s)
|
||||||
<< e.what() << std::endl;
|
<< e.what() << std::endl;
|
||||||
return;
|
return;
|
||||||
}*/
|
}*/
|
||||||
std::wcscpy (string, s);
|
std::wcsncpy (string, s, bufsize);
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
@ -2257,7 +2257,7 @@ inline void FString::_insert (uInt pos, uInt len, const wchar_t* s)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::wcscpy (string, s);
|
std::wcsncpy (string, s, bufsize);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -55,6 +55,7 @@ bool FTerm::cygwin_terminal;
|
||||||
bool FTerm::mintty_terminal;
|
bool FTerm::mintty_terminal;
|
||||||
bool FTerm::linux_terminal;
|
bool FTerm::linux_terminal;
|
||||||
bool FTerm::netbsd_terminal;
|
bool FTerm::netbsd_terminal;
|
||||||
|
bool FTerm::openbsd_terminal;
|
||||||
bool FTerm::screen_terminal;
|
bool FTerm::screen_terminal;
|
||||||
bool FTerm::tmux_terminal;
|
bool FTerm::tmux_terminal;
|
||||||
bool FTerm::pc_charset_console;
|
bool FTerm::pc_charset_console;
|
||||||
|
@ -1747,6 +1748,20 @@ char* FTerm::changeAttribute ( char_data*& term_attr
|
||||||
return opti_attr->changeAttribute (term_attr, next_attr);
|
return opti_attr->changeAttribute (term_attr, next_attr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
void FTerm::xtermMetaSendsESC (bool on)
|
||||||
|
{
|
||||||
|
// activate/deactivate the xterm meta key sends escape prefix
|
||||||
|
|
||||||
|
if ( on )
|
||||||
|
putstring (CSI "?1036s" // save meta key sends escape
|
||||||
|
CSI "?1036h"); // enable meta key sends escape
|
||||||
|
else
|
||||||
|
putstring (CSI "?1036r"); // restore meta key sends escape
|
||||||
|
|
||||||
|
std::fflush(stdout);
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FTerm::xtermMouse (bool on)
|
void FTerm::xtermMouse (bool on)
|
||||||
{
|
{
|
||||||
|
@ -2637,7 +2652,13 @@ char* FTerm::parseSecDA (char*& current_termtype)
|
||||||
|
|
||||||
case 24: // DEC VT320
|
case 24: // DEC VT320
|
||||||
if ( terminal_id_version == 20 )
|
if ( terminal_id_version == 20 )
|
||||||
netbsd_terminal = true; // NetBSD workstation console
|
{
|
||||||
|
// NetBSD/OpenBSD workstation console
|
||||||
|
if ( std::strncmp(termtype, const_cast<char*>("wsvt25"), 6) == 0 )
|
||||||
|
netbsd_terminal = true;
|
||||||
|
else if ( std::strncmp(termtype, const_cast<char*>("vt220"), 5) == 0 )
|
||||||
|
openbsd_terminal = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 41: // DEC VT420
|
case 41: // DEC VT420
|
||||||
|
@ -3501,6 +3522,7 @@ void FTerm::init()
|
||||||
urxvt_terminal = \
|
urxvt_terminal = \
|
||||||
mlterm_terminal = \
|
mlterm_terminal = \
|
||||||
mintty_terminal = \
|
mintty_terminal = \
|
||||||
|
openbsd_terminal = \
|
||||||
screen_terminal = \
|
screen_terminal = \
|
||||||
tmux_terminal = \
|
tmux_terminal = \
|
||||||
xterm_default_colors = false;
|
xterm_default_colors = false;
|
||||||
|
@ -3727,6 +3749,10 @@ void FTerm::init()
|
||||||
enableXTermMouse();
|
enableXTermMouse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// activate meta key sends escape
|
||||||
|
if ( xterm_terminal )
|
||||||
|
xtermMetaSendsESC(true);
|
||||||
|
|
||||||
// enter 'keyboard_transmit' mode
|
// enter 'keyboard_transmit' mode
|
||||||
if ( tcap[fc::t_keypad_xmit].string )
|
if ( tcap[fc::t_keypad_xmit].string )
|
||||||
{
|
{
|
||||||
|
@ -3900,9 +3926,14 @@ void FTerm::finish()
|
||||||
|
|
||||||
resetBeep();
|
resetBeep();
|
||||||
|
|
||||||
|
// disable xterm mouse support
|
||||||
if ( mouse_support )
|
if ( mouse_support )
|
||||||
disableXTermMouse();
|
disableXTermMouse();
|
||||||
|
|
||||||
|
// deactivate meta key sends escape
|
||||||
|
if ( xterm_terminal )
|
||||||
|
xtermMetaSendsESC(false);
|
||||||
|
|
||||||
#ifdef F_HAVE_LIBGPM
|
#ifdef F_HAVE_LIBGPM
|
||||||
|
|
||||||
if ( gpm_mouse_enabled )
|
if ( gpm_mouse_enabled )
|
||||||
|
|
|
@ -289,6 +289,7 @@ class FTerm
|
||||||
, char_data*& );
|
, char_data*& );
|
||||||
static bool hasChangedTermSize();
|
static bool hasChangedTermSize();
|
||||||
static void changeTermSizeFinished();
|
static void changeTermSizeFinished();
|
||||||
|
static void xtermMetaSendsESC (bool);
|
||||||
static void xtermMouse (bool);
|
static void xtermMouse (bool);
|
||||||
static void enableXTermMouse();
|
static void enableXTermMouse();
|
||||||
static void disableXTermMouse();
|
static void disableXTermMouse();
|
||||||
|
@ -432,6 +433,7 @@ class FTerm
|
||||||
static bool mintty_terminal;
|
static bool mintty_terminal;
|
||||||
static bool linux_terminal;
|
static bool linux_terminal;
|
||||||
static bool netbsd_terminal;
|
static bool netbsd_terminal;
|
||||||
|
static bool openbsd_terminal;
|
||||||
static bool screen_terminal;
|
static bool screen_terminal;
|
||||||
static bool tmux_terminal;
|
static bool tmux_terminal;
|
||||||
static char termtype[30];
|
static char termtype[30];
|
||||||
|
|
Loading…
Reference in New Issue