From 1d3acd5d550191c2c4dab3d2384df1dfa7b072dd Mon Sep 17 00:00:00 2001 From: Colin Patrick McCabe Date: Mon, 1 Aug 2011 11:14:55 -0700 Subject: [PATCH] Formatter.cc: use common/escape.h * Rename rgw/rgw_escape.h to common/escape.h * Use escape.h in common/Formatter.cc Signed-off-by: Colin McCabe --- src/Makefile.am | 14 +++--- src/common/Formatter.cc | 61 ++++++++++------------- src/common/Formatter.h | 5 +- src/{rgw/rgw_escape.c => common/escape.c} | 2 +- src/{rgw/rgw_escape.h => common/escape.h} | 0 src/os/FileStore.cc | 2 - src/rgw/rgw_formats.cc | 20 ++++++-- src/test/{rgw_escape.cc => escape.cc} | 2 +- 8 files changed, 55 insertions(+), 51 deletions(-) rename src/{rgw/rgw_escape.c => common/escape.c} (99%) rename src/{rgw/rgw_escape.h => common/escape.h} (100%) rename src/test/{rgw_escape.cc => escape.cc} (99%) diff --git a/src/Makefile.am b/src/Makefile.am index e269d6dab867..06431e36b86b 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -320,7 +320,6 @@ my_radosgw_src = \ rgw/rgw_formats.cc \ rgw/rgw_log.cc \ rgw/rgw_multi.cc \ - rgw/rgw_escape.c \ rgw/rgw_env.cc my_radosgw_ldadd = \ @@ -503,11 +502,11 @@ unittest_mime_LDADD = ${UNITTEST_LDADD} $(LIBGLOBAL_LDA) unittest_mime_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS} check_PROGRAMS += unittest_mime -unittest_rgw_escape_SOURCES = test/rgw_escape.cc rgw/rgw_escape.c -unittest_rgw_escape_LDFLAGS = -pthread ${AM_LDFLAGS} -unittest_rgw_escape_LDADD = ${UNITTEST_LDADD} $(LIBGLOBAL_LDA) -unittest_rgw_escape_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS} -check_PROGRAMS += unittest_rgw_escape +unittest_escape_SOURCES = test/escape.cc +unittest_escape_LDFLAGS = -pthread ${AM_LDFLAGS} +unittest_escape_LDADD = ${UNITTEST_LDADD} $(LIBGLOBAL_LDA) +unittest_escape_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS} +check_PROGRAMS += unittest_escape unittest_strtol_SOURCES = test/strtol.cc unittest_strtol_LDFLAGS = -pthread ${AM_LDFLAGS} @@ -705,6 +704,7 @@ libcommon_files = \ common/perf_counters.cc \ common/admin_socket.cc \ common/admin_socket_client.cc \ + common/escape.c \ common/Clock.cc \ common/Timer.cc \ common/Finisher.cc \ @@ -894,6 +894,7 @@ noinst_HEADERS = \ common/compiler_extensions.h\ common/debug.h\ common/dout.h\ + common/escape.h\ common/version.h\ common/hex.h\ common/entity_name.h\ @@ -1217,7 +1218,6 @@ noinst_HEADERS = \ rgw/rgw_rest_os.h\ rgw/rgw_rest_s3.h\ rgw/rgw_user.h\ - rgw/rgw_escape.h\ sample.ceph.conf\ tools/common.h\ tools/gui.h\ diff --git a/src/common/Formatter.cc b/src/common/Formatter.cc index 44f659667d33..5aaa63d7cf95 100644 --- a/src/common/Formatter.cc +++ b/src/common/Formatter.cc @@ -1,14 +1,28 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab +/* + * Ceph - scalable distributed file system + * + * Copyright (C) 2011 New Dream Network + * + * This is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software + * Foundation. See file COPYING. + * + */ #define LARGE_SIZE 8192 -#include -#include -#include - -#include - #include "assert.h" #include "Formatter.h" +#include "common/escape.h" + +#include +#include +#include +#include +#include // ----------------------- namespace ceph { @@ -52,36 +66,11 @@ void JSONFormatter::print_comma(formatter_stack_entry_d& entry) void JSONFormatter::print_quoted_string(const char *s) { - m_ss << '\"'; - while (*s) { - if (*s == '\\') - m_ss << "\\"; - else if (*s == '\"') - m_ss << "\\\""; - else if (*s < 32) { - // do a few common control characters - switch (*s) { - case '\n': - m_ss << "\\n"; - break; - case '\r': - m_ss << "\\r"; - break; - case '\t': - m_ss << "\\t"; - break; - default: - { - // otherwise... - char s[10]; - sprintf(s, "\\u%04x", (int)*s); - } - } - } else - m_ss << *s; - s++; - } - m_ss << '\"'; + int len = escape_json_attr_len(s); + char *escaped = (char*)malloc(len); + escape_json_attr(s, escaped); + m_ss << '\"' << escaped << '\"'; + free(escaped); } void JSONFormatter::print_name(const char *name) diff --git a/src/common/Formatter.h b/src/common/Formatter.h index 598e86824e9e..fe746370d1b8 100644 --- a/src/common/Formatter.h +++ b/src/common/Formatter.h @@ -1,10 +1,13 @@ #ifndef CEPH_FORMATTER_H #define CEPH_FORMATTER_H +#include +#include +#include #include #include +#include #include -#include namespace ceph { diff --git a/src/rgw/rgw_escape.c b/src/common/escape.c similarity index 99% rename from src/rgw/rgw_escape.c rename to src/common/escape.c index aa19720f43e7..cb4076be151f 100644 --- a/src/rgw/rgw_escape.c +++ b/src/common/escape.c @@ -12,7 +12,7 @@ * */ -#include "rgw/rgw_escape.h" +#include "common/escape.h" #include #include diff --git a/src/rgw/rgw_escape.h b/src/common/escape.h similarity index 100% rename from src/rgw/rgw_escape.h rename to src/common/escape.h diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index d3ddfa26ba5f..005fa359b766 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -12,8 +12,6 @@ * */ - - #include "FileStore.h" #include "common/BackTrace.h" #include "include/types.h" diff --git a/src/rgw/rgw_formats.cc b/src/rgw/rgw_formats.cc index 76befad77482..276425cd8e72 100644 --- a/src/rgw/rgw_formats.cc +++ b/src/rgw/rgw_formats.cc @@ -1,6 +1,20 @@ -#include "rgw_escape.h" -#include "rgw_common.h" -#include "rgw_formats.h" +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab +/* + * Ceph - scalable distributed file system + * + * Copyright (C) 2011 New Dream Network + * + * This is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software + * Foundation. See file COPYING. + * + */ + +#include "common/escape.h" +#include "rgw/rgw_common.h" +#include "rgw/rgw_formats.h" /* Plain */ void RGWFormatter_Plain::formatter_init() diff --git a/src/test/rgw_escape.cc b/src/test/escape.cc similarity index 99% rename from src/test/rgw_escape.cc rename to src/test/escape.cc index 16eb26188f11..f494e9a1866c 100644 --- a/src/test/rgw_escape.cc +++ b/src/test/escape.cc @@ -11,7 +11,7 @@ * Foundation. See file COPYING. * */ -#include "rgw/rgw_escape.h" +#include "common/escape.h" #include "gtest/gtest.h" #include -- 2.47.3