-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: NEWS,v 1.1795 2011/09/26 23:48:17 tom Exp $
+-- $Id: NEWS,v 1.1798 2011/10/08 21:06:49 tom Exp $
-------------------------------------------------------------------------------
This is a log of changes that ncurses has gone through since Zeyd started
Changes through 1.9.9e did not credit all contributions;
it is not possible to add this information.
+20111008
+ + moved static data from db_iterator.c to lib_data.c
+ + modify db_iterator.c for memory-leak checking, fix one leak.
+ + modify misc/gen-pkgconfig.in to use Requires.private for the parts
+ of ncurses rather than Requires, as well as Libs.private for the
+ other library dependencies (prompted by Debian #644728).
+
20111001
+ modify tic "-K" option to only set the strict-flag rather than force
source-output. That allows the same flag to control the parser for
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: dist.mk,v 1.837 2011/09/25 12:41:00 tom Exp $
+# $Id: dist.mk,v 1.838 2011/10/08 15:25:29 tom Exp $
# Makefile for creating ncurses distributions.
#
# This only needs to be used directly as a makefile by developers, but
# These define the major/minor/patch versions of ncurses.
NCURSES_MAJOR = 5
NCURSES_MINOR = 9
-NCURSES_PATCH = 20111001
+NCURSES_PATCH = 20111008
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
* and: Thomas E. Dickey 1998-on *
****************************************************************************/
-/* $Id: term_entry.h,v 1.39 2011/06/26 09:31:32 tom Exp $ */
+/* $Id: term_entry.h,v 1.40 2011/10/08 21:00:41 tom Exp $ */
/*
* term_entry.h -- interface to entry-manipulation code
#include <term.h>
+/* db_iterator.c */
+typedef enum {
+ dbdTIC = 0,
+#if USE_DATABASE
+ dbdEnvOnce,
+ dbdHome,
+ dbdEnvList,
+ dbdCfgList,
+ dbdCfgOnce,
+#endif
+#if USE_TERMCAP
+ dbdEnvOnce2,
+ dbdEnvList2,
+ dbdCfgList2,
+#endif
+ dbdLAST
+} DBDIRS;
+
#define MAX_USES 32
#define MAX_CROSSLINKS 16
****************************************************************************/
/*
- * $Id: tic.h,v 1.66 2011/07/30 21:28:43 tom Exp $
+ * $Id: tic.h,v 1.67 2011/10/08 21:00:50 tom Exp $
* tic.h - Global variables and structures for the terminfo
* compiler.
*/
extern const char * _nc_progname;
/* db_iterator.c */
-typedef enum {
- dbdTIC = 0,
-#if USE_DATABASE
- dbdEnvOnce,
- dbdHome,
- dbdEnvList,
- dbdCfgList,
- dbdCfgOnce,
-#endif
-#if USE_TERMCAP
- dbdEnvOnce2,
- dbdEnvList2,
- dbdCfgList2,
-#endif
- dbdLAST
-} DBDIRS;
-
extern NCURSES_EXPORT(const char *) _nc_next_db(DBDIRS *, int *);
extern NCURSES_EXPORT(const char *) _nc_tic_dir (const char *);
extern NCURSES_EXPORT(void) _nc_first_db(DBDIRS *, int *);
#!@SHELL@
-# $Id: gen-pkgconfig.in,v 1.8 2010/02/06 22:12:07 Miroslav.Lichvar Exp $
+# $Id: gen-pkgconfig.in,v 1.10 2011/10/08 19:20:15 tom Exp $
##############################################################################
-# Copyright (c) 2009,2010 Free Software Foundation, Inc. #
+# Copyright (c) 2009-2010,2011 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 "Software"), #
# authorization. #
##############################################################################
#
-# Author: Thomas E. Dickey, 2009
+# Author: Thomas E. Dickey
#
# The complete configure script for ncurses is the ncurses5-config (or similar
# name, depending on the flavor, e.g., ncursesw5-config, ncurses6-config, etc).
SUB_LIBRARY_REQ=
fi
+if test "$includedir" = "/usr/include" ; then
+ CFLAGS=
+else
+ CFLAGS="-I\${includedir}"
+fi
+
+if test "$libdir" = "/usr/lib" ; then
+ LDFLAGS=
+else
+ LDFLAGS="-L\${libdir}"
+fi
+
for lib in ../lib/*
do
name=`basename $lib`
name=`echo "$name" | sed -e 's/^lib//' -e 's/\..*$//'`
desc="ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@"
+ reqs=
+
if test $name = $MAIN_LIBRARY ; then
- reqs=$SUB_LIBRARY_REQ
desc="$desc library"
elif test $name = $SUB_LIBRARY ; then
- reqs=
desc="$desc terminal interface library"
elif expr $name : ".*${CXX_NAME}.*" >/dev/null ; then
- reqs="$PANEL_LIBRARY $MENU_LIBRARY $FORM_LIBRARY $MAIN_LIBRARY $SUB_LIBRARY_REQ"
+ reqs="$PANEL_LIBRARY, $MENU_LIBRARY, $FORM_LIBRARY, $MAIN_LIBRARY"
desc="$desc add-on library"
else
- reqs="$MAIN_LIBRARY $SUB_LIBRARY_REQ"
+ reqs="$MAIN_LIBRARY"
desc="$desc add-on library"
fi
- if test "$includedir" = "/usr/include" ; then
- cflags=
- else
- cflags="-I\${includedir}"
- fi
-
- if test "$libdir" = "/usr/lib" ; then
- libs=
- else
- libs="-L\${libdir}"
- fi
- libs="$libs -l$name"
-
- # add dependencies that pkg-config cannot guess about
- if test -z "$reqs" ; then
- libs="$libs @LIBS@"
+ if test $name != $SUB_LIBRARY ; then
+ if test $name != $TINFO_NAME ; then
+ test -n "$reqs" && reqs="$reqs, "
+ reqs="${reqs}${SUB_LIBRARY}"
+ fi
fi
echo "** creating ${name}.pc"
cat >${name}.pc <<EOF
+# vile:makemode
+
prefix=$show_prefix
exec_prefix=$show_exec_prefix
libdir=$show_libdir
Name: $name
Description: $desc
Version: \${version}
-Requires: $reqs
-Libs: $libs
-Cflags: $cflags
+URL: http://invisible-island.net/ncurses
+Requires.private: $reqs
+Libs: $LDFLAGS -l$name
+Libs.private: @LIBS@
+Cflags: $CFLAGS
EOF
- # pr -f ${name}.pc
+
+ #pr -f ${name}.pc
done
# vile:shmode
****************************************************************************/
/*
- * $Id: curses.priv.h,v 1.483 2011/09/17 19:08:20 tom Exp $
+ * $Id: curses.priv.h,v 1.485 2011/10/08 21:00:56 tom Exp $
*
* curses.priv.h
*
#define INIT_TERM_DRIVER() /* nothing */
#endif
+typedef struct {
+ const char *name;
+ char *value;
+} ITERATOR_VARS;
+
/*
* Global data which is not specific to a screen.
*/
int tgetent_index;
long tgetent_sequence;
+ char *dbd_blob; /* string-heap for dbd_list[] */
+ char **dbd_list; /* distinct places to look for data */
+ int dbd_size; /* length of dbd_list[] */
+ time_t dbd_time; /* cache last updated */
+ ITERATOR_VARS dbd_vars[dbdLAST];
+
#ifndef USE_SP_WINDOWLIST
WINDOWLIST *_nc_windowlist;
#define WindowList(sp) _nc_globals._nc_windowlist
extern NCURSES_EXPORT(void) _nc_codes_leaks(void);
extern NCURSES_EXPORT(void) _nc_comp_captab_leaks(void);
extern NCURSES_EXPORT(void) _nc_comp_scan_leaks(void);
+extern NCURSES_EXPORT(void) _nc_db_iterator_leaks(void);
extern NCURSES_EXPORT(void) _nc_keyname_leaks(void);
extern NCURSES_EXPORT(void) _nc_names_leaks(void);
extern NCURSES_EXPORT(void) _nc_tgetent_leaks(void);
#include <hashed_db.h>
#endif
-MODULE_ID("$Id: db_iterator.c,v 1.18 2011/09/26 09:52:00 tom Exp $")
+MODULE_ID("$Id: db_iterator.c,v 1.20 2011/10/08 20:55:38 tom Exp $")
#define HaveTicDirectory _nc_globals.have_tic_directory
#define KeepTicDirectory _nc_globals.keep_tic_directory
#define TicDirectory _nc_globals.tic_directory
-
-/*
- * FIXME: need a no-leaks entrypoint.
- */
-static char *my_blob; /* string-heap for my_list[] */
-static char **my_list; /* distinct places to look for data */
-static int my_size; /* length of my_list[] */
-static time_t my_time; /* cache last updated */
-static struct {
- const char *name;
- char *value;
-} my_vars[dbdLAST];
+#define my_blob _nc_globals.dbd_blob
+#define my_list _nc_globals.dbd_list
+#define my_size _nc_globals.dbd_size
+#define my_time _nc_globals.dbd_time
+#define my_vars _nc_globals.dbd_vars
static void
add_to_blob(const char *text)
} else {
FreeAndNull(my_blob);
}
+ free(my_stat);
}
}
}
+
+#if NO_LEAKS
+void
+_nc_db_iterator_leaks(void)
+{
+ if (my_blob != 0)
+ FreeAndNull(my_blob);
+ if (my_list != 0)
+ FreeAndNull(my_list);
+}
+#endif
#include <tic.h>
-MODULE_ID("$Id: entries.c,v 1.17 2010/01/23 17:57:43 tom Exp $")
+MODULE_ID("$Id: entries.c,v 1.18 2011/10/08 20:32:26 tom Exp $")
/****************************************************************************
*
_nc_free_entries(_nc_head);
_nc_get_type(0);
_nc_first_name(0);
+ _nc_db_iterator_leaks();
_nc_keyname_leaks();
#if BROKEN_LINKER || USE_REENTRANT
_nc_names_leaks();
/****************************************************************************
- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2010,2011 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 *
#include <curses.priv.h>
-MODULE_ID("$Id: lib_data.c,v 1.62 2011/09/26 09:48:08 tom Exp $")
+MODULE_ID("$Id: lib_data.c,v 1.63 2011/10/08 21:03:29 tom Exp $")
/*
* OS/2's native linker complains if we don't initialize public data when
0, /* tgetent_index */
0, /* tgetent_sequence */
+ 0, /* dbd_blob */
+ 0, /* dbd_list */
+ 0, /* dbd_size */
+ 0, /* dbd_time */
+ { { 0, 0 } }, /* dbd_vars */
+
#ifndef USE_SP_WINDOWLIST
0, /* _nc_windowlist */
#endif
/****************************************************************************
- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2010,2011 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 *
#include <build.priv.h>
+#include <term_entry.h>
#include <tic.h>
#include <hashsize.h>
#include <ctype.h>
-MODULE_ID("$Id: make_hash.c,v 1.3 2010/05/22 18:02:50 tom Exp $")
+MODULE_ID("$Id: make_hash.c,v 1.4 2011/10/08 21:11:54 tom Exp $")
/*
* _nc_make_hash_table()