<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/utf8.c, branch v2.1.4</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.1.4</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.1.4'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2014-12-17T19:42:28Z</updated>
<entry>
<title>Sync with v2.0.5</title>
<updated>2014-12-17T19:42:28Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-12-17T19:42:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=58f1d950e373afe35ed8661045914d23e973d067'/>
<id>urn:sha1:58f1d950e373afe35ed8661045914d23e973d067</id>
<content type='text'>
* maint-2.0:
  Git 2.0.5
  Git 1.9.5
  Git 1.8.5.6
  fsck: complain about NTFS ".git" aliases in trees
  read-cache: optionally disallow NTFS .git variants
  path: add is_ntfs_dotgit() helper
  fsck: complain about HFS+ ".git" aliases in trees
  read-cache: optionally disallow HFS+ .git variants
  utf8: add is_hfs_dotgit() helper
  fsck: notice .git case-insensitively
  t1450: refactor ".", "..", and ".git" fsck tests
  verify_dotfile(): reject .git case-insensitively
  read-tree: add tests for confusing paths like ".." and ".git"
  unpack-trees: propagate errors adding entries to the index
</content>
</entry>
<entry>
<title>Sync with v1.9.5</title>
<updated>2014-12-17T19:28:54Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-12-17T19:28:02Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5e519fb8b09378342e23bd8c075cfb4b8e7b0e4f'/>
<id>urn:sha1:5e519fb8b09378342e23bd8c075cfb4b8e7b0e4f</id>
<content type='text'>
* maint-1.9:
  Git 1.9.5
  Git 1.8.5.6
  fsck: complain about NTFS ".git" aliases in trees
  read-cache: optionally disallow NTFS .git variants
  path: add is_ntfs_dotgit() helper
  fsck: complain about HFS+ ".git" aliases in trees
  read-cache: optionally disallow HFS+ .git variants
  utf8: add is_hfs_dotgit() helper
  fsck: notice .git case-insensitively
  t1450: refactor ".", "..", and ".git" fsck tests
  verify_dotfile(): reject .git case-insensitively
  read-tree: add tests for confusing paths like ".." and ".git"
  unpack-trees: propagate errors adding entries to the index
</content>
</entry>
<entry>
<title>Sync with v1.8.5.6</title>
<updated>2014-12-17T19:20:31Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-12-17T19:20:31Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=6898b797218ca1f25818d813318b387d965dc1bb'/>
<id>urn:sha1:6898b797218ca1f25818d813318b387d965dc1bb</id>
<content type='text'>
* maint-1.8.5:
  Git 1.8.5.6
  fsck: complain about NTFS ".git" aliases in trees
  read-cache: optionally disallow NTFS .git variants
  path: add is_ntfs_dotgit() helper
  fsck: complain about HFS+ ".git" aliases in trees
  read-cache: optionally disallow HFS+ .git variants
  utf8: add is_hfs_dotgit() helper
  fsck: notice .git case-insensitively
  t1450: refactor ".", "..", and ".git" fsck tests
  verify_dotfile(): reject .git case-insensitively
  read-tree: add tests for confusing paths like ".." and ".git"
  unpack-trees: propagate errors adding entries to the index
</content>
</entry>
<entry>
<title>utf8: add is_hfs_dotgit() helper</title>
<updated>2014-12-17T19:04:39Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2014-12-15T22:56:59Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=6162a1d323d24fd8cbbb1a6145a91fb849b2568f'/>
<id>urn:sha1:6162a1d323d24fd8cbbb1a6145a91fb849b2568f</id>
<content type='text'>
We do not allow paths with a ".git" component to be added to
the index, as that would mean repository contents could
overwrite our repository files. However, asking "is this
path the same as .git" is not as simple as strcmp() on some
filesystems.

HFS+'s case-folding does more than just fold uppercase into
lowercase (which we already handle with strcasecmp). It may
also skip past certain "ignored" Unicode code points, so
that (for example) ".gi\u200ct" is mapped ot ".git".

The full list of folds can be found in the tables at:

  https://www.opensource.apple.com/source/xnu/xnu-1504.15.3/bsd/hfs/hfscommon/Unicode/UCStringCompareData.h

Implementing a full "is this path the same as that path"
comparison would require us importing the whole set of
tables.  However, what we want to do is much simpler: we
only care about checking ".git". We know that 'G' is the
only thing that folds to 'g', and so on, so we really only
need to deal with the set of ignored code points, which is
much smaller.

Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'tb/unicode-6.3-zero-width'</title>
<updated>2014-06-06T18:29:38Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-06-06T18:29:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=334d40e951fa3b3961135b3183633706d976c4bd'/>
<id>urn:sha1:334d40e951fa3b3961135b3183633706d976c4bd</id>
<content type='text'>
Update the logic to compute the display width needed for utf8
strings and allow us to more easily maintain the tables used in
that logic.

We may want to let the users choose if codepoints with ambiguous
widths are treated as a double or single width in a follow-up patch.

* tb/unicode-6.3-zero-width:
  utf8: make it easier to auto-update git_wcwidth()
  utf8.c: use a table for double_width
</content>
</entry>
<entry>
<title>utf8: make it easier to auto-update git_wcwidth()</title>
<updated>2014-05-12T17:38:01Z</updated>
<author>
<name>Torsten Bögershausen</name>
<email>tboegi@web.de</email>
</author>
<published>2014-05-09T21:51:44Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9c94389c3ee02df891100b894c1790a524268d91'/>
<id>urn:sha1:9c94389c3ee02df891100b894c1790a524268d91</id>
<content type='text'>
The function git_wcwidth() returns for a given unicode code point the
width on the display:

 -1 for control characters,
  0 for combining or other non-visible code points
  1 for e.g. ASCII
  2 for double-width code points.

This table had been originally been extracted for one Unicode
version, probably 3.2.

We now use two tables these days, one for zero-width and another for
double-width.  Make it easier to update these tables to a later
version of Unicode by factoring out the table from utf8.c into
unicode_width.h and add the script update_unicode.sh to update the
table based on the latest Unicode specification files.

Thanks to Peter Krefting &lt;peter@softwolves.pp.se&gt; and Kevin Bracey
&lt;kevin@bracey.fi&gt; for helping with their Unicode knowledge.

Signed-off-by: Torsten Bögershausen &lt;tboegi@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>utf8.c: use a table for double_width</title>
<updated>2014-05-12T17:20:46Z</updated>
<author>
<name>Torsten Bögershausen</name>
<email>tboegi@web.de</email>
</author>
<published>2014-05-09T21:51:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=08460345b5a221c0076a48c6be875d64b78b6015'/>
<id>urn:sha1:08460345b5a221c0076a48c6be875d64b78b6015</id>
<content type='text'>
Refactor git_wcwidth() and replace the if-else-if chain.
Use the table double_width which is scanned by the bisearch() function,
which is already used to find combining code points.

Signed-off-by: Torsten Bögershausen &lt;tboegi@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'tb/unicode-6.3-zero-width'</title>
<updated>2014-04-16T20:38:57Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-04-16T20:38:57Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9fd911a8101bf4d3bff4e2e61a138505eb39eace'/>
<id>urn:sha1:9fd911a8101bf4d3bff4e2e61a138505eb39eace</id>
<content type='text'>
Teach our display-column-counting logic about decomposed umlauts
and friends.

* tb/unicode-6.3-zero-width:
  utf8.c: partially update to version 6.3
</content>
</entry>
<entry>
<title>utf8.c: partially update to version 6.3</title>
<updated>2014-04-09T17:14:05Z</updated>
<author>
<name>Torsten Bögershausen</name>
<email>tboegi@web.de</email>
</author>
<published>2014-04-07T19:39:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d813ab970db8b57b70bdd1b7e5feddec1c3fd84e'/>
<id>urn:sha1:d813ab970db8b57b70bdd1b7e5feddec1c3fd84e</id>
<content type='text'>
Unicode 6.3 defines more code points as combining or accents.  For
example, the character "ö" could be expressed as an "o" followed by
U+0308 COMBINING DIARESIS (aka umlaut, double-dot-above).  We should
consider that such a sequence of two codepoints occupies one display
column for the alignment purposes, and for that, git_wcwidth()
should return 0 for them.  Affected codepoints are:

    U+0358..U+035C
    U+0487
    U+05A2, U+05BA, U+05C5, U+05C7
    U+0604, U+0616..U+061A, U+0659..U+065F

Earlier unicode standards had defined these as "reserved".

Only the range 0..U+07FF has been checked to see which codepoints
need to be marked as 0-width while preparing for this commit; more
updates may be needed.

Signed-off-by: Torsten Bögershausen &lt;tboegi@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>utf8: use correct type for values in interval table</title>
<updated>2014-02-18T23:51:40Z</updated>
<author>
<name>John Keeping</name>
<email>john@keeping.me.uk</email>
</author>
<published>2014-02-16T16:06:04Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=a68a67dea399f15305b059aa36c007cfdde2890e'/>
<id>urn:sha1:a68a67dea399f15305b059aa36c007cfdde2890e</id>
<content type='text'>
We treat these as unsigned everywhere and compare against unsigned
values, so declare them using the typedef we already have for this.

While we're here, fix the indentation as well.

Signed-off-by: John Keeping &lt;john@keeping.me.uk&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
