[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RP] [PATCH]give use a chance not to use history file
From: |
Wang Lei |
Subject: |
[RP] [PATCH]give use a chance not to use history file |
Date: |
Sat, 27 Aug 2011 17:58:33 +0800 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux) |
Hi, all.
I'm a new programmer. I use ratpoison, and very like it. So I'm trying
to do something helpful.
I do not use colon or exec often, and don't like to see
.ratpoison_history. So this patch is out. Is this the right way to do?
>From 923e4bcc69fef9f8bd2bc2e87e955aacb5cf74d0 Mon Sep 17 00:00:00 2001
From: Wang Lei <address@hidden>
Date: Sat, 27 Aug 2011 11:50:22 +0800
Subject: [PATCH] give user a chance not to use history file
---
src/conf.h | 3 +++
src/globals.c | 3 +++
src/globals.h | 3 +++
src/history.c | 28 ++++++++++++++++++----------
src/main.c | 7 ++++++-
5 files changed, 33 insertions(+), 11 deletions(-)
diff --git a/src/conf.h b/src/conf.h
index 708b688..fcb1ad5 100644
--- a/src/conf.h
+++ b/src/conf.h
@@ -110,6 +110,9 @@
/* The default filename in which to store the history */
#define HISTORY_FILE ".ratpoison_history"
+/* If the user don't like history file, drop cache to /dev/null */
+#define HISTORY_NULL "/dev/null"
+
/* Use a visual bell in the input window */
#define VISUAL_BELL 1
diff --git a/src/globals.c b/src/globals.c
index 3029aef..65206e0 100644
--- a/src/globals.c
+++ b/src/globals.c
@@ -87,6 +87,9 @@ struct numset *rp_frame_numset;
/* The X11 selection globals */
rp_xselection selection;
+/* do not use history file */
+int no_history = 0;
+
static void
x_export_selection (void)
{
diff --git a/src/globals.h b/src/globals.h
index e5ba32a..c585763 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -197,6 +197,9 @@ extern struct numset *rp_frame_numset;
extern struct list_head rp_frame_undos;
extern struct list_head rp_frame_redos;
+/* do not use history file */
+extern int no_history;
+
/* Selection handling globals */
extern rp_xselection selection;
void set_selection (char *txt);
diff --git a/src/history.c b/src/history.c
index 29e1749..9410773 100644
--- a/src/history.c
+++ b/src/history.c
@@ -32,20 +32,28 @@
static char *
get_history_filename (void)
{
- char *homedir = getenv ("HOME");
- char *filename;
-
- if (homedir)
+ if (no_history)
{
- filename = xmalloc (strlen (homedir) + strlen ("/" HISTORY_FILE) + 1);
- sprintf (filename, "%s/" HISTORY_FILE, homedir);
+ char *filename = xstrdup (HISTORY_NULL);
+ return filename;
}
- else
+ else
{
- filename = xstrdup (HISTORY_FILE);
+ char *homedir = getenv ("HOME");
+ char *filename;
+
+ if (homedir)
+ {
+ filename = xmalloc (strlen (homedir) + strlen ("/" HISTORY_FILE) +
1);
+ sprintf (filename, "%s/" HISTORY_FILE, homedir);
+ }
+ else
+ {
+ filename = xstrdup (HISTORY_FILE);
+ }
+
+ return filename;
}
-
- return filename;
}
static const char *
diff --git a/src/main.c b/src/main.c
index 417fc1a..5ae0f20 100644
--- a/src/main.c
+++ b/src/main.c
@@ -53,9 +53,10 @@ static struct option ratpoison_longopts[] =
{"display", required_argument, 0, 'd'},
{"screen", required_argument, 0, 's'},
{"file", required_argument, 0, 'f'},
+ {"no-history", no_argument, 0, 'H'},
{0, 0, 0, 0} };
-static char ratpoison_opts[] = "hvic:d:s:f:";
+static char ratpoison_opts[] = "hvic:d:s:f:H";
void
fatal (const char *msg)
@@ -337,6 +338,7 @@ print_help (void)
printf ("-s, --screen <num> Only use the specified screen\n");
printf ("-c, --command <cmd> Send ratpoison a colon-command\n");
printf ("-i, --interactive Execute commands in interactive mode\n");
+ printf ("-H, --no-history Do not save command history\n");
printf ("-f, --file <file> Specify an alternative configuration
file\n\n");
printf ("Report bugs to address@hidden");
@@ -598,6 +600,9 @@ main (int argc, char *argv[])
case 'h':
print_help ();
break;
+ case 'H':
+ no_history = 1;
+ break;
case 'v':
print_version ();
break;
--
1.7.5.4
--
Regards,
Lei
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [RP] [PATCH]give use a chance not to use history file,
Wang Lei <=