From 77ec902ca70b4da4556ececcf7ef2024955b0e63 Mon Sep 17 00:00:00 2001 From: ridiculousfish Date: Thu, 16 May 2013 19:44:21 -0700 Subject: [PATCH 1/3] Fix for failing to weak link wcsncasecmp - binary dies on SnowLeopard --- fallback.cpp | 48 ++++++++++++++++++++++++++++++------------------ fallback.h | 4 +++- 2 files changed, 33 insertions(+), 19 deletions(-) diff --git a/fallback.cpp b/fallback.cpp index a88f00f73..7e215bbe7 100644 --- a/fallback.cpp +++ b/fallback.cpp @@ -817,7 +817,7 @@ static wchar_t *wcsdup_fallback(const wchar_t *in) return out; } -int wcscasecmp_fallback(const wchar_t *a, const wchar_t *b) +static int wcscasecmp_fallback(const wchar_t *a, const wchar_t *b) { if (*a == 0) { @@ -834,6 +834,26 @@ int wcscasecmp_fallback(const wchar_t *a, const wchar_t *b) return wcscasecmp_fallback(a+1,b+1); } +static int wcsncasecmp_fallback(const wchar_t *a, const wchar_t *b, size_t count) +{ + if (count == 0) + return 0; + + if (*a == 0) + { + return (*b==0)?0:-1; + } + else if (*b == 0) + { + return 1; + } + int diff = towlower(*a)-towlower(*b); + if (diff != 0) + return diff; + else + return wcsncasecmp_fallback(a+1,b+1, count-1); +} + #if __APPLE__ && __DARWIN_C_LEVEL >= 200809L /* Note parens avoid the macro expansion */ @@ -851,6 +871,13 @@ int wcscasecmp_use_weak(const wchar_t *a, const wchar_t *b) return wcscasecmp_fallback(a, b); } +int wcsncasecmp_use_weak(const wchar_t *s1, const wchar_t *s2, size_t n) +{ + if (wcsncasecmp != NULL) + return (wcsncasecmp)(s1, s2, n); + return wcsncasecmp_fallback(s1, s2, n); +} + #else //__APPLE__ #ifndef HAVE_WCSDUP @@ -881,24 +908,9 @@ size_t wcslen(const wchar_t *in) #endif #ifndef HAVE_WCSNCASECMP -int wcsncasecmp(const wchar_t *a, const wchar_t *b, int count) +int wcsncasecmp(const wchar_t *a, const wchar_t *b, size_t count) { - if (count == 0) - return 0; - - if (*a == 0) - { - return (*b==0)?0:-1; - } - else if (*b == 0) - { - return 1; - } - int diff = towlower(*a)-towlower(*b); - if (diff != 0) - return diff; - else - return wcsncasecmp(a+1,b+1, count-1); + return wcsncasecmp_fallback(a, b, count); } #endif diff --git a/fallback.h b/fallback.h index 433f48d58..eba91be6c 100644 --- a/fallback.h +++ b/fallback.h @@ -217,8 +217,10 @@ int wcwidth(wchar_t c); #if __APPLE__ && __DARWIN_C_LEVEL >= 200809L wchar_t *wcsdup_use_weak(const wchar_t *); int wcscasecmp_use_weak(const wchar_t *, const wchar_t *); +int wcsncasecmp_use_weak(const wchar_t *s1, const wchar_t *s2, size_t n); #define wcsdup(a) wcsdup_use_weak((a)) #define wcscasecmp(a, b) wcscasecmp_use_weak((a), (b)) +#define wcsncasecmp(a, b, c) wcsncasecmp_use_weak((a), (b), (c)) #else @@ -273,7 +275,7 @@ size_t wcslen(const wchar_t *in); fish and guaranteed to be a sane, english word. Using wcsncasecmp on a user-supplied string should be considered a bug. */ -int wcsncasecmp(const wchar_t *a, const wchar_t *b, int count); +int wcsncasecmp(const wchar_t *a, const wchar_t *b, size_t count); /** Returns a newly allocated wide character string wich is a copy of From e4e9f6f2213776dd666073cfef3654375de82244 Mon Sep 17 00:00:00 2001 From: ridiculousfish Date: Thu, 16 May 2013 20:20:31 -0700 Subject: [PATCH 2/3] Added missing osx/install.sh for building fish.app --- osx/install.sh | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 osx/install.sh diff --git a/osx/install.sh b/osx/install.sh new file mode 100755 index 000000000..44a790410 --- /dev/null +++ b/osx/install.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +# Die if anything has an error +set -e + +# Make sure we're run as root +scriptname=`basename "$0"` +if [[ $UID -ne 0 ]]; then + echo "${scriptname} must be run as root" + exit 1 +fi + +# Set the prefix for installation +PREFIX=/usr/local + +# Jump to the Resources directory +cd "$(dirname "$0")" + +# Add us to the shells list +./add-shell "${PREFIX}/bin/fish" + +# Ditto the base directory to the right place +ditto ./base "${PREFIX}" + +# Announce our success +echo "fish has been installed under ${PREFIX}/ and added to /etc/shells (if it was not already present)" +echo "To start fish, run:" +echo " ${PREFIX}/bin/fish" +echo "If you wish to change your default shell to fish, run:" +echo " chsh -s ${PREFIX}/bin/fish" +echo "Enjoy!" From 84978b71329500fd00087d1db64cab95803f3bc3 Mon Sep 17 00:00:00 2001 From: ridiculousfish Date: Fri, 17 May 2013 00:40:33 -0700 Subject: [PATCH 3/3] Fix for AppleScript error in fish.app --- osx/launch_fish.scpt | Bin 3982 -> 4490 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/osx/launch_fish.scpt b/osx/launch_fish.scpt index 0afefdb672bd4d949161ee11262f4f7ea8836e33..dc39dd52e95d3dfd6996565471c3a899d6712004 100644 GIT binary patch literal 4490 zcmeHK>vt688UM}fV#sXX-E2V7YIU>*l!ROqxkNxH0igy`2r)pAFxgC!37gsN>?Q%) z51yX(yXW+re(323`v>#`URy4UQZZgk% zd*+$v`kQA~I)$G0Wo>q2U1Nj3k^tf<5g0HLGdO|b+}O^2{fnE3^JEInQzWJrZpKiC zsfr}FI$T4(MY(*F;E-xSBI^wKnf|U`uh0+PTh7apuN5p9xf1_Z3Hb`D0p*&hEAJFF zr+lr+H(Gj^F9+PYB3Gd70D?Rzrgvpz>qJriRV+LCHBf(U>9i_1fot z5&b2-M>(|Rnp4}NPXlsBc01u6+G@S0rA9K^xUYFycvp^Ib9mNcVmkG?5Em(u*gD2O zjw|s4T#QQ;2Q%PK87{&Paj7C<;+b5}kk4_Md}eXDur8Ae+>BpzXY&`OStayb;WF*R zDde99TRxRf6m>D@8Cv2rT#hRgiE#}Rsf>yGFa9HL<%3K?;R=|G5o7vQ;YYYqkr<7X zU4f*0Y{|#u>-N1KMOBSK?x&bG)k#!qpUzBUCigS6aS(O1GGEG&x-)aZkWT?aKGE6# zna=)8#|q`6gnWdm1|*B6WbMl2hWw)Dx)`zbk)86Pd>|(+`H)_43e5N*u*bY`Tj&Kt zKG5<{>N_uq{CPRmn}w?sNvJ(NAtz#T0*1m>V=BC#koPB5!DKv4TrI~Hu10(_b*W}D z%tnnIL#^T@^j$S&%|V?a3Cq74Gv#PPj!r64(Nm!=Gcilvi^+Rh-I@ptYUsCmG$@h~ z4C>K_MiY(H;Tl}4NW!eB$6Prg@5(!t9HBo3y+X#x6o>txY*yq}h};G}H{@OIk9SCL zEw8!qw!+*f^{%7j>o5=V6^Bsh0yN88Sb&8VhbYy0a)r#8&|8ry?kFm3jNn;7o(Zvp48Q2PoB3~_}kb?<1cqUXDa#&}~ zA>cfUiOB)nAa7b6;@0+FFRO@u=3G8>5thn+EVW4DR))~0urzx765jDfOx~abc~d)i z-dHxhF0aX}mb`w>Y!%6?rj`l_vS^7+Y_ziV$t%>(<&e%m+7Cj0^A_UO7ambVwZtXK40 zs#wV$0(%$zEXK36p6@IB{AJD!&Z!ZvU(td&B?Fq482%W270iQ>v0WBSZ4ZV?uIXYhvz=$BOFg_hfJ*FGu!1k zh4u*3wRtzALy?4--pQKYXksJTHes_O3E{UB-ST&I%Ci=SbJb#JREwS1iY@YtJgu-L zsztqX3$`kfuogRc(3M1&Hhx>0rjM(|tx+v*!7Z{cA^RrQ;xoDypVq;8mIRx5Ir5aE zlR|wn=$F0nqCUg~@HchHks#1oo4rGwrPDc3;)N?V;mqNec!)=J6yo&82wA8<$sFNed)HHg`zuXuNZdyV&T64>Yva5-M+HlZyL4g zEErv}oNaoW8w`6H26qya{+2aCFI5ns`*=CLw$Y9Sqeva8*@PCaJ8*)XO*ma(6DC@b zWSg5N%2dX^KdpY^!}vilisS6fO!Ua(id_al zn_vsbWAdmxV#s3}KOWWO5uGBBYak{=s*)cYG5H&H>oqvgKQ4J5PRPR(zpRt&g32o8 zub3(i$zRY%%y}@u<%Cc0q&x&OE)T$qkr+v0t^wJTkUeJtn@Kr*CO?7Yez`9p_n*m- zkozX>+bfCNmB`4SF(7|JwcIQB$ldH@?!scZQ|^%6?0UK^9!DQmNw#E|W|1}efU@M? z60A@50cXfP+DUhVUuSon15Pcuv(x}va!0A*wfN|>zcAABAhsW@En0;{0q0Ym# zTQiI?_jPuRb>W_&|NO0;&Va kkoCmv)jU@1n=qZcsgu#NHN2<2J*7X+bZ&pSfBzr<4S$980ssI2 literal 3982 zcmeHKS$7=O5&pVojHDjj8I3F)8{*K|STfpW9Al4du)s1F281n3mKPx7Q46&g^-QK) z67mx#zkqY{2YBQq4|!v8!V*G=FpF72*o+qzo5f}|dn(`U9@&;;o1C2FA?KuLy6#rD z?!8s@Ro&i{^#}Vpd+mn2{xCSVimxRUegM|s-c8BckPHEKjvU%I}ZLbj6r7_QQy}K!#g3~a5kJ>b9 zQG$()D8NGl0@icvagb%*VQUm)$g}RE$Wr%Au@JI6}o)?-<6>V7@y zkxxr4QI5x-9>3c}io2LE-zv;Ud>1vLPhN*hgZ5nO5I{6Bh$(I(3g{`?l$;o+v)5s?>L=ALZ;j(E7HMm^9kk1t^hq=no>(=1s zSgc5l6``stU)RIrhx7TwA6|R6W%KmDq z*5+Sp_sTS`#8uR1fqH4BR*GdEw$9d;AzuK7e6IcDOI`a~lhfK$7DjTlZcfGIleaHp( z28t}9>FPPVMNY_Zg%+55DO2~fqD_&6imT^hL~FZNTt^xmM3aMi`Q~6Nv_;Trz;gK@ zAs@_!mLVs!!j1!%pcyfFpWA!SViC9Q8FKRqD`2kVqK#;kcX5qH61Q@Mio!L~^3B}d zv6vjA1bI&@`D(X~yFc_WLylD8_HcIGvE9HP zERa$hU2L^h)0#Bapr5|h9U?HmaEL*Nnw&=7OtjimZ!`Hvh($j{AAAo&WLWCDS1AOHU=kc z)Niy=7euJ)VxG9cWaKk(BQ`3M5LI31lE0%1n+z7*Q5W5}{cHl9$oh6R&rCTuIh_TY z?LyJr1+=O2d3Ukxi1R?=anI zUY!UXCd?UtG^raCo8>iy%~4F($Lq$;iX@Eb-Ng466I;l33vN{;Ar`xFyZjBe$*UHN zi(&D$2#ejE*dwpV%L+Xa7In|<*s4fEEOJq7OJbWod~X`PGqJce!s5-?A}=N6rMXyq zMPu=0ZLC*Ga4X;Ka!^ry;eNNGUtW|K@gp4WuFskoy*ab9F2RPD1BfdryEoln1aFU6Bt}fte%e4(Ka)< z#ob%VmL@YeS6~KnPm$ymQ6qdZyaPDAo7#+*`WE2v4&eVp^lpg+ww0G_J9o9Vxr_0B zKOM(;H#4zAo>Po*4B8B~yjvZRXJyKe13G>@tI3phk>_+ECPS)*p8+xXD+aLBU_t#1 zkms3%JTv!8EXfR3Q6qmrr93TvW=h*FPbJu#^U0Q!r(wqBPuLS9F_PFr{mPRGd2)7O zGbx8_?&6wHB;<+N!!_8=(SCUxcgSO~<&V4~{Q>Q=Umlf5QjK{d{Mu=KzZUh4Y*qBsA$|OTWhWXx9BIo}Be4U?0lJ|&`M@#`C;E1x aj=ZT;QL`tU)7O{MS7hz4-yJ&iyMF?4dTk~E