Merge commit 'origin/mc-4.6'

This commit is contained in:
Enrico Weigelt, metux IT service 2009-02-04 00:30:57 +01:00
commit be982505cc
3 changed files with 5 additions and 101 deletions

View File

@ -1,5 +1,8 @@
2009-02-01 Enrico Weigelt, metux ITS <weigelt@metux.de>
* acinclude.m4: removed MC_SLANG_PRIVATE macro
* src/slint.c: removed HAVE_SLANG_PRIVATE conditional and
replaced SLang_getkey2(), SLang_input_pending2()
* src/util.c: fixed name_trunc() on NULL or empty parameters
* src/achown.c: fixed unitialized var in init_chown_advanced()
(patch from andrew_b)

View File

@ -298,44 +298,6 @@ AC_DEFUN([MC_USE_TERMCAP], [
])
dnl
dnl Check if private functions are available for linking
dnl
AC_DEFUN([MC_SLANG_PRIVATE], [
AC_CACHE_CHECK([if S-Lang exports private functions],
[mc_cv_slang_private], [
ac_save_LIBS="$LIBS"
LIBS="$LIBS -lslang"
AC_TRY_LINK([
#ifdef HAVE_SLANG_SLANG_H
#include <slang/slang.h>
#else
#include <slang.h>
#endif
#if SLANG_VERSION >= 10000
extern unsigned int SLsys_getkey (void);
#else
extern unsigned int _SLsys_getkey (void);
#endif
], [
#if SLANG_VERSION >= 10000
_SLsys_getkey ();
#else
SLsys_getkey ();
#endif
],
[mc_cv_slang_private=yes],
[mc_cv_slang_private=no])
LIBS="$ac_save_LIBS"
])
if test x$mc_cv_slang_private = xyes; then
AC_DEFINE(HAVE_SLANG_PRIVATE, 1,
[Define if private S-Lang functions are available])
fi
])
dnl
dnl Check if the installed S-Lang library uses termcap
dnl
@ -411,7 +373,6 @@ it's not fully supported yet])
if test x$with_screen = xslang; then
AC_DEFINE(HAVE_SYSTEM_SLANG, 1,
[Define to use S-Lang library installed on the system])
MC_SLANG_PRIVATE
screen_type=slang
screen_msg="S-Lang library (installed on the system)"
else

View File

@ -77,66 +77,6 @@ static int no_slang_delay;
/* Forward declarations */
static void load_terminfo_keys (void);
#ifndef HAVE_SLANG_PRIVATE
/* Private interfaces have been stripped, so we cannot use them */
#define SLang_getkey2() SLang_getkey()
#define SLang_input_pending2(s) SLang_input_pending(s)
#else
/* Copied from ../slang/slgetkey.c, removed the DEC_8Bit_HACK. */
extern unsigned char SLang_Input_Buffer [];
#if SLANG_VERSION >= 10000
extern unsigned int _SLsys_getkey (void);
extern int _SLsys_input_pending (int);
#else
extern unsigned int SLsys_getkey (void);
extern int SLsys_input_pending (int);
#endif
static unsigned int SLang_getkey2 (void)
{
unsigned int imax;
unsigned int ch;
if (SLang_Input_Buffer_Len)
{
ch = (unsigned int) *SLang_Input_Buffer;
SLang_Input_Buffer_Len--;
imax = SLang_Input_Buffer_Len;
memmove ((char *) SLang_Input_Buffer,
(char *) (SLang_Input_Buffer + 1), imax);
return(ch);
}
#if SLANG_VERSION >= 10000
else return(_SLsys_getkey ());
#else
else return(SLsys_getkey());
#endif
}
static int SLang_input_pending2 (int tsecs)
{
int n, i;
unsigned char c;
if (SLang_Input_Buffer_Len) return (int) SLang_Input_Buffer_Len;
#if SLANG_VERSION >= 10000
n = _SLsys_input_pending (tsecs);
#else
n = SLsys_input_pending (tsecs);
#endif
if (n <= 0) return 0;
i = SLang_getkey2 ();
if (i == SLANG_GETKEY_ERROR)
return 0; /* don't put crippled error codes into the input buffer */
c = (unsigned char)i;
SLang_ungetkey_string (&c, 1);
return n;
}
#endif /* HAVE_SLANG_PRIVATE */
/* Only done the first time */
void
slang_init (void)
@ -465,10 +405,10 @@ getch (void)
{
int c;
if (no_slang_delay)
if (SLang_input_pending2 (0) == 0)
if (SLang_input_pending (0) == 0)
return -1;
c = SLang_getkey2 ();
c = SLang_getkey ();
if (c == SLANG_GETKEY_ERROR) {
fprintf (stderr,
"SLang_getkey returned SLANG_GETKEY_ERROR\n"