summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2007-04-28 20:50:23 +1000
committerHerbert Xu <herbert@gondor.apana.org.au>2007-04-28 20:50:23 +1000
commit4a1c9c120af859665c37fa9d45cbf737c303c06d (patch)
treebdeee27c429f90d51b88f9abec3450baa6f5eb57 /src
parent[BUILTIN] Fixed command -v segmentation fault (diff)
downloaddash-4a1c9c120af859665c37fa9d45cbf737c303c06d.tar.gz
dash-4a1c9c120af859665c37fa9d45cbf737c303c06d.zip
[BUILTIN] Fix mkbuiltin sort order
On Fri, Feb 16, 2007 at 04:24:55PM -0800, Dan Nicholson wrote:
> I was having a problem building dash where `:' wasn't being recognized
> as a builtin command. I won't bore you with the details of the
> debugging, but it came down to the fact that the generated struct in
> builtins.c wasn't being sorted correctly. The ":" name was coming
> before the "." name and then was never able to be found by bsearch().
>
> The issue turned out to be that I was building with a UTF-8 charset,
> causing the `sort' to come out differently from the mkbuiltins script.
> When I finally set LANG=C, it came out correct. Here's an example of
> the difference.
>
> $ LANG=C sort << "EOF"
> :
> .
> EOF
> .
> :
> $ LANG=en_US.ISO-8859-1 sort << "EOF"
> :
> .
> EOF
> :
> .
>
> My system has glibc-2.3.6, but I also tested it on an RHEL3 server at
> work. My solution was just to add LC_ALL=C to the mkbuiltins script.
> Maybe it's overkill to use LC_ALL. Patch against HEAD attached.

I've changed this patch so that we just set LC_COLLATE for the sort
command.
Diffstat (limited to '')
-rw-r--r--src/mkbuiltins2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/mkbuiltins b/src/mkbuiltins
index f3f91c5..960c61c 100644
--- a/src/mkbuiltins
+++ b/src/mkbuiltins
@@ -65,7 +65,7 @@ awk '{	for (i = 2 ; i <= NF ; i++) {
 		if ($i ~ /^-/)
 			line = $(++i) "\t" line
 		print line
-	}}' $temp | sort -k 1,1 | tee $temp2 | awk '{
+	}}' $temp | LC_COLLATE=C sort -k 1,1 | tee $temp2 | awk '{
 		opt = ""
 		if (NF > 2) {
 			opt = substr($2, 2)
light'> 2017-10-03Simplify Makefile with pattern ruleJune McEnroe Insert rant about how GNU make handles the .c rule with extra dependencies. Also I don't care that everything links curses now. 2017-09-27Remove leading blank linesJune McEnroe 2017-09-27Add merge.c to READMEJune McEnroe 2017-09-03Assert client coords are valid after movementJune McEnroe 2017-09-03Relicense AGPLJune McEnroe I know it's already published under a permissive license in what is probably its final form, but I want to license it AGPL anyway on principle following some conversations I had about open source, corporations and copyleft. 2017-09-01Revert "Add client readOnly mode"June McEnroe This reverts commit 34f25ae40a3db9369e9d98b3814f2b93bbc21451. 2017-09-01Remove clientRemove call from clientCastJune McEnroe If an error occurs on a client socket during a broadcast, that client will show up in the kqueue loop with EV_EOF and get removed that way. Tested by sending SIGKILL to a client and watching its cursor disappear. 2017-09-01Add client readOnly modeJune McEnroe 2017-08-31Clean up merge toolJune McEnroe Choose the version with the most recent access if the modify times are the same. 2017-08-31Choose B for tiles with equal modify timesJune McEnroe This way newer access counts and times will be preserved. 2017-08-31Add quick data file merge toolJune McEnroe Hopefully I won't have to use it ever again. 2017-08-30Use only foreground color for selecting spawnJune McEnroe 2017-08-29Add four additional spawnsJune McEnroe 2017-08-28Add respawningJune McEnroe 2017-08-26Move license above includesJune McEnroe Why was it down there? 2017-08-26Snapshot metadataJune McEnroe 2017-08-26Add meta.c to READMEJune McEnroe 2017-08-26Use MakefileJune McEnroe