From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
linux-kernel@vger.kernel.org, Jiri Olsa <jolsa@redhat.com>,
Namhyung Kim <namhyung@kernel.org>
Subject: Re: [PATCH v3 14/17] perf: Remove subcmd dependencies on strbuf
Date: Mon, 14 Dec 2015 12:44:21 -0300 [thread overview]
Message-ID: <20151214154421.GO6843@kernel.org> (raw)
In-Reply-To: <3454b82dcc683d8ae581ca123de47578ee5a5e3c.1449965119.git.jpoimboe@redhat.com>
Em Sun, Dec 13, 2015 at 10:18:14PM -0600, Josh Poimboeuf escreveu:
> Introduce and use new astrcat() and astrcatf() functions which replace
> the strbuf functionality for subcmd.
<SNIP>
> diff --git a/tools/perf/util/subcmd-util.h b/tools/perf/util/subcmd-util.h
> new file mode 100644
> index 0000000..98fb9f9
> --- /dev/null
> +++ b/tools/perf/util/subcmd-util.h
> @@ -0,0 +1,24 @@
> +#ifndef __PERF_SUBCMD_UTIL_H
> +#define __PERF_SUBCMD_UTIL_H
> +
> +#include <stdio.h>
> +
> +#define astrcatf(out, fmt, ...) \
> +({ \
> + char *tmp = *(out); \
> + if (asprintf((out), "%s" fmt, tmp ?: "", ## __VA_ARGS__) == -1) \
> + die("asprintf failed"); \
> + free(tmp); \
> +})
Hey, don't add die() calls, please.
> +
> +static inline void astrcat(char **out, const char *add)
> +{
> + char *tmp = *out;
> +
> + if (asprintf(out, "%s%s", tmp ?: "", add) == -1)
> + die("asprintf failed");
> +
> + free(tmp);
Ditto.
And I think that this should go into tools/include/string.h and
tools/lib/string.c, no?
We should try to look at the kernel and try to follow naming, semantics,
etc as much as possible. The kernel doesn't have a astrcat, just
kasprintf() (that is in linux/kernel.h, perhaps because in userland
asprintf is in stdio.h, not in string.h) , wonder how something like
astrcat is done there... Doing some research now.
- Arnaldo
> +}
> +
> +#endif /* __PERF_SUBCMD_UTIL_H */
> --
> 2.4.3
next prev parent reply other threads:[~2015-12-14 15:44 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-14 4:18 [PATCH v3 00/17] perf tools: Move perf subcommand framework to a library Josh Poimboeuf
2015-12-14 4:18 ` [PATCH v3 01/17] perf build: Remove unnecessary line in Makefile.feature Josh Poimboeuf
2015-12-14 10:05 ` Jiri Olsa
2015-12-14 15:16 ` Arnaldo Carvalho de Melo
2015-12-18 8:47 ` [tip:perf/core] " tip-bot for Josh Poimboeuf
2015-12-14 4:18 ` [PATCH v3 02/17] tools build: Fix feature Makefile dependencies for 'O=' Josh Poimboeuf
2015-12-14 10:08 ` Jiri Olsa
2015-12-14 14:02 ` Josh Poimboeuf
2015-12-14 14:29 ` [PATCH v3.1 " Josh Poimboeuf
2015-12-14 15:16 ` Arnaldo Carvalho de Melo
2015-12-14 15:29 ` Jiri Olsa
2015-12-14 15:38 ` Josh Poimboeuf
2015-12-14 15:55 ` Jiri Olsa
2015-12-14 16:03 ` Josh Poimboeuf
2015-12-14 18:32 ` [PATCH v3.2] tools build: Fix feature Makefile issues with 'O=' Josh Poimboeuf
2015-12-14 4:18 ` [PATCH v3 03/17] perf test: Add Build file to dependencies for llvm-src-*.c Josh Poimboeuf
2015-12-14 10:10 ` Jiri Olsa
2015-12-14 15:17 ` Arnaldo Carvalho de Melo
2015-12-18 8:47 ` [tip:perf/core] " tip-bot for Josh Poimboeuf
2015-12-14 4:18 ` [PATCH v3 04/17] perf test: remove tarpkg at end of test Josh Poimboeuf
2015-12-18 8:48 ` [tip:perf/core] perf test: Remove " tip-bot for Josh Poimboeuf
2015-12-14 4:18 ` [PATCH v3 05/17] perf build: Fix 'make clean' Josh Poimboeuf
2015-12-14 10:14 ` Jiri Olsa
2015-12-14 15:18 ` Arnaldo Carvalho de Melo
2015-12-18 8:48 ` [tip:perf/core] " tip-bot for Josh Poimboeuf
2015-12-14 4:18 ` [PATCH v3 06/17] perf build: Rename LIB_PATH -> API_PATH Josh Poimboeuf
2015-12-14 10:34 ` Jiri Olsa
2015-12-14 15:19 ` Arnaldo Carvalho de Melo
2015-12-18 8:49 ` [tip:perf/core] " tip-bot for Josh Poimboeuf
2015-12-14 4:18 ` [PATCH v3 07/17] perf: Create pager.h Josh Poimboeuf
2015-12-18 8:49 ` [tip:perf/core] perf tools: " tip-bot for Josh Poimboeuf
2015-12-14 4:18 ` [PATCH v3 08/17] perf: Remove check for unused PERF_PAGER_IN_USE Josh Poimboeuf
2015-12-18 8:49 ` [tip:perf/core] perf tools: " tip-bot for Josh Poimboeuf
2015-12-14 4:18 ` [PATCH v3 09/17] perf: Move help_unknown_cmd() to its own file Josh Poimboeuf
2015-12-18 8:50 ` [tip:perf/core] perf tools: " tip-bot for Josh Poimboeuf
2015-12-14 4:18 ` [PATCH v3 10/17] perf: Provide subcmd configuration at runtime Josh Poimboeuf
2015-12-14 10:33 ` Jiri Olsa
2015-12-14 14:06 ` Josh Poimboeuf
2015-12-14 4:18 ` [PATCH v3 11/17] perf: Remove 'perf' from subcmd function and variable names Josh Poimboeuf
2015-12-14 4:18 ` [PATCH v3 12/17] perf: Convert parse-options.c internal functions to static Josh Poimboeuf
2015-12-18 8:50 ` [tip:perf/core] perf tools: " tip-bot for Josh Poimboeuf
2015-12-14 4:18 ` [PATCH v3 13/17] perf: Document the fact that parse_options*() may exit Josh Poimboeuf
2015-12-14 4:18 ` [PATCH v3 14/17] perf: Remove subcmd dependencies on strbuf Josh Poimboeuf
2015-12-14 10:25 ` Jiri Olsa
2015-12-14 14:11 ` Josh Poimboeuf
2015-12-14 15:44 ` Arnaldo Carvalho de Melo [this message]
2015-12-14 16:05 ` Josh Poimboeuf
2015-12-14 17:50 ` Arnaldo Carvalho de Melo
2015-12-14 18:04 ` Josh Poimboeuf
2015-12-14 4:18 ` [PATCH v3 15/17] perf: Finalize subcmd independence Josh Poimboeuf
2015-12-14 10:32 ` Jiri Olsa
2015-12-14 14:13 ` Josh Poimboeuf
2015-12-14 15:27 ` Jiri Olsa
2015-12-14 15:51 ` Arnaldo Carvalho de Melo
2015-12-14 4:18 ` [PATCH v3 16/17] perf subcmd: Create subcmd library Josh Poimboeuf
2015-12-14 4:18 ` [PATCH v3 17/17] tools subcmd: Rename subcmd header include guards Josh Poimboeuf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20151214154421.GO6843@kernel.org \
--to=acme@kernel.org \
--cc=jolsa@redhat.com \
--cc=jpoimboe@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox