Use vis(3) instead of handrolled function.

This commit is contained in:
Nicholas Marriott 2009-06-25 15:50:03 +00:00
parent 7597cb6834
commit dff949747c
2 changed files with 5 additions and 24 deletions

View File

@ -1,4 +1,4 @@
/* $Id: cmd-server-info.c,v 1.17 2009-05-04 17:58:26 nicm Exp $ */
/* $OpenBSD: cmd-server-info.c,v 1.2 2009/06/03 19:37:27 nicm Exp $ */
/*
* Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
@ -23,6 +23,7 @@
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <vis.h>
#include "tmux.h"
@ -157,8 +158,8 @@ cmd_server_info_exec(unused struct cmd *self, struct cmd_ctx *ctx)
ent->code, ent->name);
break;
case TTYCODE_STRING:
clean_string(
code->value.string, out, sizeof out);
strnvis(out, code->value.string, sizeof out,
VIS_OCTAL|VIS_TAB|VIS_NL);
ctx->print(ctx, "%2u: %s: (string) %s",
ent->code, ent->name, out);
break;

22
util.c
View File

@ -1,4 +1,4 @@
/* $Id: util.c,v 1.5 2009-04-30 16:24:20 nicm Exp $ */
/* $OpenBSD: util.c,v 1.2 2009/06/03 19:37:27 nicm Exp $ */
/*
* Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
@ -50,23 +50,3 @@ section_string(char *buf, size_t len, size_t sectoff, size_t sectlen)
(int) (last - first), buf + first, last == len ? "" : "...");
return (s);
}
/* Clean string of invisible characters. */
void
clean_string(const char *in, char *buf, size_t len)
{
const u_char *cp;
size_t off;
off = 0;
for (cp = in; *cp != '\0'; cp++) {
if (off >= len)
break;
if (*cp >= 0x20 && *cp <= 0x7f)
buf[off++] = *cp;
else
off += xsnprintf(buf + off, len - off, "\\%03hho", *cp);
}
if (off < len)
buf[off] = '\0';
}