git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v9 1/9] Add column layout skeleton and git-column

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 16, 2012, 05:38 UTC
Message-ID
<7v3984z16m.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1334314481-14470-2-git-send-email-pclouds@gmail.com>
Nguyễn Thái Ngọc Duy  <pclouds@gmail.com> writes:
Show 13 quoted lines
> +static int column_config(const char *var, const char *value,
> +			 const char *key, unsigned int *colopts)
> +{
> +	if (parse_config(colopts, value))
> +		return error("invalid %s mode %s", key, value);
> +	return 0;
> +}
> +
> +int git_column_config(const char *var, const char *value,
> +		      const char *command, unsigned int *colopts)
> +{
> +	if (!strcmp(var, "column.ui"))
> +		return column_config(var, value, "column.ui", colopts);

I do not think there is anything that reads column.ui from a configuration file (or "git -c column.ui") in this step, but later patches seem to use it from their configuration callback (e.g. git_branch_config()) and at that point you will segfault because you ignore the case where value is NULL.

Show 9 quoted lines
> +	if (command) {
> +		struct strbuf sb = STRBUF_INIT;
> +		int ret = 0;
> +		strbuf_addf(&sb, "column.%s", command);
> +		if (!strcmp(var, sb.buf))
> +			ret = column_config(var, value, sb.buf, colopts);
> +		strbuf_release(&sb);
> +		return ret;
> +	}
This whole thing looks overly wasteful.  How about doing it this way?
	const char *it = skip_prefix(var, "column.");
        if (!it)
		return 0;
	if (!strcmp(it, "ui"))
		parse "ui";
	else if (!strcmp(it, command))
		parse "command";

and make the third parameter to column_config() be without the constant prefix "column."?

Previous: Nguyễn Thái Ngọc DuyNext: Nguyễn Thái Ngọc Duy
Message 3 of 17 in “Column display”
  1. 0/9 Column displayNguyễn Thái Ngọc Duy, Apr 13, 2012
  2. 1/9 Add column layout skeleton and git-columnNguyễn Thái Ngọc Duy, Apr 13, 2012
  3. Junio C HamanoApr 16, 2012
  4. Add column layout skeleton and git-columnNguyễn Thái Ngọc Duy, Apr 16, 2012
  5. Junio C HamanoApr 16, 2012
  6. Add column layout skeleton and git-columnNguyễn Thái Ngọc Duy, Apr 21, 2012
  7. Junio C HamanoApr 21, 2012
  8. Add column layout skeleton and git-columnNguyễn Thái Ngọc Duy, Apr 21, 2012
  9. Junio C HamanoApr 21, 2012
  10. 2/9 Stop starting pager recursivelyNguyễn Thái Ngọc Duy, Apr 13, 2012
  11. 3/9 column: add columnar layoutNguyễn Thái Ngọc Duy, Apr 13, 2012
  12. 4/9 column: add dense layout supportNguyễn Thái Ngọc Duy, Apr 13, 2012
  13. 5/9 help: reuse print_columns() for help -aNguyễn Thái Ngọc Duy, Apr 13, 2012
  14. 6/9 branch: add --columnNguyễn Thái Ngọc Duy, Apr 13, 2012
  15. 7/9 status: add --columnNguyễn Thái Ngọc Duy, Apr 13, 2012
  16. 8/9 column: support piping stdout to external git-column processNguyễn Thái Ngọc Duy, Apr 13, 2012
  17. 9/9 tag: add --columnNguyễn Thái Ngọc Duy, Apr 13, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.