<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/help.c, branch main</title>
<subtitle>Fork of git SCM with my patches.</subtitle>
<id>http://git.kilabit.info/git/atom?h=main</id>
<link rel='self' href='http://git.kilabit.info/git/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/'/>
<updated>2026-03-10T21:23:24Z</updated>
<entry>
<title>Merge branch 'jh/alias-i18n-fixes'</title>
<updated>2026-03-10T21:23:24Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-03-10T21:23:23Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=42afcb954bd4a69deba0a7b9823a9307b4223136'/>
<id>urn:sha1:42afcb954bd4a69deba0a7b9823a9307b4223136</id>
<content type='text'>
Further update to the i18n alias support to avoid regressions.

* jh/alias-i18n-fixes:
  doc: fix list continuation in alias.adoc
  git, help: fix memory leaks in alias listing
  alias: treat empty subsection [alias ""] as plain [alias]
  doc: fix list continuation in alias subsection example
</content>
</entry>
<entry>
<title>Merge branch 'jh/alias-i18n'</title>
<updated>2026-02-27T23:11:53Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-02-27T23:11:53Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=c0d0b8daedd336677ed30bfb6bb7cdc6c47a468a'/>
<id>urn:sha1:c0d0b8daedd336677ed30bfb6bb7cdc6c47a468a</id>
<content type='text'>
Extend the alias configuration syntax to allow aliases using
characters outside ASCII alphanumeric (plus '-').

* jh/alias-i18n:
  completion: fix zsh alias listing for subsection aliases
  alias: support non-alphanumeric names via subsection syntax
  alias: prepare for subsection aliases
  help: use list_aliases() for alias listing
</content>
</entry>
<entry>
<title>git, help: fix memory leaks in alias listing</title>
<updated>2026-02-26T21:07:24Z</updated>
<author>
<name>Jonatan Holmgren</name>
<email>jonatan@jontes.page</email>
</author>
<published>2026-02-26T20:53:28Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=cdef6255095251500cc7d08d304072e1e2fa0bbd'/>
<id>urn:sha1:cdef6255095251500cc7d08d304072e1e2fa0bbd</id>
<content type='text'>
The list_aliases() function sets the util pointer of each list item to
a heap-allocated copy of the alias command value.  Two callers failed
to free these util pointers:

 - list_cmds() in git.c collects a string list with STRING_LIST_INIT_DUP
   and clears it with string_list_clear(&amp;list, 0), which frees the
   duplicated strings (strdup_strings=1) but not the util pointers.
   Pass free_util=1 to free them.

 - list_cmds_by_config() in help.c calls string_list_sort_u(list, 0) to
   deduplicate the list before processing completion.commands overrides.
   When duplicate entries are removed, the util pointer of each discarded
   item is leaked because free_util=0.  Pass free_util=1 to free them.

Reported-by: Jacob Keller &lt;jacob.e.keller@intel.com&gt;
Signed-off-by: Jonatan Holmgren &lt;jonatan@jontes.page&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>alias: support non-alphanumeric names via subsection syntax</title>
<updated>2026-02-19T18:13:20Z</updated>
<author>
<name>Jonatan Holmgren</name>
<email>jonatan@jontes.page</email>
</author>
<published>2026-02-18T21:57:36Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=ac1f12a9de4b79b176a08f524fecdb092ff00e74'/>
<id>urn:sha1:ac1f12a9de4b79b176a08f524fecdb092ff00e74</id>
<content type='text'>
Git alias names are limited to ASCII alphanumeric characters and
dashes because aliases are implemented as config variable names.
This prevents aliases being created in languages using characters outside that range.

Add support for arbitrary alias names by using config subsections:

    [alias "förgrena"]
        command = branch

The subsection name is matched as-is (case-sensitive byte comparison),
while the existing definition without a subsection (e.g.,
"[alias] co = checkout") remains case-insensitive for backward
compatibility. This uses existing config infrastructure since
subsections already support arbitrary bytes, and avoids introducing
Unicode normalization.

Also teach the help subsystem about the new syntax so that "git help
-a" properly lists subsection aliases and the autocorrect feature can
suggest them. Use utf8_strwidth() instead of strlen() for column
alignment so that non-ASCII alias names display correctly.

Suggested-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Jonatan Holmgren &lt;jonatan@jontes.page&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>alias: prepare for subsection aliases</title>
<updated>2026-02-19T18:13:20Z</updated>
<author>
<name>Jonatan Holmgren</name>
<email>jonatan@jontes.page</email>
</author>
<published>2026-02-18T21:57:35Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=2ad33ea6b5c0a5670a757c9b594cc07321324e80'/>
<id>urn:sha1:2ad33ea6b5c0a5670a757c9b594cc07321324e80</id>
<content type='text'>
Switch git_unknown_cmd_config() from skip_prefix() to
parse_config_key() for alias parsing. This properly handles the
three-level config key structure and prepares for the new
alias.*.command subsection syntax in the next commit.

This is a compatibility break: the alias configuration parser used
to be overly permissive and accepted "alias.&lt;subsection&gt;.&lt;key&gt;" as
defining an alias "&lt;subsection&gt;.&lt;key&gt;". With this change,
alias.&lt;subsection&gt;.&lt;key&gt; entries are silently ignored (unless &lt;key&gt;
is "command", which will be given meaning in the next commit).

This behavior was arguably a bug, since config subsections were never
intended to work this way for aliases, and aliases with dots in their
names have never been documented or intentionally supported.

Signed-off-by: Jonatan Holmgren &lt;jonatan@jontes.page&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>help: use list_aliases() for alias listing</title>
<updated>2026-02-19T18:13:20Z</updated>
<author>
<name>Jonatan Holmgren</name>
<email>jonatan@jontes.page</email>
</author>
<published>2026-02-18T21:57:34Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=3f0cdfa87907096ed7c6caa33fbf360e0e19844c'/>
<id>urn:sha1:3f0cdfa87907096ed7c6caa33fbf360e0e19844c</id>
<content type='text'>
help.c has its own get_alias() config callback that duplicates the
parsing logic in alias.c. Consolidate by teaching list_aliases() to
also store the alias values (via the string_list util field), then
use it in list_all_cmds_help_aliases() instead of the private
callback.

This preserves the existing error checking for value-less alias
definitions by checking in alias.c rather than help.c.

No functional change intended.

Signed-off-by: Jonatan Holmgren &lt;jonatan@jontes.page&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'cf/c23-const-preserving-strchr-updates-0'</title>
<updated>2026-02-13T21:39:25Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-02-13T21:39:24Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=7855effc952777f2fac284e4461743cf5aa20ee6'/>
<id>urn:sha1:7855effc952777f2fac284e4461743cf5aa20ee6</id>
<content type='text'>
ISO C23 redefines strchr and friends that tradiotionally took
a const pointer and returned a non-const pointer derived from it to
preserve constness (i.e., if you ask for a substring in a const
string, you get a const pointer to the substring).  Update code
paths that used non-const pointer to receive their results that did
not have to be non-const to adjust.

* cf/c23-const-preserving-strchr-updates-0:
  gpg-interface: remove an unnecessary NULL initialization
  global: constify some pointers that are not written to
</content>
</entry>
<entry>
<title>global: constify some pointers that are not written to</title>
<updated>2026-02-06T01:52:49Z</updated>
<author>
<name>Collin Funk</name>
<email>collin.funk1@gmail.com</email>
</author>
<published>2026-02-06T01:46:09Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=4ac4705afa3ab660e206c2b870bfae2ddb647ffa'/>
<id>urn:sha1:4ac4705afa3ab660e206c2b870bfae2ddb647ffa</id>
<content type='text'>
The recent glibc 2.43 release had the following change listed in its
NEWS file:

    For ISO C23, the functions bsearch, memchr, strchr, strpbrk, strrchr,
    strstr, wcschr, wcspbrk, wcsrchr, wcsstr and wmemchr that return
    pointers into their input arrays now have definitions as macros that
    return a pointer to a const-qualified type when the input argument is
    a pointer to a const-qualified type.

When compiling with GCC 15, which defaults to -std=gnu23, this causes
many warnings like this:

    merge-ort.c: In function ‘apply_directory_rename_modifications’:
    merge-ort.c:2734:36: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
     2734 |                 char *last_slash = strrchr(cur_path, '/');
          |                                    ^~~~~~~

This patch fixes the more obvious ones by making them const when we do
not write to the returned pointer.

Signed-off-by: Collin Funk &lt;collin.funk1@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>string-list: add string_list_sort_u() that mimics "sort -u"</title>
<updated>2026-01-29T17:32:50Z</updated>
<author>
<name>Amisha Chhajed</name>
<email>amishhhaaaa@gmail.com</email>
</author>
<published>2026-01-29T12:12:20Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=2e711acfbdfc0fedf631688d78cde153ba835c93'/>
<id>urn:sha1:2e711acfbdfc0fedf631688d78cde153ba835c93</id>
<content type='text'>
Many callsites of string_list_remove_duplicates() call it
immdediately after calling string_list_sort(), understandably
as the former requires string-list to be sorted, it is clear
that these places are sorting only to remove duplicates and
for no other reason.

Introduce a helper function string_list_sort_u that combines
these two calls that often appear together, to simplify
these callsites. Replace the current calls of those methods with
string_list_sort_u().

Signed-off-by: Amisha Chhajed &lt;amishhhaaaa@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'jx/build-options-gettext'</title>
<updated>2026-01-23T21:34:36Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-01-23T21:34:36Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=3d952821298f8f0e6491745a978baec6a2bb0895'/>
<id>urn:sha1:3d952821298f8f0e6491745a978baec6a2bb0895</id>
<content type='text'>
"git bugreport" and "git version --build-options" learned to
include use of 'gettext' feature, to make it easier to diagnose
problems around l10n.

* jx/build-options-gettext:
  help: report on whether or not gettext is enabled
</content>
</entry>
</feed>
