The branch, master has been updated
via fb83914bd745996429374122f2289f2930170f71 (commit)
via 3fa4f691e32482b2d07d16be84b6e22657f9c7dd (commit)
via 8600fe054bd5db89f8e5758d657018f111be0610 (commit)
via 8378be03d1dd260fda325c15fb047da8ddd12c1c (commit)
via 51a1dbfe09f1a8ad543f818c836057c6a56e0938 (commit)
via 8264e92b3797cda37cc6610ddc26138ba46e2832 (commit)
from d5de489dc4ae2e5eaa9e5dee86094afb43cc1387 (commit)
- Log -----------------------------------------------------------------
commit fb83914bd745996429374122f2289f2930170f71
Merge: d5de489 3fa4f69
Author: Thomas Adam <[email protected]>
Commit: Thomas Adam <[email protected]>
Merge branch 'obsd-master'
Sync from OpenBSD.
cfg.c | 32 +++++++++++++++++---------------
cmd-string.c | 53 +++++++++++++++++++++++++++--------------------------
screen-write.c | 13 +++++++++++--
server.c | 2 +-
tmux.h | 2 +-
5 files changed, 57 insertions(+), 45 deletions(-)
commit 3fa4f691e32482b2d07d16be84b6e22657f9c7dd
Author: Nicholas Marriott <[email protected]>
Commit: Nicholas Marriott <[email protected]>
Handle resetting 256-colours properly when parsing #[default],
#[fg=default] and #[bg=default] styles.
---
screen-write.c | 13 +++++++++++--
1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/screen-write.c b/screen-write.c
index ce9411b..ec7d741 100644
--- a/screen-write.c
+++ b/screen-write.c
@@ -324,6 +324,9 @@ screen_write_parsestyle(
fg = defgc->fg;
bg = defgc->bg;
attr = defgc->attr;
+ flags &= ~(GRID_FLAG_FG256|GRID_FLAG_BG256);
+ flags |=
+ defgc->flags & (GRID_FLAG_FG256|GRID_FLAG_BG256);
} else if (end > 3 && strncasecmp(tmp + 1, "g=", 2) == 0) {
if ((val = colour_fromstring(tmp + 3)) == -1)
return;
@@ -335,8 +338,11 @@ screen_write_parsestyle(
} else
flags &= ~GRID_FLAG_FG256;
fg = val;
- } else
+ } else {
fg = defgc->fg;
+ flags &= ~GRID_FLAG_FG256;
+ flags |= defgc->flags & GRID_FLAG_FG256;
+ }
} else if (*in == 'b' || *in == 'B') {
if (val != 8) {
if (val & 0x100) {
@@ -345,8 +351,11 @@ screen_write_parsestyle(
} else
flags &= ~GRID_FLAG_BG256;
bg = val;
- } else
+ } else {
bg = defgc->bg;
+ flags &= ~GRID_FLAG_BG256;
+ flags |= defgc->flags & GRID_FLAG_BG256;
+ }
} else
return;
} else if (end > 2 && strncasecmp(tmp, "no", 2) == 0) {
commit 8600fe054bd5db89f8e5758d657018f111be0610
Author: Nicholas Marriott <[email protected]>
Commit: Nicholas Marriott <[email protected]>
Use strlcat not strncat in load_cfg and some other trivial tidying from
Tiago Cunha.
---
cfg.c | 28 +++++++++++++++-------------
1 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/cfg.c b/cfg.c
index b64a4d6..5b9ef76 100644
--- a/cfg.c
+++ b/cfg.c
@@ -79,7 +79,7 @@ load_cfg(const char *path, struct cmd_ctx *ctxin, struct
causelist *causes)
FILE *f;
u_int n;
char *buf, *line, *cause;
- size_t len;
+ size_t len, newlen;
struct cmd_list *cmdlist;
struct cmd_ctx ctx;
enum cmd_retval retval;
@@ -88,31 +88,35 @@ load_cfg(const char *path, struct cmd_ctx *ctxin, struct
causelist *causes)
cfg_add_cause(causes, "%s: %s", path, strerror(errno));
return (CMD_RETURN_ERROR);
}
- n = 0;
cfg_references++;
+ n = 0;
line = NULL;
retval = CMD_RETURN_NORMAL;
while ((buf = fgetln(f, &len))) {
if (buf[len - 1] == '\n')
len--;
- if (line != NULL)
- line = xrealloc(line, 1, strlen(line) + len + 1);
- else {
- line = xmalloc(len + 1);
+ /* Current line is the continuation of the previous one. */
+ if (line != NULL) {
+ newlen = strlen(line) + len + 1;
+ line = xrealloc(line, 1, newlen);
+ } else {
+ newlen = len + 1;
+ line = xmalloc(newlen);
*line = '\0';
}
- /* Append buffer to line. strncat will terminate. */
- strncat(line, buf, len);
+ /* Append current line to the previous. */
+ strlcat(line, buf, newlen);
n++;
/* Continuation: get next line? */
len = strlen(line);
if (len > 0 && line[len - 1] == '\\') {
line[len - 1] = '\0';
+
/* Ignore escaped backslash at EOL. */
if (len > 1 && line[len - 2] != '\\')
continue;
@@ -127,11 +131,10 @@ load_cfg(const char *path, struct cmd_ctx *ctxin, struct
causelist *causes)
cfg_add_cause(causes, "%s: %u: %s", path, n, cause);
free(cause);
continue;
- } else
- free(buf);
+ }
+ free(buf);
if (cmdlist == NULL)
continue;
- cfg_cause = NULL;
if (ctxin == NULL) {
ctx.msgdata = NULL;
@@ -162,8 +165,7 @@ load_cfg(const char *path, struct cmd_ctx *ctxin, struct
causelist *causes)
}
cmd_list_free(cmdlist);
if (cfg_cause != NULL) {
- cfg_add_cause(
- causes, "%s: %d: %s", path, n, cfg_cause);
+ cfg_add_cause(causes, "%s: %d: %s", path, n, cfg_cause);
free(cfg_cause);
}
}
commit 8378be03d1dd260fda325c15fb047da8ddd12c1c
Author: Nicholas Marriott <[email protected]>
Commit: Nicholas Marriott <[email protected]>
Fix argument order in a log statement.
---
server.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/server.c b/server.c
index bad2227..a3632ad 100644
--- a/server.c
+++ b/server.c
@@ -166,7 +166,7 @@ server_start(int lockfd, char *lockfile)
load_cfg(SYSTEM_CFG, NULL, &cfg_causes);
else if (errno != ENOENT) {
cfg_add_cause(
- &cfg_causes, "%s: %s", strerror(errno), SYSTEM_CFG);
+ &cfg_causes, "%s: %s", SYSTEM_CFG, strerror(errno));
}
if (cfg_file != NULL)
load_cfg(cfg_file, NULL, &cfg_causes);
commit 51a1dbfe09f1a8ad543f818c836057c6a56e0938
Author: Nicholas Marriott <[email protected]>
Commit: Nicholas Marriott <[email protected]>
Simplify command string parsing with a helper function from Tiago Cunha.
---
cmd-string.c | 53 +++++++++++++++++++++++++++--------------------------
1 files changed, 27 insertions(+), 26 deletions(-)
diff --git a/cmd-string.c b/cmd-string.c
index 93beb3c..5a27c5b 100644
--- a/cmd-string.c
+++ b/cmd-string.c
@@ -31,11 +31,12 @@
* Parse a command from a string.
*/
-int cmd_string_getc(const char *, size_t *);
-void cmd_string_ungetc(size_t *);
-char *cmd_string_string(const char *, size_t *, char, int);
-char *cmd_string_variable(const char *, size_t *);
-char *cmd_string_expand_tilde(const char *, size_t *);
+int cmd_string_getc(const char *, size_t *);
+void cmd_string_ungetc(size_t *);
+void cmd_string_copy(char **, char *, size_t *);
+char *cmd_string_string(const char *, size_t *, char, int);
+char *cmd_string_variable(const char *, size_t *);
+char *cmd_string_expand_tilde(const char *, size_t *);
int
cmd_string_getc(const char *s, size_t *p)
@@ -84,26 +85,17 @@ cmd_string_parse(const char *s, struct cmd_list **cmdlist,
char **cause)
case '\'':
if ((t = cmd_string_string(s, &p, '\'', 0)) == NULL)
goto error;
- buf = xrealloc(buf, 1, len + strlen(t) + 1);
- strlcpy(buf + len, t, strlen(t) + 1);
- len += strlen(t);
- free(t);
+ cmd_string_copy(&buf, t, &len);
break;
case '"':
if ((t = cmd_string_string(s, &p, '"', 1)) == NULL)
goto error;
- buf = xrealloc(buf, 1, len + strlen(t) + 1);
- strlcpy(buf + len, t, strlen(t) + 1);
- len += strlen(t);
- free(t);
+ cmd_string_copy(&buf, t, &len);
break;
case '$':
if ((t = cmd_string_variable(s, &p)) == NULL)
goto error;
- buf = xrealloc(buf, 1, len + strlen(t) + 1);
- strlcpy(buf + len, t, strlen(t) + 1);
- len += strlen(t);
- free(t);
+ cmd_string_copy(&buf, t, &len);
break;
case '#':
/* Comment: discard rest of line. */
@@ -147,12 +139,10 @@ cmd_string_parse(const char *s, struct cmd_list
**cmdlist, char **cause)
goto out;
case '~':
if (buf == NULL) {
- if ((t = cmd_string_expand_tilde(s, &p)) ==
NULL)
+ t = cmd_string_expand_tilde(s, &p);
+ if (t == NULL)
goto error;
- buf = xrealloc(buf, 1, len + strlen(t) + 1);
- strlcpy(buf + len, t, strlen(t) + 1);
- len += strlen(t);
- free(t);
+ cmd_string_copy(&buf, t, &len);
break;
}
/* FALLTHROUGH */
@@ -181,6 +171,20 @@ out:
return (rval);
}
+void
+cmd_string_copy(char **dst, char *src, size_t *len)
+{
+ size_t srclen;
+
+ srclen = strlen(src);
+
+ *dst = xrealloc(*dst, 1, *len + srclen + 1);
+ strlcpy(*dst + *len, src, srclen + 1);
+
+ *len += srclen;
+ free(src);
+}
+
char *
cmd_string_string(const char *s, size_t *p, char endch, int esc)
{
@@ -220,10 +224,7 @@ cmd_string_string(const char *s, size_t *p, char endch,
int esc)
break;
if ((t = cmd_string_variable(s, p)) == NULL)
goto error;
- buf = xrealloc(buf, 1, len + strlen(t) + 1);
- strlcpy(buf + len, t, strlen(t) + 1);
- len += strlen(t);
- free(t);
+ cmd_string_copy(&buf, t, &len);
continue;
}
commit 8264e92b3797cda37cc6610ddc26138ba46e2832
Author: Nicholas Marriott <[email protected]>
Commit: Nicholas Marriott <[email protected]>
Fix return value of load_cfg, from Thomas Adam.
---
cfg.c | 4 ++--
tmux.h | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/cfg.c b/cfg.c
index 3da6ea4..b64a4d6 100644
--- a/cfg.c
+++ b/cfg.c
@@ -73,7 +73,7 @@ cfg_add_cause(struct causelist *causes, const char *fmt, ...)
* Load configuration file. Returns -1 for an error with a list of messages in
* causes. Note that causes must be initialised by the caller!
*/
-int
+enum cmd_retval
load_cfg(const char *path, struct cmd_ctx *ctxin, struct causelist *causes)
{
FILE *f;
@@ -86,7 +86,7 @@ load_cfg(const char *path, struct cmd_ctx *ctxin, struct
causelist *causes)
if ((f = fopen(path, "rb")) == NULL) {
cfg_add_cause(causes, "%s: %s", path, strerror(errno));
- return (-1);
+ return (CMD_RETURN_ERROR);
}
n = 0;
diff --git a/tmux.h b/tmux.h
index 981d4f2..429f2d7 100644
--- a/tmux.h
+++ b/tmux.h
@@ -1520,7 +1520,7 @@ extern int cfg_finished;
extern int cfg_references;
extern struct causelist cfg_causes;
void printflike2 cfg_add_cause(struct causelist *, const char *, ...);
-int load_cfg(const char *, struct cmd_ctx *, struct causelist *);
+enum cmd_retval load_cfg(const char *, struct cmd_ctx *, struct
causelist *);
void show_cfg_causes(struct session *);
/* format.c */
-----------------------------------------------------------------------
Summary of changes:
cfg.c | 32 +++++++++++++++++---------------
cmd-string.c | 53 +++++++++++++++++++++++++++--------------------------
screen-write.c | 13 +++++++++++--
server.c | 2 +-
tmux.h | 2 +-
5 files changed, 57 insertions(+), 45 deletions(-)
hooks/post-receive
--
tmux
------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
tmux-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tmux-cvs