Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src Implement POSIX curses use_env function.
details: https://anonhg.NetBSD.org/src/rev/f1ef64512ba8
branches: trunk
changeset: 349997:f1ef64512ba8
user: roy <roy%NetBSD.org@localhost>
date: Sat Dec 31 17:46:35 2016 +0000
description:
Implement POSIX curses use_env function.
diffstat:
distrib/sets/lists/comp/mi | 5 ++++-
lib/libcurses/Makefile | 5 +++--
lib/libcurses/curses.h | 3 ++-
lib/libcurses/curses_screen.3 | 20 ++++++++++++++++++--
lib/libcurses/setterm.c | 22 ++++++++++++++++------
5 files changed, 43 insertions(+), 12 deletions(-)
diffs (171 lines):
diff -r dbfbcfc08392 -r f1ef64512ba8 distrib/sets/lists/comp/mi
--- a/distrib/sets/lists/comp/mi Sat Dec 31 15:41:39 2016 +0000
+++ b/distrib/sets/lists/comp/mi Sat Dec 31 17:46:35 2016 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.2085 2016/12/31 13:50:16 roy Exp $
+# $NetBSD: mi,v 1.2086 2016/12/31 17:46:35 roy Exp $
#
# Note: don't delete entries from here - mark them as "obsolete" instead.
./etc/mtree/set.comp comp-sys-root
@@ -9493,6 +9493,7 @@
./usr/share/man/cat3/unsetenv.0 comp-c-catman .cat
./usr/share/man/cat3/untouchwin.0 comp-c-catman .cat
./usr/share/man/cat3/unvis.0 comp-c-catman .cat
+./usr/share/man/cat3/use_env.0 comp-c-catman .cat
./usr/share/man/cat3/update_panels.0 comp-c-catman .cat
./usr/share/man/cat3/updlastlogx.0 comp-c-catman .cat
./usr/share/man/cat3/updwtmpx.0 comp-c-catman .cat
@@ -16761,6 +16762,7 @@
./usr/share/man/html3/unsetenv.html comp-c-htmlman html
./usr/share/man/html3/untouchwin.html comp-c-htmlman html
./usr/share/man/html3/unvis.html comp-c-htmlman html
+./usr/share/man/html3/use_env.html comp-c-htmlman html
./usr/share/man/html3/update_panels.html comp-c-htmlman html
./usr/share/man/html3/updlastlogx.html comp-c-htmlman html
./usr/share/man/html3/updwtmpx.html comp-c-htmlman html
@@ -24092,6 +24094,7 @@
./usr/share/man/man3/unsetenv.3 comp-c-man .man
./usr/share/man/man3/untouchwin.3 comp-c-man .man
./usr/share/man/man3/unvis.3 comp-c-man .man
+./usr/share/man/man3/use_env.3 comp-c-man .man
./usr/share/man/man3/update_panels.3 comp-c-man .man
./usr/share/man/man3/updlastlogx.3 comp-c-man .man
./usr/share/man/man3/updwtmpx.3 comp-c-man .man
diff -r dbfbcfc08392 -r f1ef64512ba8 lib/libcurses/Makefile
--- a/lib/libcurses/Makefile Sat Dec 31 15:41:39 2016 +0000
+++ b/lib/libcurses/Makefile Sat Dec 31 17:46:35 2016 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.73 2016/12/31 13:50:16 roy Exp $
+# $NetBSD: Makefile,v 1.74 2016/12/31 17:46:35 roy Exp $
# @(#)Makefile 8.2 (Berkeley) 1/2/94
.include <bsd.own.mk>
@@ -152,7 +152,8 @@
curses_touch.3 touchwin.3 curses_print.3 unctrl.3 \
curses_underscore.3 underend.3 curses_underscore.3 underscore.3 \
curses_input.3 ungetch.3 curses_touch.3 untouchwin.3 \
- curses_default_colors.3 use_default_colors.3 curses_line.3 vline.3 \
+ curses_default_colors.3 use_default_colors.3 \
+ curses_screen.3 use_env.3 curses_line.3 vline.3 \
curses_addch.3 waddch.3 curses_addchstr.3 waddchnstr.3 \
curses_addchstr.3 waddchstr.3 curses_addstr.3 waddnstr.3 \
curses_addstr.3 waddstr.3 \
diff -r dbfbcfc08392 -r f1ef64512ba8 lib/libcurses/curses.h
--- a/lib/libcurses/curses.h Sat Dec 31 15:41:39 2016 +0000
+++ b/lib/libcurses/curses.h Sat Dec 31 17:46:35 2016 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: curses.h,v 1.109 2016/12/31 13:50:16 roy Exp $ */
+/* $NetBSD: curses.h,v 1.110 2016/12/31 17:46:35 roy Exp $ */
/*
* Copyright (c) 1981, 1993, 1994
@@ -753,6 +753,7 @@
int ungetch(int);
int untouchwin(WINDOW *);
int use_default_colors(void);
+void use_env(bool);
int vline(chtype, int);
int vw_printw(WINDOW *, const char *, __va_list) __printflike(2, 0);
int vw_scanw(WINDOW *, const char *, __va_list) __scanflike(2, 0);
diff -r dbfbcfc08392 -r f1ef64512ba8 lib/libcurses/curses_screen.3
--- a/lib/libcurses/curses_screen.3 Sat Dec 31 15:41:39 2016 +0000
+++ b/lib/libcurses/curses_screen.3 Sat Dec 31 17:46:35 2016 +0000
@@ -1,4 +1,4 @@
-.\" $NetBSD: curses_screen.3,v 1.16 2016/12/30 22:38:38 roy Exp $
+.\" $NetBSD: curses_screen.3,v 1.17 2016/12/31 17:46:35 roy Exp $
.\"
.\" Copyright (c) 2002
.\" Brett Lymn (blymn%NetBSD.org@localhost, brett_lymn%yahoo.com.au@localhost)
@@ -34,8 +34,9 @@
.Dt CURSES_SCREEN 3
.Os
.Sh NAME
+.Nm curses_screen ,
.Nm filter ,
-.Nm curses_screen ,
+.Nm use_env ,
.Nm newterm ,
.Nm set_term ,
.Nm delscreen ,
@@ -51,6 +52,8 @@
.In curses.h
.Ft void
.Fn filter "void"
+.Ft void
+.Fn use_env "bool value"
.Ft SCREEN *
.Fn newterm "char *type" "FILE *outfd" "FILE *infd"
.Ft SCREEN *
@@ -190,6 +193,19 @@
.It
Set lines equal to 1.
.El
+.Pp
+The
+.Fn use_env
+function determines whether the environment variables LINES and COLUMNS
+override the normal values.
+The default is true.
+Any call to
+.Fn use_env
+must precede calls to
+.Fn initscr ,
+.Fn newterm
+or
+.Fn setupterm .
.Sh RETURN VALUES
Functions returning pointers will return
.Dv NULL
diff -r dbfbcfc08392 -r f1ef64512ba8 lib/libcurses/setterm.c
--- a/lib/libcurses/setterm.c Sat Dec 31 15:41:39 2016 +0000
+++ b/lib/libcurses/setterm.c Sat Dec 31 17:46:35 2016 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: setterm.c,v 1.55 2016/12/30 22:38:38 roy Exp $ */
+/* $NetBSD: setterm.c,v 1.56 2016/12/31 17:46:35 roy Exp $ */
/*
* Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)setterm.c 8.8 (Berkeley) 10/25/94";
#else
-__RCSID("$NetBSD: setterm.c,v 1.55 2016/12/30 22:38:38 roy Exp $");
+__RCSID("$NetBSD: setterm.c,v 1.56 2016/12/31 17:46:35 roy Exp $");
#endif
#endif /* not lint */
@@ -50,9 +50,17 @@
static int does_esc_m(const char *cap);
static int does_ctrl_o(const char *exit_cap, const char *acs_cap);
+static bool __use_env = true;
attr_t __mask_op, __mask_me, __mask_ue, __mask_se;
+void
+use_env(bool value)
+{
+
+ __use_env = value;
+}
+
int
setterm(char *type)
{
@@ -119,10 +127,12 @@
#endif
/* POSIX 1003.2 requires that the environment override. */
- if (!screen->filtered && (p = getenv("LINES")) != NULL)
- screen->LINES = (int) strtol(p, NULL, 0);
- if ((p = getenv("COLUMNS")) != NULL)
- screen->COLS = (int) strtol(p, NULL, 0);
+ if (__use_env) {
+ if (!screen->filtered && (p = getenv("LINES")) != NULL)
+ screen->LINES = (int) strtol(p, NULL, 0);
+ if ((p = getenv("COLUMNS")) != NULL)
+ screen->COLS = (int) strtol(p, NULL, 0);
+ }
if ((p = getenv("ESCDELAY")) != NULL)
ESCDELAY = (int) strtol(p, NULL, 0);
if ((p = getenv("TABSIZE")) != NULL)
Home |
Main Index |
Thread Index |
Old Index