[tracker/wip/carlosg/sparql-shell: 1/2] cli: Add boolean argument to use smart "less" command quit behavior
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/carlosg/sparql-shell: 1/2] cli: Add boolean argument to use smart "less" command quit behavior
- Date: Fri, 5 Nov 2021 11:43:44 +0000 (UTC)
commit 4ad1868080d8330ba7464848fea94bc810e46a42
Author: Carlos Garnacho <carlosg gnome org>
Date: Mon Nov 1 00:17:25 2021 +0100
cli: Add boolean argument to use smart "less" command quit behavior
We normally want "less" to quit automatically if the content fits a
screen. Add a boolean argument to control this behavior.
src/libtracker-common/tracker-term-utils.c | 12 ++++++++----
src/libtracker-common/tracker-term-utils.h | 2 +-
src/tracker/tracker-export.c | 2 +-
src/tracker/tracker-sparql.c | 2 +-
src/tracker/tracker-sql.c | 2 +-
5 files changed, 12 insertions(+), 8 deletions(-)
---
diff --git a/src/libtracker-common/tracker-term-utils.c b/src/libtracker-common/tracker-term-utils.c
index 713b8d797..5a433bab9 100644
--- a/src/libtracker-common/tracker-term-utils.c
+++ b/src/libtracker-common/tracker-term-utils.c
@@ -147,10 +147,10 @@ best_pager (void)
}
gboolean
-tracker_term_pipe_to_pager (void)
+tracker_term_pipe_to_pager (gboolean quit_if_one_screen)
{
GSubprocessLauncher *launcher;
- gchar *pager_command;
+ gchar *pager_command, *less_env;
gint fds[2];
if (!tracker_term_is_tty ())
@@ -166,10 +166,14 @@ tracker_term_pipe_to_pager (void)
/* Ensure this is cached before we redirect to the pager */
tracker_term_dimensions (NULL, NULL);
+ if (quit_if_one_screen)
+ less_env = "FRSXMK";
+ else
+ less_env = "RSXMK";
+
launcher = g_subprocess_launcher_new (G_SUBPROCESS_FLAGS_NONE);
g_subprocess_launcher_take_stdin_fd (launcher, fds[0]);
- g_subprocess_launcher_setenv (launcher, "LESS", "FRSXMK", TRUE);
-
+ g_subprocess_launcher_setenv (launcher, "LESS", less_env, TRUE);
pager = g_subprocess_launcher_spawn (launcher, NULL, pager_command, NULL);
g_free (pager_command);
diff --git a/src/libtracker-common/tracker-term-utils.h b/src/libtracker-common/tracker-term-utils.h
index 1a4547d0b..44f8e9629 100644
--- a/src/libtracker-common/tracker-term-utils.h
+++ b/src/libtracker-common/tracker-term-utils.h
@@ -39,7 +39,7 @@ void tracker_term_dimensions (guint *columns,
gboolean tracker_term_is_tty (void);
-gboolean tracker_term_pipe_to_pager (void);
+gboolean tracker_term_pipe_to_pager (gboolean quit_if_one_screen);
gboolean tracker_term_pager_close (void);
#endif /* __TRACKER_TERM_UTILS_H__ */
diff --git a/src/tracker/tracker-export.c b/src/tracker/tracker-export.c
index 38c05f941..bd33876e2 100644
--- a/src/tracker/tracker-export.c
+++ b/src/tracker/tracker-export.c
@@ -350,7 +350,7 @@ export_run_default (void)
return EXIT_FAILURE;
}
- tracker_term_pipe_to_pager ();
+ tracker_term_pipe_to_pager (TRUE);
g_hash_table_foreach (prefixes, (GHFunc) print_prefix, NULL);
g_print ("\n");
diff --git a/src/tracker/tracker-sparql.c b/src/tracker/tracker-sparql.c
index b76e99ecd..09297af3a 100644
--- a/src/tracker/tracker-sparql.c
+++ b/src/tracker/tracker-sparql.c
@@ -1126,7 +1126,7 @@ sparql_run (void)
return EXIT_FAILURE;
}
- tracker_term_pipe_to_pager ();
+ tracker_term_pipe_to_pager (TRUE);
if (list_classes) {
const gchar *query;
diff --git a/src/tracker/tracker-sql.c b/src/tracker/tracker-sql.c
index e02ba6fb2..a68867b6a 100644
--- a/src/tracker/tracker-sql.c
+++ b/src/tracker/tracker-sql.c
@@ -117,7 +117,7 @@ sql_by_query (void)
return EXIT_FAILURE;
}
- tracker_term_pipe_to_pager ();
+ tracker_term_pipe_to_pager (TRUE);
g_print ("--------------------------------------------------\n");
g_print ("\n\n");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]