Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/lib/libpanel First cut at ETI libpanel. Lacks man pages and...



details:   https://anonhg.NetBSD.org/src/rev/19c7a78decd9
branches:  trunk
changeset: 341222:19c7a78decd9
user:      uwe <uwe%NetBSD.org@localhost>
date:      Mon Oct 26 23:09:49 2015 +0000

description:
First cut at ETI libpanel.  Lacks man pages and tests.
Not hooked into the build yet.

diffstat:

 lib/libpanel/Makefile      |  31 +++++++++++++++
 lib/libpanel/_deck.c       |  34 +++++++++++++++++
 lib/libpanel/above.c       |  45 ++++++++++++++++++++++
 lib/libpanel/below.c       |  50 +++++++++++++++++++++++++
 lib/libpanel/bottom.c      |  48 ++++++++++++++++++++++++
 lib/libpanel/del.c         |  63 +++++++++++++++++++++++++++++++
 lib/libpanel/getuser.c     |  41 ++++++++++++++++++++
 lib/libpanel/hidden.c      |  45 ++++++++++++++++++++++
 lib/libpanel/hide.c        |  56 ++++++++++++++++++++++++++++
 lib/libpanel/move.c        |  58 +++++++++++++++++++++++++++++
 lib/libpanel/new.c         |  75 +++++++++++++++++++++++++++++++++++++
 lib/libpanel/panel.h       |  62 +++++++++++++++++++++++++++++++
 lib/libpanel/panel_impl.h  |  92 ++++++++++++++++++++++++++++++++++++++++++++++
 lib/libpanel/replace.c     |  53 ++++++++++++++++++++++++++
 lib/libpanel/setuser.c     |  42 +++++++++++++++++++++
 lib/libpanel/shlib_version |   5 ++
 lib/libpanel/show.c        |  47 +++++++++++++++++++++++
 lib/libpanel/top.c         |  49 ++++++++++++++++++++++++
 lib/libpanel/update.c      |  62 +++++++++++++++++++++++++++++++
 lib/libpanel/window.c      |  43 +++++++++++++++++++++
 20 files changed, 1001 insertions(+), 0 deletions(-)

diffs (truncated from 1081 to 300 lines):

diff -r fe5da0f3a6e3 -r 19c7a78decd9 lib/libpanel/Makefile
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/libpanel/Makefile     Mon Oct 26 23:09:49 2015 +0000
@@ -0,0 +1,31 @@
+#      $NetBSD: Makefile,v 1.1 2015/10/26 23:09:49 uwe Exp $
+
+WARNS= 4
+
+LIB=   panel
+
+INCS=  panel.h
+
+SRCS=  #
+
+SRCS+= _deck.c
+
+SRCS+= above.c
+SRCS+= below.c
+SRCS+= bottom.c
+SRCS+= del.c
+SRCS+= getuser.c
+SRCS+= hidden.c
+SRCS+= hide.c
+SRCS+= move.c
+SRCS+= new.c
+SRCS+= replace.c
+SRCS+= setuser.c
+SRCS+= show.c
+SRCS+= top.c
+SRCS+= update.c
+SRCS+= window.c
+
+#LIBDPLIBS+=   curses  ${.CURDIR}/../libcurses
+
+.include <bsd.lib.mk>
diff -r fe5da0f3a6e3 -r 19c7a78decd9 lib/libpanel/_deck.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/libpanel/_deck.c      Mon Oct 26 23:09:49 2015 +0000
@@ -0,0 +1,34 @@
+/*     $NetBSD: _deck.c,v 1.1 2015/10/26 23:09:49 uwe Exp $ */
+
+/*
+ * Copyright (c) 2015 Valery Ushakov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: _deck.c,v 1.1 2015/10/26 23:09:49 uwe Exp $");
+
+#include "panel_impl.h"
+
+struct deck _deck __dso_hidden = TAILQ_HEAD_INITIALIZER(_deck);
+PANEL _stdscr_panel __dso_hidden;
diff -r fe5da0f3a6e3 -r 19c7a78decd9 lib/libpanel/above.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/libpanel/above.c      Mon Oct 26 23:09:49 2015 +0000
@@ -0,0 +1,45 @@
+/*     $NetBSD: above.c,v 1.1 2015/10/26 23:09:49 uwe Exp $ */
+
+/*
+ * Copyright (c) 2015 Valery Ushakov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: above.c,v 1.1 2015/10/26 23:09:49 uwe Exp $");
+
+#include "panel_impl.h"
+
+
+PANEL *
+panel_above(PANEL *p)
+{
+
+       if (__predict_false(p == NULL))
+               return NULL;
+
+       if (__predict_false(PANEL_HIDDEN(p)))
+               return NULL;
+
+       return PANEL_ABOVE(p);
+}
diff -r fe5da0f3a6e3 -r 19c7a78decd9 lib/libpanel/below.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/libpanel/below.c      Mon Oct 26 23:09:49 2015 +0000
@@ -0,0 +1,50 @@
+/*     $NetBSD: below.c,v 1.1 2015/10/26 23:09:49 uwe Exp $ */
+
+/*
+ * Copyright (c) 2015 Valery Ushakov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: below.c,v 1.1 2015/10/26 23:09:49 uwe Exp $");
+
+#include "panel_impl.h"
+
+
+PANEL *
+panel_below(PANEL *p)
+{
+       PANEL *below;
+
+       if (__predict_false(p == NULL))
+               return NULL;
+
+       if (__predict_false(PANEL_HIDDEN(p)))
+               return NULL;
+
+       below = PANEL_BELOW(p);
+       if (below == &_stdscr_panel)
+               return NULL;
+       else
+               return below;
+}
diff -r fe5da0f3a6e3 -r 19c7a78decd9 lib/libpanel/bottom.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/libpanel/bottom.c     Mon Oct 26 23:09:49 2015 +0000
@@ -0,0 +1,48 @@
+/*     $NetBSD: bottom.c,v 1.1 2015/10/26 23:09:49 uwe Exp $ */
+
+/*
+ * Copyright (c) 2015 Valery Ushakov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: bottom.c,v 1.1 2015/10/26 23:09:49 uwe Exp $");
+
+#include "panel_impl.h"
+
+
+int
+bottom_panel(PANEL *p)
+{
+
+       if (__predict_false(p == NULL))
+               return ERR;
+
+       if (__predict_false(PANEL_HIDDEN(p)))
+               return ERR;
+
+       (void) hide_panel(p);
+
+       DECK_INSERT_BOTTOM(p);
+       return OK;
+}
diff -r fe5da0f3a6e3 -r 19c7a78decd9 lib/libpanel/del.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/libpanel/del.c        Mon Oct 26 23:09:49 2015 +0000
@@ -0,0 +1,63 @@
+/*     $NetBSD: del.c,v 1.1 2015/10/26 23:09:49 uwe Exp $ */
+
+/*
+ * Copyright (c) 2015 Valery Ushakov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: del.c,v 1.1 2015/10/26 23:09:49 uwe Exp $");
+
+#include "panel_impl.h"
+
+#include <assert.h>
+#include <stdlib.h>
+
+
+int
+del_panel(PANEL *p)
+{
+
+       if (__predict_false(p == NULL))
+               return ERR;
+
+       (void) hide_panel(p);
+       free(p);
+
+       /*
+        * If the last panel is removed, remove the phantom stdscr
+        * panel as well.
+        *
+        * A program that wants to switch to a different screen with
+        * set_term(3), or ends and recreates curses session with
+        * endwin(3)/initscr(3), must delete all panels first, since
+        * their windows will become invalid.  When it will create its
+        * first new panel afterwards, it will pick up new stdscr.
+        */
+       if (TAILQ_LAST(&_deck, deck) == &_stdscr_panel) {
+               (void) hide_panel(&_stdscr_panel);
+               assert(TAILQ_EMPTY(&_deck));
+       }
+
+       return OK;
+}
diff -r fe5da0f3a6e3 -r 19c7a78decd9 lib/libpanel/getuser.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/libpanel/getuser.c    Mon Oct 26 23:09:49 2015 +0000
@@ -0,0 +1,41 @@
+/*     $NetBSD: getuser.c,v 1.1 2015/10/26 23:09:49 uwe Exp $ */



Home | Main Index | Thread Index | Old Index