#
# Author: Juergen Pfeifer, 1996
#
-# $Id: Makefile.in,v 1.53 2007/02/04 00:42:40 tom Exp $
+# $Id: Makefile.in,v 1.54 2007/03/31 21:53:14 tom Exp $
#
.SUFFIXES:
GEN_FILES0 = Base_Defs
-GEN_FILES1 = Key_Definitions \
- Old_Keys \
- Character_Attribute_Set_Rep \
+GEN_FILES1 = ACS_Map \
AC_Rep \
+ Base_Defs \
+ Character_Attribute_Set_Rep \
Color_Defs \
- ACS_Map \
+ Key_Definitions \
Linker_Options \
- Base_Defs \
- Window_Offsets \
+ Old_Keys \
+ Public_Variables \
+ Trace_Defs \
Version_Info \
- Trace_Defs
+ Window_Offsets
GEN_FILES2 = Menu_Opt_Rep \
Menu_Base_Defs \
Eti_Defs
GEN_TARGETS = $(ADA_SRCDIR)/$(ABASE).ads \
+ $(ADA_SRCDIR)/$(ABASE).adb \
$(ADA_SRCDIR)/$(ABASE)-aux.ads \
$(ADA_SRCDIR)/$(ABASE)-trace.ads \
$(ADA_SRCDIR)/$(ABASE)-menus.ads \
$(ADA_SRCDIR)/$(ABASE)-panels-user_data.ads
GEN_SRC = $(srcdir)/$(ABASE).ads.m4 \
+ $(srcdir)/$(ABASE).adb.m4 \
$(srcdir)/$(ABASE)-aux.ads.m4 \
$(srcdir)/$(ABASE)-trace.ads.m4 \
$(srcdir)/$(ABASE)-menus.ads.m4 \
gen.o: $(srcdir)/gen.c
$(HOST_CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/gen.c
-
+################################################################################
Character_Attribute_Set_Rep: gen$x
$(GENERATE) B A >$@
Color_Defs: gen$x
$(GENERATE) B C >$@
+Window_Offsets: gen$x
+ $(GENERATE) B D >$@
+
Key_Definitions: gen$x
$(GENERATE) B K >$@
-Old_Keys: gen$x
- $(GENERATE) B O >$@
+Linker_Options: gen$x
+ $(GENERATE) B L >$@
ACS_Map: gen$x
$(GENERATE) B M >$@
+Old_Keys: gen$x
+ $(GENERATE) B O >$@
+
+Public_Variables: gen$x
+ $(GENERATE) B P >$@
+
AC_Rep: gen$x
$(GENERATE) B R >$@
-Linker_Options: gen$x
- $(GENERATE) B L >$@
-
Version_Info: gen$x
$(GENERATE) B V >$@
-Window_Offsets: gen$x
- $(GENERATE) B D >$@
-
Trace_Defs: gen$x
$(GENERATE) B T >$@
-
+################################################################################
Menu_Opt_Rep: gen$x
$(GENERATE) M R >$@
Item_Rep: gen$x
$(GENERATE) M I >$@
-
+################################################################################
Form_Opt_Rep: gen$x
$(GENERATE) F R >$@
Field_Rep: gen$x
$(GENERATE) F I >$@
-
+################################################################################
Mouse_Base_Defs: gen$x
$(GENERATE) P B >$@
Eti_Defs: gen$x
$(GENERATE) E E >$@
-
+################################################################################
$(ADA_SRCDIR)/$(ABASE).ads: $(srcdir)/$(ABASE).ads.m4 \
$(GEN_FILES1) $(srcdir)/normal.m4
$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
$(srcdir)/$(ABASE).ads.m4 |\
$(DEL_ADAMODE) >$@
+$(ADA_SRCDIR)/$(ABASE).adb: $(srcdir)/$(ABASE).adb.m4 \
+ $(GEN_FILES1) $(srcdir)/normal.m4
+ $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
+ $(srcdir)/$(ABASE).adb.m4 |\
+ $(DEL_ADAMODE) >$@
+
$(ADA_SRCDIR)/$(ABASE)-aux.ads: $(srcdir)/$(ABASE)-aux.ads.m4 \
$(GEN_FILES5) $(srcdir)/normal.m4
$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
/****************************************************************************
- * Copyright (c) 1998,2004,2005 Free Software Foundation, Inc. *
+ * Copyright (c) 1998,2005,2007 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 *
/*
Version Control
- $Id: gen.c,v 1.40 2005/01/22 17:03:48 tom Exp $
+ $Id: gen.c,v 1.46 2007/03/31 23:39:15 tom Exp $
--------------------------------------------------------------------------*/
/*
This program generates various record structures and constants from the
to produce the real source.
*/
+#include <ncurses_cfg.h>
+
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
static void
gen_acs(void)
{
+ printf(" type C_ACS_Map is array (Character'Val (0) .. Character'Val (127))\n");
+ printf(" of Attributed_Character;\n");
+#if USE_REENTRANT
+ printf(" function ACS_Map return C_ACS_Map;\n");
+ printf(" pragma Import (C, ACS_Map, \"_nc_acs_map\");\n");
+#else
+ printf(" ACS_Map : C_ACS_Map;\n");
+ printf(" pragma Import (C, ACS_Map, \"acs_map\");\n");
+#endif
+ printf(" --\n");
+ printf(" --\n");
+ printf(" -- Constants for several characters from the Alternate Character Set\n");
+ printf(" -- You must use these constants as indices into the ACS_Map array\n");
+ printf(" -- to get the corresponding attributed character at runtime.\n");
+ printf(" --\n");
+
#ifdef ACS_ULCORNER
acs_def("ACS_Upper_Left_Corner", &ACS_ULCORNER);
#endif
printf(" %-25s : constant Event_Mask := 8#%011lo#;\n", \
#name, name)
-static
-void
+static void
gen_mouse_events(void)
{
mmask_t all1 = 0;
GEN_EVENT(BUTTON4_EVENTS, all4);
}
+static void
+wrap_one_var(const char *c_var,
+ const char *c_type,
+ const char *ada_func,
+ const char *ada_type)
+{
+#if USE_REENTRANT
+ /* must wrap variables */
+ printf("\n");
+ printf(" function %s return %s\n", ada_func, ada_type);
+ printf(" is\n");
+ printf(" function Result return %s;\n", c_type);
+ printf(" pragma Import (C, Result, \"_nc_%s\");\n", c_var);
+ printf(" begin\n");
+ if (strcmp(c_type, ada_type))
+ printf(" return %s (Result);\n", ada_type);
+ else
+ printf(" return Result;\n");
+ printf(" end %s;\n", ada_func);
+#else
+ /* global variables are really global */
+ printf("\n");
+ printf(" function %s return %s\n", ada_func, ada_type);
+ printf(" is\n");
+ printf(" Result : %s;\n", c_type);
+ printf(" pragma Import (C, Result, \"%s\");\n", c_var);
+ printf(" begin\n");
+ if (strcmp(c_type, ada_type))
+ printf(" return %s (Result);\n", ada_type);
+ else
+ printf(" return Result;\n");
+ printf(" end %s;\n", ada_func);
+#endif
+}
+
+#define GEN_PUBLIC_VAR(c_var, c_type, ada_func, ada_type) \
+ wrap_one_var(#c_var, #c_type, #ada_func, #ada_type)
+
+static void
+gen_public_vars(void)
+{
+ GEN_PUBLIC_VAR(stdscr, Window, Standard_Window, Window);
+ GEN_PUBLIC_VAR(curscr, Window, Current_Window, Window);
+ GEN_PUBLIC_VAR(LINES, C_Int, Lines, Line_Count);
+ GEN_PUBLIC_VAR(COLS, C_Int, Columns, Column_Count);
+ GEN_PUBLIC_VAR(TABSIZE, C_Int, Tab_Size, Natural);
+ GEN_PUBLIC_VAR(COLORS, C_Int, Number_Of_Colors, Natural);
+ GEN_PUBLIC_VAR(COLOR_PAIRS, C_Int, Number_Of_Color_Pairs, Natural);
+}
+
/*
* Output some comment lines indicating that the file is generated.
* The name parameter is the name of the facility to be used in
return strlen(buf);
}
-#define GEN_OFFSET(member,itype) \
- if (sizeof(((WINDOW*)0)->member)==sizeof(itype)) { \
- o = offsetof(WINDOW, member); \
- if ((o%sizeof(itype) == 0)) { \
- printf(" Offset%-*s : constant Natural := %2ld; -- %s\n", \
- 12, #member, (long)(o/sizeof(itype)),#itype); \
- } \
- }
-
static void
gen_offsets(void)
{
- long o;
const char *s_bool = "";
- GEN_OFFSET(_maxy, short);
- GEN_OFFSET(_maxx, short);
- GEN_OFFSET(_begy, short);
- GEN_OFFSET(_begx, short);
- GEN_OFFSET(_cury, short);
- GEN_OFFSET(_curx, short);
- GEN_OFFSET(_yoffset, short);
- GEN_OFFSET(_pary, int);
- GEN_OFFSET(_parx, int);
if (sizeof(bool) == sizeof(char))
{
- GEN_OFFSET(_notimeout, char);
- GEN_OFFSET(_clear, char);
- GEN_OFFSET(_leaveok, char);
- GEN_OFFSET(_scroll, char);
- GEN_OFFSET(_idlok, char);
- GEN_OFFSET(_idcok, char);
- GEN_OFFSET(_immed, char);
- GEN_OFFSET(_sync, char);
- GEN_OFFSET(_use_keypad, char);
-
s_bool = "char";
}
else if (sizeof(bool) == sizeof(short))
{
- GEN_OFFSET(_notimeout, short);
- GEN_OFFSET(_clear, short);
- GEN_OFFSET(_leaveok, short);
- GEN_OFFSET(_scroll, short);
- GEN_OFFSET(_idlok, short);
- GEN_OFFSET(_idcok, short);
- GEN_OFFSET(_immed, short);
- GEN_OFFSET(_sync, short);
- GEN_OFFSET(_use_keypad, short);
-
s_bool = "short";
}
else if (sizeof(bool) == sizeof(int))
{
- GEN_OFFSET(_notimeout, int);
- GEN_OFFSET(_clear, int);
- GEN_OFFSET(_leaveok, int);
- GEN_OFFSET(_scroll, int);
- GEN_OFFSET(_idlok, int);
- GEN_OFFSET(_idcok, int);
- GEN_OFFSET(_immed, int);
- GEN_OFFSET(_sync, int);
- GEN_OFFSET(_use_keypad, int);
-
s_bool = "int";
}
printf(" Sizeof%-*s : constant Natural := %2ld; -- %s\n",
case 'A': /* chtype translation into Ada95 record type */
gen_attr_set("Character_Attribute_Set");
break;
- case 'K': /* translation of keycodes */
- gen_keydefs(0);
- break;
case 'B': /* write some initial comment lines */
basedefs();
break;
case 'E': /* generate Mouse Event codes */
gen_mouse_events();
break;
- case 'M': /* generate constants for the ACS characters */
- gen_acs();
+ case 'K': /* translation of keycodes */
+ gen_keydefs(0);
break;
case 'L': /* generate the Linker_Options pragma */
gen_linkopts();
break;
+ case 'M': /* generate constants for the ACS characters */
+ gen_acs();
+ break;
case 'O': /* generate definitions of the old key code names */
gen_keydefs(1);
break;
+ case 'P': /* generate definitions of the public variables */
+ gen_public_vars();
+ break;
case 'R': /* generate representation clause for Attributed character */
gen_chtype_rep("Attributed_Character");
break;
- case 'V': /* generate version info */
- gen_version_info();
- break;
case 'T': /* generate the Trace info */
gen_trace("Trace_Attribute_Set");
break;
+ case 'V': /* generate version info */
+ gen_version_info();
+ break;
default:
break;
}
-------------------------------------------------------------------------------
+-- -*- ada -*-
+define(`HTMLNAME',`terminal_interface-curses__adb.htm')dnl
+include(M4MACRO)------------------------------------------------------------------------------
-- --
-- GNAT ncurses Binding --
-- --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control:
--- $Revision: 1.35 $
--- $Date: 2007/03/24 23:03:56 $
+-- $Revision: 1.2 $
+-- $Date: 2007/03/31 23:02:22 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with System;
with Terminal_Interface.Curses.Aux;
with Interfaces.C; use Interfaces.C;
with Interfaces.C.Strings; use Interfaces.C.Strings;
-with Interfaces.C.Pointers;
with Ada.Characters.Handling; use Ada.Characters.Handling;
with Ada.Strings.Fixed;
-with Ada.Unchecked_Conversion;
package body Terminal_Interface.Curses is
of aliased Attributed_Character;
pragma Convention (C, chtype_array);
-------------------------------------------------------------------------------
- generic
- type Element is (<>);
- function W_Get_Element (Win : in Window;
- Offset : in Natural) return Element;
-
- function W_Get_Element (Win : in Window;
- Offset : in Natural) return Element is
- type E_Array is array (Natural range <>) of aliased Element;
- package C_E_Array is new
- Interfaces.C.Pointers (Natural, Element, E_Array, Element'Val (0));
- use C_E_Array;
-
- function To_Pointer is new
- Ada.Unchecked_Conversion (Window, Pointer);
-
- P : Pointer := To_Pointer (Win);
- begin
- if Win = Null_Window then
- raise Curses_Exception;
- else
- P := P + ptrdiff_t (Offset);
- return P.all;
- end if;
- end W_Get_Element;
-
- function W_Get_Int is new W_Get_Element (C_Int);
- function W_Get_Short is new W_Get_Element (C_Short);
- function W_Get_Byte is new W_Get_Element (Interfaces.C.unsigned_char);
-
- function Get_Flag (Win : Window;
- Offset : Natural) return Boolean;
-
- function Get_Flag (Win : Window;
- Offset : Natural) return Boolean
- is
- Res : C_Int;
- begin
- case Sizeof_bool is
- when 1 => Res := C_Int (W_Get_Byte (Win, Offset));
- when 2 => Res := C_Int (W_Get_Short (Win, Offset));
- when 4 => Res := C_Int (W_Get_Int (Win, Offset));
- when others => raise Curses_Exception;
- end case;
-
- case Res is
- when 0 => return False;
- when others => return True;
- end case;
- end Get_Flag;
-
------------------------------------------------------------------------------
function Key_Name (Key : in Real_Key_Code) return String
is
function Get_KeyPad_Mode (Win : in Window := Standard_Window)
return Boolean
is
+ function Is_Keypad (W : Window) return Curses_Bool;
+ pragma Import (C, Is_Keypad, "is_keypad");
begin
- return Get_Flag (Win, Offset_use_keypad);
+ return (Is_Keypad (Win) /= Curses_Bool_False);
end Get_KeyPad_Mode;
procedure Half_Delay (Amount : in Half_Delay_Amount)
function Scrolling_Allowed (Win : Window := Standard_Window)
return Boolean
is
+ function Is_Scroll_Ok (W : Window) return Curses_Bool;
+ pragma Import (C, Is_Scroll_Ok, "is_scrollok");
begin
- return Get_Flag (Win, Offset_scroll);
+ return (Is_Scroll_Ok (Win) /= Curses_Bool_False);
end Scrolling_Allowed;
procedure Set_Scroll_Region
end if;
end Nap_Milli_Seconds;
------------------------------------------------------------------------------
-
- function Standard_Window return Window
- is
- Stdscr : Window;
- pragma Import (C, Stdscr, "stdscr");
- begin
- return Stdscr;
- end Standard_Window;
-
- function Lines return Line_Count
- is
- C_Lines : C_Int;
- pragma Import (C, C_Lines, "LINES");
- begin
- return Line_Count (C_Lines);
- end Lines;
-
- function Columns return Column_Count
- is
- C_Columns : C_Int;
- pragma Import (C, C_Columns, "COLS");
- begin
- return Column_Count (C_Columns);
- end Columns;
-
- function Tab_Size return Natural
- is
- C_Tab_Size : C_Int;
- pragma Import (C, C_Tab_Size, "TABSIZE");
- begin
- return Natural (C_Tab_Size);
- end Tab_Size;
-
- function Number_Of_Colors return Natural
- is
- C_Number_Of_Colors : C_Int;
- pragma Import (C, C_Number_Of_Colors, "COLORS");
- begin
- return Natural (C_Number_Of_Colors);
- end Number_Of_Colors;
-
- function Number_Of_Color_Pairs return Natural
- is
- C_Number_Of_Color_Pairs : C_Int;
- pragma Import (C, C_Number_Of_Color_Pairs, "COLOR_PAIRS");
- begin
- return Natural (C_Number_Of_Color_Pairs);
- end Number_Of_Color_Pairs;
+include(`Public_Variables')
------------------------------------------------------------------------------
procedure Transform_Coordinates
(W : in Window := Standard_Window;
-- S P E C --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. --
+-- Copyright (c) 1998-2006,2007 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control:
--- $Revision: 1.37 $
--- $Date: 2006/06/25 14:30:22 $
+-- $Revision: 1.39 $
+-- $Date: 2007/03/31 23:36:32 $
-- Binding Version 01.00
------------------------------------------------------------------------------
include(`Base_Defs')
function Number_Of_Color_Pairs return Natural;
pragma Inline (Number_Of_Color_Pairs);
- ACS_Map : array (Character'Val (0) .. Character'Val (127)) of
- Attributed_Character;
- pragma Import (C, ACS_Map, "acs_map");
- --
- --
- -- Constants for several characters from the Alternate Character Set
- -- You must use this constants as indices into the ACS_Map array
- -- to get the corresponding attributed character at runtime.
- --
include(`ACS_Map')dnl
-- MANPAGE(`curs_initscr.3x')
- -- | Not implemented: newterm, set_term, delscreen, curscr
+ -- | Not implemented: newterm, set_term, delscreen
-- ANCHOR(`stdscr',`Standard_Window')
function Standard_Window return Window;
-- AKA
pragma Inline (Standard_Window);
+ -- ANCHOR(`curscr',`Current_Window')
+ function Current_Window return Window;
+ -- AKA
+ pragma Inline (Current_Window);
+
-- ANCHOR(`initscr()',`Init_Screen')
procedure Init_Screen;
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 2000-2004,2006 Free Software Foundation, Inc. --
+-- Copyright (c) 2000-2006,2007 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 --
------------------------------------------------------------------------------
-- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
-- Version Control
--- $Revision: 1.6 $
--- $Date: 2006/06/25 14:24:40 $
+-- $Revision: 1.7 $
+-- $Date: 2007/03/31 23:45:22 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with ncurses2.util; use ncurses2.util;
result : out Boolean) is
ch : constant Key_Code := Getchar;
nc : constant Color_Number := Color_Number (Number_Of_Colors);
- curscr : Window;
- pragma Import (C, curscr, "curscr");
- -- curscr is not implemented in the Ada binding
begin
result := True;
if Ada.Characters.Handling.Is_Digit (Character'Val (ch)) then
skip := ctoi (Code_To_Char (ch));
elsif ch = CTRL ('L') then
Touch;
- Touch (curscr);
+ Touch (Current_Window);
Refresh;
elsif Has_Colors then
case ch is
./Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4
./Ada95/gen/terminal_interface-curses-panels.ads.m4
./Ada95/gen/terminal_interface-curses-trace.ads.m4
+./Ada95/gen/terminal_interface-curses.adb.m4
./Ada95/gen/terminal_interface-curses.ads.m4
./Ada95/samples/Makefile.in
./Ada95/samples/README
./Ada95/src/terminal_interface-curses-text_io.adb
./Ada95/src/terminal_interface-curses-text_io.ads
./Ada95/src/terminal_interface-curses-trace.adb_p
-./Ada95/src/terminal_interface-curses.adb
./Ada95/src/terminal_interface.ads
./INSTALL
./MANIFEST
./mk-1st.awk
./mk-2nd.awk
./mk-hdr.awk
-./mkinstalldirs
+./mkdirs.sh
./ncurses/Makefile.in
./ncurses/README
./ncurses/README.IZ
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: NEWS,v 1.1106 2007/03/24 22:58:37 tom Exp $
+-- $Id: NEWS,v 1.1109 2007/04/01 00:30:22 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.
+20070331
+ + modify Ada95 binding to build with --enable-reentrant by wrapping
+ global variables (bug: acs_map does not yet work).
+ + modify Ada95 binding to use the new access-functions, allowing it
+ to build/run when NCURSES_OPAQUE is set.
+ + add access-functions and macros to return properties of the WINDOW
+ structure, e.g., when NCURSES_OPAQUE is set.
+ + improved install-sh's quoting.
+ + use mkdirs.sh rather than mkinstalldirs, e.g., to use fixes from
+ other programs.
+
20070324
+ eliminate part of the direct use of WINDOW data from Ada95 interface.
+ fix substitutions for termlib filename to make configure option
--enable-reentrant work with --with-termlib.
+ change a constructor for NCursesWindow to allow compiling with
- NCURSES_OPAQUE defined, since we cannot pass a reference to
+ NCURSES_OPAQUE set, since we cannot pass a reference to
an opaque pointer.
20070317
dnl
dnl Author: Thomas E. Dickey 1995-on
dnl
-dnl $Id: aclocal.m4,v 1.427 2007/03/24 22:29:27 tom Exp $
+dnl $Id: aclocal.m4,v 1.428 2007/03/31 15:53:01 tom Exp $
dnl Macros used in NCURSES auto-configuration script.
dnl
dnl These macros are maintained separately from NCURSES. The copyright on
AC_MSG_RESULT($MANPAGE_TBL)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_MAN_PAGES version: 34 updated: 2007/03/17 16:15:10
+dnl CF_MAN_PAGES version: 35 updated: 2007/03/31 11:47:29
dnl ------------
dnl Try to determine if the man-pages on the system are compressed, and if
dnl so, what format is used. Use this information to construct a script that
NCURSES_OSPEED="$NCURSES_OSPEED"
TERMINFO="$TERMINFO"
-MKDIRS="sh `cd $srcdir && pwd`/mkinstalldirs"
+MKDIRS="sh `cd $srcdir && pwd`/mkdirs.sh"
INSTALL="$INSTALL"
INSTALL_DATA="$INSTALL_DATA"
fi
])
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_LIBTOOL version: 15 updated: 2007/03/17 16:15:10
+dnl CF_WITH_LIBTOOL version: 16 updated: 2007/03/25 18:05:48
dnl ---------------
dnl Provide a configure option to incorporate libtool. Define several useful
dnl symbols for the makefile rules.
fi
])dnl
LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` -o'
- LIB_OBJECT='${OBJECTS}.o=.lo)'
+ LIB_OBJECT='${OBJECTS:.o=.lo}'
LIB_SUFFIX=.la
LIB_CLEAN='${LIBTOOL} --mode=clean'
LIB_COMPILE='${LIBTOOL} --mode=compile'
-# $Id: Makefile.in,v 1.80 2007/03/17 18:28:05 tom Exp $
+# $Id: Makefile.in,v 1.81 2007/03/31 15:46:42 tom Exp $
##############################################################################
# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
# #
sh $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@
$(DESTDIR)$(libdir) :
- sh $(srcdir)/../mkinstalldirs $@
+ sh $(srcdir)/../mkdirs.sh $@
install \
install.libs:: ../lib/$(LIBNAME) $(DESTDIR)$(libdir)
{ (exit 1); exit 1; }; }
fi
LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` -o'
- LIB_OBJECT='${OBJECTS}.o=.lo)'
+ LIB_OBJECT='${OBJECTS:.o=.lo}'
LIB_SUFFIX=.la
LIB_CLEAN='${LIBTOOL} --mode=clean'
LIB_COMPILE='${LIBTOOL} --mode=compile'
NCURSES_OSPEED="$NCURSES_OSPEED"
TERMINFO="$TERMINFO"
-MKDIRS="sh `cd $srcdir && pwd`/mkinstalldirs"
+MKDIRS="sh `cd $srcdir && pwd`/mkdirs.sh"
INSTALL="$INSTALL"
INSTALL_DATA="$INSTALL_DATA"
##############################################################################
-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2006,2007 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"), #
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: dist.mk,v 1.585 2007/03/24 15:38:05 tom Exp $
+# $Id: dist.mk,v 1.587 2007/04/01 00:32:37 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 = 6
-NCURSES_PATCH = 20070324
+NCURSES_PATCH = 20070331
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
-# $Id: Makefile.in,v 1.44 2007/03/03 20:51:25 tom Exp $
+# $Id: Makefile.in,v 1.45 2007/03/31 15:46:42 tom Exp $
##############################################################################
# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
# #
$(DESTDIR)$(bindir) \
$(DESTDIR)$(libdir) :
- sh $(srcdir)/../mkinstalldirs $@
+ sh $(srcdir)/../mkdirs.sh $@
# make copies to simplify include-paths while still keeping form's include
# file in this directory.
* and: Thomas E. Dickey 1996-on *
****************************************************************************/
-/* $Id: curses.h.in,v 1.170 2007/03/10 18:15:33 tom Exp $ */
+/* $Id: curses.h.in,v 1.172 2007/03/31 20:46:06 tom Exp $ */
#ifndef __NCURSES_H
#define __NCURSES_H
#include <stddef.h> /* we want wchar_t */
#endif /* _XOPEN_SOURCE_EXTENDED */
-/* XSI and SVr4 specify that curses implements 'bool'. However, C++ may also
+/* X/Open and SVr4 specify that curses implements 'bool'. However, C++ may also
* implement it. If so, we must use the C++ compiler's type to avoid conflict
* with other interfaces.
*
#endif
/*
- * XSI attributes. In the ncurses implementation, they are identical to the
+ * X/Open attributes. In the ncurses implementation, they are identical to the
* A_ attributes.
*/
#define WA_ATTRIBUTES A_ATTRIBUTES
};
#endif /* NCURSES_OPAQUE */
-/*
- * These functions are extensions - not in XSI Curses.
- */
-#if @NCURSES_EXT_FUNCS@
-extern NCURSES_EXPORT(bool) is_term_resized (int, int);
-extern NCURSES_EXPORT(char *) keybound (int, int);
-extern NCURSES_EXPORT(const char *) curses_version (void);
-extern NCURSES_EXPORT(int) assume_default_colors (int, int);
-extern NCURSES_EXPORT(int) define_key (const char *, int);
-extern NCURSES_EXPORT(int) key_defined (const char *);
-extern NCURSES_EXPORT(int) keyok (int, bool);
-extern NCURSES_EXPORT(int) resize_term (int, int);
-extern NCURSES_EXPORT(int) resizeterm (int, int);
-extern NCURSES_EXPORT(int) use_default_colors (void);
-extern NCURSES_EXPORT(int) use_extended_names (bool);
-extern NCURSES_EXPORT(int) use_legacy_coding (int);
-extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int);
-extern NCURSES_EXPORT(void) nofilter(void);
-#else
-#define curses_version() NCURSES_VERSION
-#endif
-
/*
* This is an extension to support events...
*/
#endif
/*
- * Function prototypes. This is the complete XSI Curses list of required
+ * Function prototypes. This is the complete X/Open Curses list of required
* functions. Those marked `generated' will have sources generated from the
* macro definitions later in this file, in order to satisfy XPG4.2
* requirements.
extern NCURSES_EXPORT(int) getpary (const WINDOW *); /* generated */
/*
- * vid_attr() was implemented originally based on a draft of XSI curses.
+ * vid_attr() was implemented originally based on a draft of X/Open curses.
*/
#ifndef _XOPEN_SOURCE_EXTENDED
#define vid_attr(a,pair,opts) vidattr(a)
#endif
+/*
+ * These functions are extensions - not in X/Open Curses.
+ */
+#if @NCURSES_EXT_FUNCS@
+extern NCURSES_EXPORT(bool) is_term_resized (int, int);
+extern NCURSES_EXPORT(char *) keybound (int, int);
+extern NCURSES_EXPORT(const char *) curses_version (void);
+extern NCURSES_EXPORT(int) assume_default_colors (int, int);
+extern NCURSES_EXPORT(int) define_key (const char *, int);
+extern NCURSES_EXPORT(int) key_defined (const char *);
+extern NCURSES_EXPORT(int) keyok (int, bool);
+extern NCURSES_EXPORT(int) resize_term (int, int);
+extern NCURSES_EXPORT(int) resizeterm (int, int);
+extern NCURSES_EXPORT(int) use_default_colors (void);
+extern NCURSES_EXPORT(int) use_extended_names (bool);
+extern NCURSES_EXPORT(int) use_legacy_coding (int);
+extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int);
+extern NCURSES_EXPORT(void) nofilter(void);
+
+/*
+ * These extensions provide access to information stored in the WINDOW even
+ * when NCURSES_OPAQUE is set:
+ */
+extern NCURSES_EXPORT(bool) is_cleared (WINDOW *); /* generated */
+extern NCURSES_EXPORT(bool) is_idcok (WINDOW *); /* generated */
+extern NCURSES_EXPORT(bool) is_idlok (WINDOW *); /* generated */
+extern NCURSES_EXPORT(bool) is_immedok (WINDOW *); /* generated */
+extern NCURSES_EXPORT(bool) is_keypad (WINDOW *); /* generated */
+extern NCURSES_EXPORT(bool) is_leaveok (WINDOW *); /* generated */
+extern NCURSES_EXPORT(bool) is_nodelay (WINDOW *); /* generated */
+extern NCURSES_EXPORT(bool) is_notimeout (WINDOW *); /* generated */
+extern NCURSES_EXPORT(bool) is_scrollok (WINDOW *); /* generated */
+extern NCURSES_EXPORT(bool) is_syncok (WINDOW *); /* generated */
+
+#else
+#define curses_version() NCURSES_VERSION
+#endif
+
/* attributes */
#define NCURSES_ATTR_SHIFT 8
#endif /* NCURSES_OPAQUE */
/*
- * XSI curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use
+ * X/Open curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use
* varargs.h. It adds new calls vw_printw/vw_scanw, which are supposed to
* use POSIX stdarg.h. The ncurses versions of vwprintw/vwscanw already
* use stdarg.h, so...
NCURSES_EXPORT(int) vsscanf(const char *, const char *, va_list);
#endif
+/*
+ * These macros are extensions - not in X/Open Curses.
+ */
+#if @NCURSES_EXT_FUNCS@
+#if !NCURSES_OPAQUE
+#define is_cleared(win) ((win)->_clear)
+#define is_idcok(win) ((win)->_idcok)
+#define is_idlok(win) ((win)->_idlok)
+#define is_immedok(win) ((win)->_immed)
+#define is_keypad(win) ((win)->_use_keypad)
+#define is_leaveok(win) ((win)->_leaveok)
+#define is_nodelay(win) ((win)->_delay == 0)
+#define is_notimeout(win) ((win)->_notimeout)
+#define is_scrollok(win) ((win)->_scroll)
+#define is_syncok(win) ((win)->_sync)
+#endif
+#endif
+
#endif /* NCURSES_NOMACROS */
/*
#! /bin/sh
#
# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
#
-# Copyright 1991 by the Massachusetts Institute of Technology
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission. M.I.T. makes no representations about the
-# suitability of this software for any purpose. It is provided "as is"
-# without express or implied warranty.
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
while [ x"$1" != x ]; do
case $1 in
- -c) instcmd="$cpprog"
+ -c) instcmd=$cpprog
shift
continue;;
shift
continue;;
- -s) stripcmd="$stripprog"
+ -s) stripcmd=$stripprog
shift
continue;;
if [ x"$src" = x ]
then
- echo "install: no input file specified"
+ echo "$0: no input file specified" >&2
exit 1
else
:
dst=$src
src=""
- if [ -d $dst ]; then
+ if [ -d "$dst" ]; then
instcmd=:
chmodcmd=""
else
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
- if [ -f $src -o -d $src ]
+ if [ -f "$src" ] || [ -d "$src" ]
then
:
else
- echo "install: $src does not exist"
+ echo "$0: $src does not exist" >&2
exit 1
fi
if [ x"$dst" = x ]
then
- echo "install: no destination specified"
+ echo "$0: no destination specified" >&2
exit 1
else
:
# If destination is a directory, append the input filename; if your system
# does not like double slashes in filenames, you may need to add some logic
- if [ -d $dst ]
+ if [ -d "$dst" ]
then
- dst="$dst"/`basename $src`
+ dst=$dst/`basename "$src"`
else
:
fi
fi
## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
# Make sure that the destination directory exists.
# this part is taken from Noah Friedman's mkinstalldirs script
if [ ! -d "$dstdir" ]; then
defaultIFS='
'
-IFS="${IFS-${defaultIFS}}"
+IFS="${IFS-$defaultIFS}"
-oIFS="${IFS}"
+oIFS=$IFS
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
+set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
+IFS=$oIFS
pathcomp=''
while [ $# -ne 0 ] ; do
- pathcomp="${pathcomp}${1}"
+ pathcomp=$pathcomp$1
shift
- if [ ! -d "${pathcomp}" ] ;
+ if [ ! -d "$pathcomp" ] ;
then
- $mkdirprog "${pathcomp}"
+ $mkdirprog "$pathcomp"
else
:
fi
- pathcomp="${pathcomp}/"
+ pathcomp=$pathcomp/
done
fi
if [ x"$dir_arg" != x ]
then
- $doit $instcmd $dst &&
+ $doit $instcmd "$dst" &&
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
else
# If we're going to rename the final executable, determine the name now.
if [ x"$transformarg" = x ]
then
- dstfile=`basename $dst`
+ dstfile=`basename "$dst"`
else
- dstfile=`basename $dst $transformbasename |
+ dstfile=`basename "$dst" $transformbasename |
sed $transformarg`$transformbasename
fi
if [ x"$dstfile" = x ]
then
- dstfile=`basename $dst`
+ dstfile=`basename "$dst"`
else
:
fi
-# Make a temp file name in the proper directory.
+# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/#inst.$$#
+ rmtmp=$dstdir/#rm.$$#
-# Move or copy the file name to the temp name
+# Trap to clean up temp files at exit.
- $doit $instcmd $src $dsttmp &&
+ trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
+ trap '(exit $?); exit' 1 2 13 15
- trap "rm -f ${dsttmp}" 0 &&
+# Move or copy the file name to the temp name
+
+ $doit $instcmd "$src" "$dsttmp" &&
# and set any options; do chmod last to preserve setuid bits
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi &&
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
+
+# Now remove or move aside any old file at destination location. We try this
+# two ways since rm can't unlink itself on some systems and the destination
+# file might be busy for other reasons. In this case, the final cleanup
+# might fail but the new file should still install successfully.
+
+{
+ if [ -f "$dstdir/$dstfile" ]
+ then
+ $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
+ $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
+ {
+ echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
+ (exit 1); exit
+ }
+ else
+ :
+ fi
+} &&
# Now rename the file to the real destination.
- $doit $rmcmd -f $dstdir/$dstfile &&
- $doit $mvcmd $dsttmp $dstdir/$dstfile
+ $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
fi &&
+# The final little trick to "correctly" pass the exit status to the exit trap.
-exit 0
+{
+ (exit 0); exit
+}
-# $Id: Makefile.in,v 1.40 2006/12/24 20:16:32 tom Exp $
+# $Id: Makefile.in,v 1.41 2007/03/31 15:54:06 tom Exp $
##############################################################################
-# Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2006,2007 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"), #
tags :
$(DESTDIR)$(mandir) :
- sh $(srcdir)/../mkinstalldirs $@
+ sh $(srcdir)/../mkdirs.sh $@
EDITARGS = $(DESTDIR)$(mandir) $(srcdir) terminfo.5 $(srcdir)/*.[0-9]*
-# $Id: Makefile.in,v 1.45 2007/03/03 20:51:25 tom Exp $
+# $Id: Makefile.in,v 1.46 2007/03/31 15:46:42 tom Exp $
##############################################################################
# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
# #
$(DESTDIR)$(bindir) \
$(DESTDIR)$(libdir) :
- sh $(srcdir)/../mkinstalldirs $@
+ sh $(srcdir)/../mkdirs.sh $@
# make copies to simplify include-paths while still keeping menu's include
# file in this directory.
-# $Id: Makefile.in,v 1.42 2006/12/31 00:11:06 tom Exp $
+# $Id: Makefile.in,v 1.43 2007/03/31 15:54:17 tom Exp $
##############################################################################
-# Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2006,2007 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"), #
$(DESTDIR)$(libdir) \
$(DESTDIR)$(datadir) \
$(DESTDIR)$(tabsetdir) :
- $(SHELL) $(top_srcdir)/mkinstalldirs $@
+ $(SHELL) $(top_srcdir)/mkdirs.sh $@
uninstall : uninstall.data uninstall.libs
-# $Id: mk-hdr.awk,v 1.1 2007/01/13 19:44:22 tom Exp $
+# $Id: mk-hdr.awk,v 1.2 2007/03/31 15:48:45 tom Exp $
##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
+# Copyright (c) 2007 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"), #
if ( count > 0 )
{
print "${DESTDIR}${includedir} :"
- print " sh ${srcdir}/../mkinstalldirs $@"
+ print " sh ${srcdir}/../mkdirs.sh $@"
print ""
print "install \\"
print "install.libs \\"
#! /bin/sh
+# $Id: mkdirs.sh,v 1.5 2007/03/25 22:29:46 tom Exp $
+# -----------------------------------------------------------------------------
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
# Last modified: 1994-03-25
# Public domain
-#
+# -----------------------------------------------------------------------------
errstatus=0
umask 022
echo "mkdir $pathcomp" 1>&2
case "$pathcomp" in
[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]: )
- ;; # DOSISH systems
- * ) mkdir "$pathcomp" || errstatus=$? ;;
+ ;; # DOSISH systems
+ * )
+ mkdir "$pathcomp"
+ errstatus=$?
+ if test $errstatus != 0
+ then
+ # may have failed if invoked in a parallel "make -j# install"
+ if test -d "$pathcomp"
+ then
+ errstatus=0
+ fi
+ fi
+ ;;
esac
fi
-# $Id: Makefile.in,v 1.103 2007/02/24 21:50:17 tom Exp $
+# $Id: Makefile.in,v 1.104 2007/03/31 15:46:42 tom Exp $
##############################################################################
# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
# #
$(DESTDIR)$(bindir) \
$(DESTDIR)$(libdir) :
- sh $(srcdir)/../mkinstalldirs $@
+ sh $(srcdir)/../mkdirs.sh $@
../lib : ; mkdir $@
-# $Id: Makefile.in,v 1.49 2007/03/03 20:51:25 tom Exp $
+# $Id: Makefile.in,v 1.50 2007/03/31 15:46:42 tom Exp $
##############################################################################
# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
# #
$(DESTDIR)$(bindir) \
$(DESTDIR)$(libdir) :
- sh $(srcdir)/../mkinstalldirs $@
+ sh $(srcdir)/../mkdirs.sh $@
# make a copy to simplify include-paths while still keeping panel's include
# file in this directory.
-# $Id: Makefile.in,v 1.71 2007/01/13 17:33:52 tom Exp $
+# $Id: Makefile.in,v 1.72 2007/03/31 15:46:42 tom Exp $
##############################################################################
# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
# #
-@rm -f $(DESTDIR)$(bindir)/$(actual_reset)
$(DESTDIR)$(bindir) :
- sh $(srcdir)/../mkinstalldirs $@
+ sh $(srcdir)/../mkdirs.sh $@
#
# Utilities normally built by make all start here