Date: Fri, 23 May 2014 21:36:22 GMT From: zkorchev@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r268520 - soc2014/zkorchev/coreutils-8.22/src Message-ID: <201405232136.s4NLaMiO007472@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: zkorchev Date: Fri May 23 21:36:22 2014 New Revision: 268520 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=268520 Log: compilation simplified; format is now specified when calling sol_init() Modified: soc2014/zkorchev/coreutils-8.22/src/compile soc2014/zkorchev/coreutils-8.22/src/sol.c soc2014/zkorchev/coreutils-8.22/src/sol.h soc2014/zkorchev/coreutils-8.22/src/sol_ls.c Modified: soc2014/zkorchev/coreutils-8.22/src/compile ============================================================================== --- soc2014/zkorchev/coreutils-8.22/src/compile Fri May 23 21:28:41 2014 (r268519) +++ soc2014/zkorchev/coreutils-8.22/src/compile Fri May 23 21:36:22 2014 (r268520) @@ -1,9 +1,9 @@ -all: sol.o sol_ls +all: sol_ls sol.o: cc -I/usr/local/include -c sol.c -o sol.o -sol_ls: +sol_ls: sol.o sol_ls.o cc version.o ls-ls.o sol_ls.o sol.o ../lib/libcoreutils.a -o sol_ls -L/usr/local/lib -lyajl -lintl clean: Modified: soc2014/zkorchev/coreutils-8.22/src/sol.c ============================================================================== --- soc2014/zkorchev/coreutils-8.22/src/sol.c Fri May 23 21:28:41 2014 (r268519) +++ soc2014/zkorchev/coreutils-8.22/src/sol.c Fri May 23 21:36:22 2014 (r268520) @@ -6,17 +6,22 @@ struct sol_data { - yajl_gen g; + enum sol_format f; + union + { + yajl_gen g; + } ctx; }; -static yajl_gen g; +static struct sol_data sol; // TODO don't use static variables // TODO error checks -void sol_init(void) +void sol_init(enum sol_format format) { - g = yajl_gen_alloc(0); + sol.f = format; + sol.ctx.g = yajl_gen_alloc(0); } void sol_term(void) @@ -24,50 +29,55 @@ const char *buffer; size_t length; - yajl_gen_get_buf(g, (const unsigned char **)&buffer, &length); - write(1, buffer, length); - write(1, "\n", 1); // TODO change this - yajl_gen_clear(g); + switch (sol.f) + { + case SOL_JSON: + yajl_gen_get_buf(sol.ctx.g, (const unsigned char **)&buffer, &length); + write(1, buffer, length); + write(1, "\n", 1); // TODO change this + yajl_gen_clear(sol.ctx.g); + break; + } - yajl_gen_free(g); + yajl_gen_free(sol.ctx.g); } void sol_array_start(void) { - yajl_gen_array_open(g); + yajl_gen_array_open(sol.ctx.g); } void sol_array_end(void) { - yajl_gen_array_close(g); + yajl_gen_array_close(sol.ctx.g); } void sol_string(const char *data, size_t length) { // TODO handle special characters - yajl_gen_string(g, (const unsigned char *)data, length); + yajl_gen_string(sol.ctx.g, (const unsigned char *)data, length); } void sol_map_start(void) { - yajl_gen_map_open(g); + yajl_gen_map_open(sol.ctx.g); } void sol_map_end(void) { - yajl_gen_map_close(g); + yajl_gen_map_close(sol.ctx.g); } void sol_pair_string(const char *key_data, size_t key_length, const char *value_data, size_t value_length) { // TODO handle special characters - yajl_gen_string(g, (const unsigned char *)key_data, key_length); - yajl_gen_string(g, (const unsigned char *)value_data, value_length); + yajl_gen_string(sol.ctx.g, (const unsigned char *)key_data, key_length); + yajl_gen_string(sol.ctx.g, (const unsigned char *)value_data, value_length); } void sol_pair_integer(const char *key_data, size_t key_length, long long value) { // TODO handle special characters - yajl_gen_string(g, (const unsigned char *)key_data, key_length); - yajl_gen_integer(g, value); + yajl_gen_string(sol.ctx.g, (const unsigned char *)key_data, key_length); + yajl_gen_integer(sol.ctx.g, value); } Modified: soc2014/zkorchev/coreutils-8.22/src/sol.h ============================================================================== --- soc2014/zkorchev/coreutils-8.22/src/sol.h Fri May 23 21:28:41 2014 (r268519) +++ soc2014/zkorchev/coreutils-8.22/src/sol.h Fri May 23 21:36:22 2014 (r268520) @@ -1,4 +1,9 @@ -void sol_init(void); +enum sol_format +{ + SOL_JSON = 1, +}; + +void sol_init(enum sol_format format); void sol_term(void); void sol_array_start(void); Modified: soc2014/zkorchev/coreutils-8.22/src/sol_ls.c ============================================================================== --- soc2014/zkorchev/coreutils-8.22/src/sol_ls.c Fri May 23 21:28:41 2014 (r268519) +++ soc2014/zkorchev/coreutils-8.22/src/sol_ls.c Fri May 23 21:36:22 2014 (r268520) @@ -1424,7 +1424,7 @@ } #if defined(SOL_ON) - sol_init(); + sol_init(SOL_JSON); sol_array_start(); #endif @@ -2677,6 +2677,7 @@ if (recursive) extract_dirs_from_files (name, false); +#if !defined(SOL_ON) if (format == long_format || print_block_size) { const char *p; @@ -2691,6 +2692,7 @@ DIRED_FPUTS (p, stdout, strlen (p)); DIRED_PUTCHAR ('\n'); } +#endif if (cwd_n_used) print_current_files (); @@ -3831,13 +3833,11 @@ static void format_owner(unsigned long id, const char *id_data, size_t id_length, const char *name_data, size_t name_length) { - if (numeric_ids) + const char *name; + if (numeric_ids || !(name = getuser(id))) sol_pair_integer(id_data, id_length, id); else - { - const char *name = getuser(id); - sol_pair_string(name_data, name_length, name, strlen(name)); - } + sol_pair_string(name_data, name_length, name, strlen(name)); } /* Print information about F in long format. */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201405232136.s4NLaMiO007472>