ftp.nice.ch/pub/next/unix/communication/pcomm.NIHS.bs.tar.gz#/pcomm/Source/data_log.c

This is data_log.c in view mode; [Download] [Up]

/*
 * Open a window to prompt for a path name to be used for the data logging
 * feature.  Also turns on the data logging.  A non-zero return code means
 * we need to restart the input routine.
 */

#include <stdio.h>
#include <curses.h>
#include "config.h"
#include "misc.h"
#include "param.h"
#include "status.h"

int
data_logging()
{
	extern int fd;
	int ret_code;
	WINDOW *dl_win, *newwin();
	char *ans, *path, *expand(), *get_str(), *strcpy();
	void input_off();

	dl_win = newwin(6, 70, 5, 5);

	mvwprintw(dl_win, 2, 4, "Default log file: %s", param->logfile);
	mvwaddstr(dl_win, 3, 4, "New log file: ");
	box(dl_win, VERT, HORZ);

	mvwattrstr(dl_win, 0, 3, A_BOLD, " Start Data Logging ");
	wmove(dl_win, 3, 18);
	wrefresh(dl_win);
					/* get the path */
	ret_code = 0;
	while ((ans = get_str(dl_win, PATH, "", " \t\n")) != NULL) {
					/* give 'em the default */
		if (*ans == '\0')
			path = param->logfile;
		else
			path = expand(ans);

					/* test write permission */
		if (can_write(path)) {
			ret_code++;
			break;
		}

		beep();
		mvwattrstr(dl_win, 4, 24, A_BOLD, "No write permission");
		wrefresh(dl_win);
		wait_key(dl_win, 3);
					/* clean up the mess */
		clear_line(dl_win, 3, 18, TRUE);
		clear_line(dl_win, 4, 24, TRUE);
		wmove(dl_win, 3, 18);
		wrefresh(dl_win);
	}
	if (ret_code) {
		strcpy(status->log_path, path);
		status->log = 1;
		/*
		 * Without shared memory, killing and restarting the input
		 * routine is the only way to change the name of the file
		 * that the input routines uses.
		 */
#ifdef SHAREDMEM
		ret_code = 0;
#else /* SHAREDMEM */
		input_off();
#endif /* SHAREDMEM */
	}
	if (fd == -1) {
		werase(dl_win);
		wrefresh(dl_win);
	}
	delwin(dl_win);

	return(ret_code);
}

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.