Add keep_tite configuration option

Similar to dialog(3) keep_tite option used to prevent visually disturbing
initialization or exit that could occur when run from a script using
dpv(3) by way of dpv(1) in sequence with other dialog(1) invocations.
This commit is contained in:
Devin Teske 2016-01-26 23:56:27 +00:00
parent 10d72ffc7d
commit 80f7300d7b
5 changed files with 10 additions and 4 deletions

View File

@ -1,4 +1,4 @@
.\" Copyright (c) 2013-2015 Devin Teske .\" Copyright (c) 2013-2016 Devin Teske
.\" All rights reserved. .\" All rights reserved.
.\" .\"
.\" Redistribution and use in source and binary forms, with or without .\" Redistribution and use in source and binary forms, with or without
@ -24,7 +24,7 @@
.\" .\"
.\" $FreeBSD$ .\" $FreeBSD$
.\" .\"
.Dd Oct 22, 2015 .Dd Jan 26, 2016
.Dt DPV 3 .Dt DPV 3
.Os .Os
.Sh NAME .Sh NAME
@ -64,6 +64,7 @@ argument contains the following properties for configuring global display
features: features:
.Bd -literal -offset indent .Bd -literal -offset indent
struct dpv_config { struct dpv_config {
uint8_t keep_tite; /* Cleaner exit for scripts */
enum dpv_display display_type; /* Def. DPV_DISPLAY_LIBDIALOG */ enum dpv_display display_type; /* Def. DPV_DISPLAY_LIBDIALOG */
enum dpv_output output_type; /* Default DPV_OUTPUT_NONE */ enum dpv_output output_type; /* Default DPV_OUTPUT_NONE */
int debug; /* Enable debug on stderr */ int debug; /* Enable debug on stderr */

View File

@ -69,6 +69,7 @@ long long dpv_overall_read = 0;
static char pathbuf[PATH_MAX]; static char pathbuf[PATH_MAX];
/* Extra display information */ /* Extra display information */
uint8_t keep_tite = FALSE; /* dpv_config.keep_tite */
uint8_t no_labels = FALSE; /* dpv_config.options & DPV_NO_LABELS */ uint8_t no_labels = FALSE; /* dpv_config.options & DPV_NO_LABELS */
uint8_t wide = FALSE; /* dpv_config.options & DPV_WIDE_MODE */ uint8_t wide = FALSE; /* dpv_config.options & DPV_WIDE_MODE */
char *aprompt = NULL; /* dpv_config.aprompt */ char *aprompt = NULL; /* dpv_config.aprompt */
@ -150,6 +151,7 @@ dpv(struct dpv_config *config, struct dpv_file_node *file_list)
dialog_updates_per_second = DIALOG_UPDATES_PER_SEC; dialog_updates_per_second = DIALOG_UPDATES_PER_SEC;
display_limit = DISPLAY_LIMIT_DEFAULT; display_limit = DISPLAY_LIMIT_DEFAULT;
display_type = DPV_DISPLAY_LIBDIALOG; display_type = DPV_DISPLAY_LIBDIALOG;
keep_tite = FALSE;
label_size = LABEL_SIZE_DEFAULT; label_size = LABEL_SIZE_DEFAULT;
msg_done = NULL; msg_done = NULL;
msg_fail = NULL; msg_fail = NULL;
@ -193,6 +195,7 @@ dpv(struct dpv_config *config, struct dpv_file_node *file_list)
dialog_updates_per_second = config->dialog_updates_per_second; dialog_updates_per_second = config->dialog_updates_per_second;
display_limit = config->display_limit; display_limit = config->display_limit;
display_type = config->display_type; display_type = config->display_type;
keep_tite = config->keep_tite;
label_size = config->label_size; label_size = config->label_size;
msg_done = (char *)config->msg_done; msg_done = (char *)config->msg_done;
msg_fail = (char *)config->msg_fail; msg_fail = (char *)config->msg_fail;
@ -695,7 +698,7 @@ dpv(struct dpv_config *config, struct dpv_file_node *file_list)
close(dialog_out); close(dialog_out);
waitpid(pid, (int *)NULL, 0); waitpid(pid, (int *)NULL, 0);
} }
if (!dpv_interrupt) if (!keep_tite && !dpv_interrupt)
printf("\n"); printf("\n");
} else } else
warnx("%s: %lli overall read", __func__, dpv_overall_read); warnx("%s: %lli overall read", __func__, dpv_overall_read);

View File

@ -97,6 +97,7 @@ struct dpv_file_node {
* Anatomy of config option to pass as dpv() config argument * Anatomy of config option to pass as dpv() config argument
*/ */
struct dpv_config { struct dpv_config {
uint8_t keep_tite; /* Prevent visually distracting exit */
enum dpv_display display_type; /* Display (default TYPE_LIBDIALOG) */ enum dpv_display display_type; /* Display (default TYPE_LIBDIALOG) */
enum dpv_output output_type; /* Output (default TYPE_NONE) */ enum dpv_output output_type; /* Output (default TYPE_NONE) */
int debug; /* Enable debugging output on stderr */ int debug; /* Enable debugging output on stderr */

View File

@ -38,6 +38,7 @@ extern uint8_t debug;
extern unsigned int dpv_nfiles; extern unsigned int dpv_nfiles;
/* Extra display information */ /* Extra display information */
extern uint8_t keep_tite;
extern uint8_t no_labels; extern uint8_t no_labels;
extern uint8_t wide; extern uint8_t wide;
extern char *msg_done, *msg_fail, *msg_pending; extern char *msg_done, *msg_fail, *msg_pending;

View File

@ -58,7 +58,7 @@
* in the range 5 to 9. * in the range 5 to 9.
*/ */
#undef __FreeBSD_version #undef __FreeBSD_version
#define __FreeBSD_version 1100096 /* Master, propagated to newvers */ #define __FreeBSD_version 1100097 /* Master, propagated to newvers */
/* /*
* __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD,