Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 25c6bb76 authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Linus Torvalds
Browse files

seq_file: reuse string_escape_str()



strint_escape_str() escapes input string by given criteria.  In case of
seq_escape() the criteria is to convert some characters to their octal
representation.

Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 8b91a318
Loading
Loading
Loading
Loading
+6 −19
Original line number Original line Diff line number Diff line
@@ -13,6 +13,7 @@
#include <linux/cred.h>
#include <linux/cred.h>
#include <linux/mm.h>
#include <linux/mm.h>
#include <linux/printk.h>
#include <linux/printk.h>
#include <linux/string_helpers.h>


#include <asm/uaccess.h>
#include <asm/uaccess.h>
#include <asm/page.h>
#include <asm/page.h>
@@ -377,26 +378,12 @@ EXPORT_SYMBOL(seq_release);
 */
 */
void seq_escape(struct seq_file *m, const char *s, const char *esc)
void seq_escape(struct seq_file *m, const char *s, const char *esc)
{
{
	char *end = m->buf + m->size;
	char *buf;
	char *p;
	size_t size = seq_get_buf(m, &buf);
	char c;
	int ret;


	for (p = m->buf + m->count; (c = *s) != '\0' && p < end; s++) {
	ret = string_escape_str(s, buf, size, ESCAPE_OCTAL, esc);
		if (!strchr(esc, c)) {
	seq_commit(m, ret < size ? ret : -1);
			*p++ = c;
			continue;
		}
		if (p + 3 < end) {
			*p++ = '\\';
			*p++ = '0' + ((c & 0300) >> 6);
			*p++ = '0' + ((c & 070) >> 3);
			*p++ = '0' + (c & 07);
			continue;
		}
		seq_set_overflow(m);
		return;
	}
	m->count = p - m->buf;
}
}
EXPORT_SYMBOL(seq_escape);
EXPORT_SYMBOL(seq_escape);