summaryrefslogtreecommitdiffstats
path: root/gnu/lib/libodialog/help.c
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/lib/libodialog/help.c')
-rw-r--r--gnu/lib/libodialog/help.c194
1 files changed, 0 insertions, 194 deletions
diff --git a/gnu/lib/libodialog/help.c b/gnu/lib/libodialog/help.c
deleted file mode 100644
index de49c6a..0000000
--- a/gnu/lib/libodialog/help.c
+++ /dev/null
@@ -1,194 +0,0 @@
-/***************************************************************
- *
- * Program: help.c
- * Author: Marc van Kempen
- * Desc: get help
- *
- *
- * Copyright (c) 1995, Marc van Kempen
- *
- * All rights reserved.
- *
- * This software may be used, modified, copied, distributed, and
- * sold, in both source and binary form provided that the above
- * copyright and these terms are retained, verbatim, as the first
- * lines of this file. Under no circumstances is the author
- * responsible for the proper functioning of this software, nor does
- * the author assume any responsibility for damages incurred with
- * its use.
- *
- ***************************************************************/
-
-#include <stdlib.h>
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <string.h>
-#include <dialog.h>
-
-static char _helpfilebuf[MAXPATHLEN];
-static char _helplinebuf[77]; /* limit the helpline to 76 characters */
-static char *_helpfile = NULL;
-static char *_helpline = NULL;
-
-/******************************************************************
- *
- * helpfile routines
- *
- ******************************************************************/
-
-void
-use_helpfile(char *hfile)
-/*
- * desc: set the helpfile to be opened on pressing F1 to <helpfile>
- */
-{
- if (hfile != NULL) {
- _helpfile = _helpfilebuf;
- strcpy(_helpfile, hfile);
- } else {
- _helpfile = NULL;
- }
-
- return;
-} /* use_helpfile() */
-
-void
-display_helpfile(void)
-/*
- * desc: display the current helpfile in a window
- */
-{
- WINDOW *w;
- FILE *f;
- struct stat sb;
- char msg[80], *buf;
- static int in_help = FALSE;
- char *savehline = NULL;
-
- if (in_help) return; /* dont call help when you're in help */
-
- if (_helpfile != NULL) {
- if ((w = dupwin(newscr)) == NULL) {
- dialog_notify("No memory to dup previous screen\n");
- return;
- }
- if ((f = fopen(_helpfile, "r")) == NULL) {
- sprintf(msg, "Can't open helpfile : %s\n", _helpfile);
- dialog_notify(msg);
- return;
- }
- if (fstat(fileno(f), &sb)) {
- sprintf(msg, "Can't stat helpfile : %s\n", _helpfile);
- dialog_notify(msg);
- return;
- }
- if ((buf = (char *) malloc( sb.st_size )) == NULL) {
- sprintf(msg, "Could not malloc space for helpfile : %s\n", _helpfile);
- dialog_notify(msg);
- return;
- }
- if (fread(buf, 1, sb.st_size, f) != sb.st_size) {
- sprintf(msg, "Could not read entire help file : %s", _helpfile);
- dialog_notify(msg);
- free(buf);
- return;
- }
- buf[sb.st_size] = 0;
- in_help = TRUE;
- savehline = get_helpline();
- use_helpline("Use arrowkeys, PgUp, PgDn, Home and End to move through text");
- dialog_mesgbox("Online help", buf, LINES-4, COLS-4);
- restore_helpline(savehline);
- in_help = FALSE;
- touchwin(w);
- wrefresh(w);
- delwin(w);
- free(buf);
- } else {
- /* do nothing */
- }
-
- return;
-} /* display_helpfile() */
-
-
-/******************************************************************
- *
- * helpline routines
- *
- ******************************************************************/
-
-void
-use_helpline(char *hline)
-/*
- * desc: set the helpline to printed in dialogs
- */
-{
- if (hline) {
- _helpline = _helplinebuf;
- if (strlen(hline) > 76) {
- /* only display the first 76 characters in the helpline */
- strncpy(_helpline, hline, 76);
- _helpline[76] = 0;
- } else {
- strcpy(_helpline, hline);
- }
- } else {
- _helpline = NULL;
- }
-
- return;
-} /* use_helpline() */
-
-void
-display_helpline(WINDOW *w, int y, int width)
-/*
- * desc: display the helpline at the given coordinates <y, x> in the window <w>
- */
-{
- if (_helpline != NULL) {
- if (strlen(_helpline) > width - 6) {
- _helpline[width - 6] = 0;
- }
- wmove(w, y, (int) (width - strlen(_helpline)- 4) / 2);
- wattrset(w, title_attr);
- waddstr(w, "[ ");
- waddstr(w, _helpline);
- waddstr(w, " ]");
- } else {
- /* do nothing */
- }
-
- return;
-}
-
-char *
-get_helpline(void)
-/*
- * desc: allocate new space, copy the helpline to it and return a pointer to it
- */
-{
- char *hlp;
-
- if (_helpline) {
- hlp = (char *) malloc( strlen(_helpline) + 1 );
- strcpy(hlp, _helpline);
- } else {
- hlp = NULL;
- }
-
- return(hlp);
-} /* get_helpline() */
-
-void
-restore_helpline(char *helpline)
-/*
- * Desc: set the helpline to <helpline> and free the space allocated to it
- */
-{
- use_helpline(helpline);
- free(helpline);
-
- return;
-} /* restore_helpline() */
OpenPOWER on IntegriCloud