summaryrefslogtreecommitdiffstats
path: root/tcsh-6.18.00-history-file-locking.patch
diff options
context:
space:
mode:
authorRoman Kollar <rkollar@redhat.com>2012-10-29 17:56:25 +0100
committerRoman Kollar <rkollar@redhat.com>2012-10-29 17:56:25 +0100
commit2acb8bfe0f68e1dd131be770960a5f3cff2663ee (patch)
treed11248b92ef5cdd6c18b9df182254989b3bfad5b /tcsh-6.18.00-history-file-locking.patch
parent5b57aa6aa39062a3e84f4f65693db287aeedadfd (diff)
downloadtcsh-rebase-6.19.00-2acb8bfe0f68e1dd131be770960a5f3cff2663ee.tar.gz
tcsh-rebase-6.19.00-2acb8bfe0f68e1dd131be770960a5f3cff2663ee.tar.xz
tcsh-rebase-6.19.00-2acb8bfe0f68e1dd131be770960a5f3cff2663ee.zip
Fix dosource calls in the history file locking patch
Diffstat (limited to 'tcsh-6.18.00-history-file-locking.patch')
-rw-r--r--tcsh-6.18.00-history-file-locking.patch62
1 files changed, 24 insertions, 38 deletions
diff --git a/tcsh-6.18.00-history-file-locking.patch b/tcsh-6.18.00-history-file-locking.patch
index c96fa5f..d68c7ab 100644
--- a/tcsh-6.18.00-history-file-locking.patch
+++ b/tcsh-6.18.00-history-file-locking.patch
@@ -1,6 +1,6 @@
-From 6267f930ac9afead0f9f53122c63ceada9deb546 Mon Sep 17 00:00:00 2001
+From f813180f2fc1d682dd097e4a05ef4d15000204ad Mon Sep 17 00:00:00 2001
From: Roman Kollar <rkollar@redhat.com>
-Date: Mon, 29 Oct 2012 17:38:10 +0100
+Date: Mon, 29 Oct 2012 17:52:52 +0100
Subject: [PATCH] Add .history file locking - shared readers, exclusive writer
Originally reported at Red Hat Bugzilla:
@@ -8,19 +8,18 @@ https://bugzilla.redhat.com/show_bug.cgi?id=648592
Patch by Vojtech Vitek (V-Teq) <vvitek@redhat.com>
---
- sh.c | 101 +++++++++++++++++++++++++++++++++--------------
- sh.decls.h | 5 ++-
- sh.dir.c | 2 +-
+ sh.c | 103 +++++++++++++++++++++++++++++++++++-------------
+ sh.decls.h | 4 +-
sh.dol.c | 2 +-
sh.err.c | 16 ++++++++
sh.h | 18 +++++++++
sh.hist.c | 131 +++++++++++++++++++++++++++++++------------------------------
sh.lex.c | 8 ++--
sh.sem.c | 2 +-
- 9 files changed, 182 insertions(+), 103 deletions(-)
+ 8 files changed, 185 insertions(+), 99 deletions(-)
diff --git a/sh.c b/sh.c
-index dcd9116..5d90492 100644
+index dcd9116..7f03077 100644
--- a/sh.c
+++ b/sh.c
@@ -140,6 +140,7 @@ struct saved_state {
@@ -183,15 +182,16 @@ index dcd9116..5d90492 100644
/*
* Now if we are allowing commands to be interrupted, we let ourselves be
-@@ -2153,24 +2188,25 @@ process(int catch)
- }
-
- /*ARGSUSED*/
--void
--dosource(Char **t, struct command *c)
-+int
-+dosource(Char **t, struct command *c, int flg)
+@@ -2156,21 +2191,28 @@ process(int catch)
+ void
+ dosource(Char **t, struct command *c)
{
++ (void) dosource_flg(t, c, 0);
++}
++
++int
++dosource_flg(Char **t, struct command *c, int flg)
++{
Char *f;
- int hflg = 0;
char *file;
@@ -214,7 +214,7 @@ index dcd9116..5d90492 100644
}
f = globone(*t++, G_ERROR);
-@@ -2178,9 +2214,16 @@ dosource(Char **t, struct command *c)
+@@ -2178,9 +2220,16 @@ dosource(Char **t, struct command *c)
cleanup_push(file, xfree);
xfree(f);
t = glob_all_or_error(t);
@@ -234,19 +234,18 @@ index dcd9116..5d90492 100644
/*
diff --git a/sh.decls.h b/sh.decls.h
-index db90288..d4332f3 100644
+index db90288..fb15a01 100644
--- a/sh.decls.h
+++ b/sh.decls.h
-@@ -37,7 +37,7 @@
- * sh.c
+@@ -38,6 +38,7 @@
*/
extern Char *gethdir (const Char *);
--extern void dosource (Char **, struct command *);
-+extern int dosource (Char **, struct command *, int);
+ extern void dosource (Char **, struct command *);
++extern int dosource_flg (Char **, struct command *, int);
extern void exitstat (void);
extern void goodbye (Char **, struct command *);
extern void importpath (Char *);
-@@ -98,6 +98,7 @@ extern void cleanup_until_mark(void);
+@@ -98,6 +99,7 @@ extern void cleanup_until_mark(void);
extern size_t cleanup_push_mark(void);
extern void cleanup_pop_mark(size_t);
extern void open_cleanup(void *);
@@ -254,7 +253,7 @@ index db90288..d4332f3 100644
extern void opendir_cleanup(void *);
extern void sigint_cleanup(void *);
extern void sigprocmask_cleanup(void *);
-@@ -219,7 +220,7 @@ extern struct Hist *enthist (int, struct wordent *, int, int, int);
+@@ -219,7 +221,7 @@ extern struct Hist *enthist (int, struct wordent *, int, int, int);
extern void savehist (struct wordent *, int);
extern char *fmthist (int, ptr_t);
extern void rechist (Char *, int);
@@ -263,19 +262,6 @@ index db90288..d4332f3 100644
extern void displayHistStats(const char *);
/*
-diff --git a/sh.dir.c b/sh.dir.c
-index ab89855..4bfe430 100644
---- a/sh.dir.c
-+++ b/sh.dir.c
-@@ -1342,7 +1342,7 @@ loaddirs(Char *fname)
- loaddirs_cmd[1] = fname;
- else
- loaddirs_cmd[1] = STRtildotdirs;
-- dosource(loaddirs_cmd, NULL);
-+ dosource(loaddirs_cmd, NULL, 0);
- cleanup_until(&bequiet);
- }
-
diff --git a/sh.dol.c b/sh.dol.c
index 45b10e0..2ce7cb5 100644
--- a/sh.dol.c
@@ -345,7 +331,7 @@ index 691add3..4e3f13c 100644
typedef unsigned long intptr_t;
#endif
diff --git a/sh.hist.c b/sh.hist.c
-index 6a12737..bd26091 100644
+index 6a12737..7e53c65 100644
--- a/sh.hist.c
+++ b/sh.hist.c
@@ -44,14 +44,6 @@ Char HistLit = 0;
@@ -628,7 +614,7 @@ index 6a12737..bd26091 100644
loadhist_cmd[2] = STRtildothist;
- dosource(loadhist_cmd, NULL);
-+ fd = dosource(loadhist_cmd, NULL, flg);
++ fd = dosource_flg(loadhist_cmd, NULL, flg);
- /* During history merging (enthist sees mflg set), we disable management of
- * Hnum and Href (because fastMergeErase is true). So now reset all the