aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar ridiculousfish <corydoras@ridiculousfish.com>2012-07-08 15:20:39 -0700
committerGravatar ridiculousfish <corydoras@ridiculousfish.com>2012-07-08 15:20:39 -0700
commit4912967eabc447c31847566f03c50433015e9e9c (patch)
tree939f1d16354f08da8f11b4489e31b38a57022df9
parent76e1cda495d6e88cea383d387375588cdf9297bc (diff)
Large set of changes related to making fish relocatable, and improving the build and install story.
- etc/config.fish and share/config.fish are now "universal" and no longer reference install paths or need to be touched by autotools. They've been removed from config.fish.in to config.fish. - fish now attempts to determine __fish_datadir and __fish_sysconfdir relative to the path of the fish executable itself (typically by walking up one directory). This means that you can copy the directory hierarchy around and things will still work. The compiled-in paths are used as a backup. - The fish Xcode project now can build fish natively, without needing autotools. - Version bumped to 2.0
-rw-r--r--.gitignore1
-rw-r--r--FishsFish.xcodeproj/project.pbxproj1030
-rw-r--r--Makefile.in86
-rwxr-xr-xbuild_tools/make_tarball.sh8
-rw-r--r--configure.ac2
-rw-r--r--etc/config.fish (renamed from etc/config.fish.in)1
-rw-r--r--fish.cpp174
-rwxr-xr-xinternalize_scripts.py35
-rw-r--r--osx/Info.plist33
-rw-r--r--osx/launch_fish.scptbin0 -> 3982 bytes
-rw-r--r--osx/osx_config.h218
-rw-r--r--osx/osx_fish_launcher.m98
-rw-r--r--share/config.fish (renamed from share/config.fish.in)29
13 files changed, 1597 insertions, 118 deletions
diff --git a/.gitignore b/.gitignore
index 217b1652..5906847e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,7 +13,6 @@ configure
doc.h
doc_src/commands.hdr
doc_src/index.hdr
-etc/config.fish
po/*.gmo
fish
fish.spec
diff --git a/FishsFish.xcodeproj/project.pbxproj b/FishsFish.xcodeproj/project.pbxproj
index c74623f5..d00a84f6 100644
--- a/FishsFish.xcodeproj/project.pbxproj
+++ b/FishsFish.xcodeproj/project.pbxproj
@@ -6,6 +6,282 @@
objectVersion = 46;
objects = {
+/* Begin PBXAggregateTarget section */
+ D0F019EC15A976F30034B3B1 /* fish_directory_tree */ = {
+ isa = PBXAggregateTarget;
+ buildConfigurationList = D0F019ED15A976F30034B3B1 /* Build configuration list for PBXAggregateTarget "fish_directory_tree" */;
+ buildPhases = (
+ D0F019F015A977010034B3B1 /* CopyFiles */,
+ D0F019F715A977A00034B3B1 /* CopyFiles */,
+ D0F019FC15A977B40034B3B1 /* CopyFiles */,
+ );
+ dependencies = (
+ D0F01A1315AA36280034B3B1 /* PBXTargetDependency */,
+ D0F01A1515AA362E0034B3B1 /* PBXTargetDependency */,
+ D0F01A1915AA36310034B3B1 /* PBXTargetDependency */,
+ D0F01A1715AA36300034B3B1 /* PBXTargetDependency */,
+ D0F01A1B15AA36330034B3B1 /* PBXTargetDependency */,
+ );
+ name = fish_directory_tree;
+ productName = base;
+ };
+/* End PBXAggregateTarget section */
+
+/* Begin PBXBuildFile section */
+ D07A7D3C15A7A38100811FC6 /* builtin_scripts.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0F5E28215A7A32D00315DFF /* builtin_scripts.cpp */; };
+ D0C4FD9515A7D80700212EF1 /* config.fish in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0C4FD9415A7D7EE00212EF1 /* config.fish */; };
+ D0C4FD9615A7D80C00212EF1 /* config.fish in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0CBD580159EE48F0024809C /* config.fish */; };
+ D0CBD57B159EE4640024809C /* completions in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0CBD578159EE4600024809C /* completions */; };
+ D0CBD57C159EE4640024809C /* functions in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0CBD579159EE4600024809C /* functions */; };
+ D0CBD57D159EE4640024809C /* tools in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0CBD57A159EE4600024809C /* tools */; };
+ D0CBD587159EF0E10024809C /* launch_fish.scpt in Resources */ = {isa = PBXBuildFile; fileRef = D0CBD586159EF0E10024809C /* launch_fish.scpt */; };
+ D0D02A67159837AD008E62BD /* complete.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853713B3ACEE0099B651 /* complete.cpp */; };
+ D0D02A69159837B2008E62BD /* env.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853A13B3ACEE0099B651 /* env.cpp */; };
+ D0D02A6A1598381A008E62BD /* exec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853C13B3ACEE0099B651 /* exec.cpp */; };
+ D0D02A6B1598381F008E62BD /* expand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853D13B3ACEE0099B651 /* expand.cpp */; };
+ D0D02A6C15983829008E62BD /* highlight.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0854713B3ACEE0099B651 /* highlight.cpp */; };
+ D0D02A6D1598382C008E62BD /* history.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0854813B3ACEE0099B651 /* history.cpp */; };
+ D0D02A6E15983838008E62BD /* kill.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0854F13B3ACEE0099B651 /* kill.cpp */; };
+ D0D02A6F1598383E008E62BD /* parser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855413B3ACEE0099B651 /* parser.cpp */; };
+ D0D02A7015983842008E62BD /* proc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855713B3ACEE0099B651 /* proc.cpp */; };
+ D0D02A7115983848008E62BD /* reader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855813B3ACEE0099B651 /* reader.cpp */; };
+ D0D02A721598384C008E62BD /* sanity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855913B3ACEE0099B651 /* sanity.cpp */; };
+ D0D02A7315983852008E62BD /* tokenizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855D13B3ACEE0099B651 /* tokenizer.cpp */; };
+ D0D02A7415983857008E62BD /* wildcard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0856013B3ACEE0099B651 /* wildcard.cpp */; };
+ D0D02A751598385E008E62BD /* wgetopt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855F13B3ACEE0099B651 /* wgetopt.cpp */; };
+ D0D02A7615983869008E62BD /* wutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0856113B3ACEE0099B651 /* wutil.cpp */; };
+ D0D02A7715983875008E62BD /* input.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0854A13B3ACEE0099B651 /* input.cpp */; };
+ D0D02A781598387E008E62BD /* output.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855113B3ACEE0099B651 /* output.cpp */; };
+ D0D02A7915983888008E62BD /* intern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0854B13B3ACEE0099B651 /* intern.cpp */; };
+ D0D02A7A15983916008E62BD /* env_universal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853913B3ACEE0099B651 /* env_universal.cpp */; };
+ D0D02A7B15983928008E62BD /* env_universal_common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853813B3ACEE0099B651 /* env_universal_common.cpp */; };
+ D0D02A7C159839D5008E62BD /* autoload.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0C6FCC914CFA4B0004CE8AD /* autoload.cpp */; };
+ D0D02A7D159839D5008E62BD /* builtin_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0F3373A1506DE3C00ECEFC0 /* builtin_test.cpp */; };
+ D0D02A7E159839D5008E62BD /* color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0B6B0FE14E88BA400AD6C10 /* color.cpp */; };
+ D0D02A7F159839D5008E62BD /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853613B3ACEE0099B651 /* common.cpp */; };
+ D0D02A80159839D5008E62BD /* event.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853B13B3ACEE0099B651 /* event.cpp */; };
+ D0D02A81159839D5008E62BD /* input_common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0854913B3ACEE0099B651 /* input_common.cpp */; };
+ D0D02A82159839D5008E62BD /* io.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0854C13B3ACEE0099B651 /* io.cpp */; };
+ D0D02A83159839D5008E62BD /* iothread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0854D13B3ACEE0099B651 /* iothread.cpp */; };
+ D0D02A84159839D5008E62BD /* parse_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855213B3ACEE0099B651 /* parse_util.cpp */; };
+ D0D02A85159839D5008E62BD /* path.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855513B3ACEE0099B651 /* path.cpp */; };
+ D0D02A86159839D5008E62BD /* postfork.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D09B1C1914FC7B5B00F91077 /* postfork.cpp */; };
+ D0D02A87159839D5008E62BD /* screen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855A13B3ACEE0099B651 /* screen.cpp */; };
+ D0D02A88159839D5008E62BD /* signal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855C13B3ACEE0099B651 /* signal.cpp */; };
+ D0D02A89159839DF008E62BD /* fish.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0854213B3ACEE0099B651 /* fish.cpp */; };
+ D0D02A8B15983CDF008E62BD /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D02A8A15983CDF008E62BD /* libiconv.dylib */; };
+ D0D02A8D15983CFA008E62BD /* libncurses.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D02A8C15983CFA008E62BD /* libncurses.dylib */; };
+ D0D02A8F15983D8F008E62BD /* parser_keywords.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855313B3ACEE0099B651 /* parser_keywords.cpp */; };
+ D0D02AC215985F3F008E62BD /* fishd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0854313B3ACEE0099B651 /* fishd.cpp */; };
+ D0D02AC315985F43008E62BD /* env_universal_common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853813B3ACEE0099B651 /* env_universal_common.cpp */; };
+ D0D02AC415985F4D008E62BD /* wutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0856113B3ACEE0099B651 /* wutil.cpp */; };
+ D0D02AC515985F5B008E62BD /* print_help.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855613B3ACEE0099B651 /* print_help.cpp */; };
+ D0D02AC615985F65008E62BD /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853613B3ACEE0099B651 /* common.cpp */; };
+ D0D02AC715985F9D008E62BD /* libncurses.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D02A8C15983CFA008E62BD /* libncurses.dylib */; };
+ D0D02AC815985F9F008E62BD /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D02A8A15983CDF008E62BD /* libiconv.dylib */; };
+ D0D02AD615986492008E62BD /* fish_indent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853F13B3ACEE0099B651 /* fish_indent.cpp */; };
+ D0D02AD715986498008E62BD /* print_help.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855613B3ACEE0099B651 /* print_help.cpp */; };
+ D0D02AD81598649E008E62BD /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853613B3ACEE0099B651 /* common.cpp */; };
+ D0D02AD9159864A6008E62BD /* parser_keywords.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855313B3ACEE0099B651 /* parser_keywords.cpp */; };
+ D0D02ADA159864AB008E62BD /* wutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0856113B3ACEE0099B651 /* wutil.cpp */; };
+ D0D02ADB159864C2008E62BD /* tokenizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855D13B3ACEE0099B651 /* tokenizer.cpp */; };
+ D0D02ADC159864D5008E62BD /* libncurses.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D02A8C15983CFA008E62BD /* libncurses.dylib */; };
+ D0D02ADD159864D7008E62BD /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D02A8A15983CDF008E62BD /* libiconv.dylib */; };
+ D0D02AEA15986549008E62BD /* libncurses.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D02A8C15983CFA008E62BD /* libncurses.dylib */; };
+ D0D02AEB1598654C008E62BD /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D02A8A15983CDF008E62BD /* libiconv.dylib */; };
+ D0D02AEC1598657F008E62BD /* fish_indent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853F13B3ACEE0099B651 /* fish_indent.cpp */; };
+ D0D02AED15986584008E62BD /* print_help.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855613B3ACEE0099B651 /* print_help.cpp */; };
+ D0D02AEE15986591008E62BD /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853613B3ACEE0099B651 /* common.cpp */; };
+ D0D02AF0159865A2008E62BD /* wutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0856113B3ACEE0099B651 /* wutil.cpp */; };
+ D0D02AF1159865AC008E62BD /* parser_keywords.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855313B3ACEE0099B651 /* parser_keywords.cpp */; };
+ D0D02AF2159865B4008E62BD /* tokenizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855D13B3ACEE0099B651 /* tokenizer.cpp */; };
+ D0D2694915983772005D9B9C /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0854413B3ACEE0099B651 /* function.cpp */; };
+ D0D2694A15983779005D9B9C /* builtin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853513B3ACEE0099B651 /* builtin.cpp */; };
+ D0F019D415A969120034B3B1 /* fish in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0D2693C159835CA005D9B9C /* fish */; };
+ D0F019D515A969140034B3B1 /* fishd in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0D02ABC15985EF9008E62BD /* fishd */; };
+ D0F019D615A969160034B3B1 /* fish_indent in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0D02AD01598642A008E62BD /* fish_indent */; };
+ D0F019D715A969190034B3B1 /* fish_pager in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0D02AE415986537008E62BD /* fish_pager */; };
+ D0F019E215A969B40034B3B1 /* set_color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855B13B3ACEE0099B651 /* set_color.cpp */; };
+ D0F019E315A969BA0034B3B1 /* print_help.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855613B3ACEE0099B651 /* print_help.cpp */; };
+ D0F019E415A969C00034B3B1 /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853613B3ACEE0099B651 /* common.cpp */; };
+ D0F019E515A969C30034B3B1 /* color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0B6B0FE14E88BA400AD6C10 /* color.cpp */; };
+ D0F019E615A969C80034B3B1 /* wutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0856113B3ACEE0099B651 /* wutil.cpp */; };
+ D0F019E915A96A0A0034B3B1 /* libncurses.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D02A8C15983CFA008E62BD /* libncurses.dylib */; };
+ D0F019EA15A96A0C0034B3B1 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D02A8A15983CDF008E62BD /* libiconv.dylib */; };
+ D0F019EB15A96AFB0034B3B1 /* set_color in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0F019DC15A969970034B3B1 /* set_color */; };
+ D0F019F115A977140034B3B1 /* fish in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0D2693C159835CA005D9B9C /* fish */; };
+ D0F019F215A977270034B3B1 /* fishd in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0D02ABC15985EF9008E62BD /* fishd */; };
+ D0F019F315A977290034B3B1 /* fish_indent in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0D02AD01598642A008E62BD /* fish_indent */; };
+ D0F019F415A9772C0034B3B1 /* fish_pager in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0D02AE415986537008E62BD /* fish_pager */; };
+ D0F019F615A977360034B3B1 /* set_color in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0F019DC15A969970034B3B1 /* set_color */; };
+ D0F019F815A977AB0034B3B1 /* config.fish in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0CBD580159EE48F0024809C /* config.fish */; };
+ D0F019F915A977AD0034B3B1 /* completions in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0CBD578159EE4600024809C /* completions */; };
+ D0F019FA15A977AE0034B3B1 /* functions in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0CBD579159EE4600024809C /* functions */; };
+ D0F019FB15A977B00034B3B1 /* tools in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0CBD57A159EE4600024809C /* tools */; };
+ D0F019FD15A977CA0034B3B1 /* config.fish in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0C4FD9415A7D7EE00212EF1 /* config.fish */; };
+ D0F01A0315A978910034B3B1 /* osx_fish_launcher.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D02AFA159871B2008E62BD /* osx_fish_launcher.m */; };
+ D0F01A0515A978A10034B3B1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0CBD583159EEE010024809C /* Foundation.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ D0F01A0815A97C860034B3B1 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D0A084F213B3AC130099B651 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = D0D2693B159835CA005D9B9C;
+ remoteInfo = fish_Xcode;
+ };
+ D0F01A0A15A97C870034B3B1 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D0A084F213B3AC130099B651 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = D0D02ABB15985EF9008E62BD;
+ remoteInfo = fishd;
+ };
+ D0F01A0C15A97C890034B3B1 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D0A084F213B3AC130099B651 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = D0D02ACF1598642A008E62BD;
+ remoteInfo = fish_indent;
+ };
+ D0F01A0E15A97C980034B3B1 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D0A084F213B3AC130099B651 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = D0D02AE315986537008E62BD;
+ remoteInfo = fish_pager;
+ };
+ D0F01A1015A97C9B0034B3B1 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D0A084F213B3AC130099B651 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = D0F019DB15A969970034B3B1;
+ remoteInfo = set_color;
+ };
+ D0F01A1215AA36280034B3B1 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D0A084F213B3AC130099B651 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = D0D2693B159835CA005D9B9C;
+ remoteInfo = fish_shell;
+ };
+ D0F01A1415AA362E0034B3B1 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D0A084F213B3AC130099B651 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = D0D02ABB15985EF9008E62BD;
+ remoteInfo = fishd;
+ };
+ D0F01A1615AA36300034B3B1 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D0A084F213B3AC130099B651 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = D0D02ACF1598642A008E62BD;
+ remoteInfo = fish_indent;
+ };
+ D0F01A1815AA36310034B3B1 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D0A084F213B3AC130099B651 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = D0D02AE315986537008E62BD;
+ remoteInfo = fish_pager;
+ };
+ D0F01A1A15AA36330034B3B1 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D0A084F213B3AC130099B651 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = D0F019DB15A969970034B3B1;
+ remoteInfo = set_color;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+ D0CBD570159ED2A30024809C /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = base/share/fish;
+ dstSubfolderSpec = 7;
+ files = (
+ D0C4FD9615A7D80C00212EF1 /* config.fish in CopyFiles */,
+ D0CBD57B159EE4640024809C /* completions in CopyFiles */,
+ D0CBD57C159EE4640024809C /* functions in CopyFiles */,
+ D0CBD57D159EE4640024809C /* tools in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D0CBD57F159EE4800024809C /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = base/etc/fish;
+ dstSubfolderSpec = 7;
+ files = (
+ D0C4FD9515A7D80700212EF1 /* config.fish in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D0F019D215A968E40034B3B1 /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = base/bin;
+ dstSubfolderSpec = 7;
+ files = (
+ D0F019D415A969120034B3B1 /* fish in CopyFiles */,
+ D0F019D515A969140034B3B1 /* fishd in CopyFiles */,
+ D0F019D715A969190034B3B1 /* fish_pager in CopyFiles */,
+ D0F019D615A969160034B3B1 /* fish_indent in CopyFiles */,
+ D0F019EB15A96AFB0034B3B1 /* set_color in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D0F019DA15A969970034B3B1 /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = /usr/share/man/man1/;
+ dstSubfolderSpec = 0;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ };
+ D0F019F015A977010034B3B1 /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = base/bin;
+ dstSubfolderSpec = 1;
+ files = (
+ D0F019F115A977140034B3B1 /* fish in CopyFiles */,
+ D0F019F215A977270034B3B1 /* fishd in CopyFiles */,
+ D0F019F315A977290034B3B1 /* fish_indent in CopyFiles */,
+ D0F019F415A9772C0034B3B1 /* fish_pager in CopyFiles */,
+ D0F019F615A977360034B3B1 /* set_color in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D0F019F715A977A00034B3B1 /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = base/share/fish;
+ dstSubfolderSpec = 1;
+ files = (
+ D0F019F815A977AB0034B3B1 /* config.fish in CopyFiles */,
+ D0F019F915A977AD0034B3B1 /* completions in CopyFiles */,
+ D0F019FA15A977AE0034B3B1 /* functions in CopyFiles */,
+ D0F019FB15A977B00034B3B1 /* tools in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D0F019FC15A977B40034B3B1 /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = base/etc/fish;
+ dstSubfolderSpec = 1;
+ files = (
+ D0F019FD15A977CA0034B3B1 /* config.fish in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
/* Begin PBXFileReference section */
D03EE83814DF88B200FC7150 /* lru.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = lru.h; sourceTree = "<group>"; };
D09B1C1914FC7B5B00F91077 /* postfork.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = postfork.cpp; sourceTree = "<group>"; };
@@ -109,15 +385,113 @@
D0A0856713B3ACEE0099B651 /* xdgmimeparent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xdgmimeparent.cpp; sourceTree = "<group>"; };
D0B6B0FE14E88BA400AD6C10 /* color.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = color.cpp; sourceTree = "<group>"; };
D0B6B0FF14E88BA400AD6C10 /* color.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = color.h; sourceTree = "<group>"; };
+ D0C4FD9415A7D7EE00212EF1 /* config.fish */ = {isa = PBXFileReference; lastKnownFileType = text; name = config.fish; path = etc/config.fish; sourceTree = "<group>"; };
D0C6FCC914CFA4B0004CE8AD /* autoload.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = autoload.cpp; sourceTree = "<group>"; };
D0C6FCCB14CFA4B7004CE8AD /* autoload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = autoload.h; sourceTree = "<group>"; };
+ D0CBD578159EE4600024809C /* completions */ = {isa = PBXFileReference; lastKnownFileType = folder; name = completions; path = share/completions; sourceTree = "<group>"; };
+ D0CBD579159EE4600024809C /* functions */ = {isa = PBXFileReference; lastKnownFileType = folder; name = functions; path = share/functions; sourceTree = "<group>"; };
+ D0CBD57A159EE4600024809C /* tools */ = {isa = PBXFileReference; lastKnownFileType = folder; name = tools; path = share/tools; sourceTree = "<group>"; };
+ D0CBD580159EE48F0024809C /* config.fish */ = {isa = PBXFileReference; lastKnownFileType = text; name = config.fish; path = share/config.fish; sourceTree = "<group>"; };
+ D0CBD583159EEE010024809C /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ D0CBD586159EF0E10024809C /* launch_fish.scpt */ = {isa = PBXFileReference; lastKnownFileType = file; name = launch_fish.scpt; path = osx/launch_fish.scpt; sourceTree = "<group>"; };
+ D0D02A8A15983CDF008E62BD /* libiconv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = usr/lib/libiconv.dylib; sourceTree = SDKROOT; };
+ D0D02A8C15983CFA008E62BD /* libncurses.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libncurses.dylib; path = usr/lib/libncurses.dylib; sourceTree = SDKROOT; };
+ D0D02A9A15985A75008E62BD /* fish.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = fish.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0D02AA915985C0C008E62BD /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = osx/Info.plist; sourceTree = "<group>"; };
+ D0D02ABC15985EF9008E62BD /* fishd */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = fishd; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0D02AD01598642A008E62BD /* fish_indent */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = fish_indent; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0D02AE415986537008E62BD /* fish_pager */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = fish_pager; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0D02AFA159871B2008E62BD /* osx_fish_launcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = osx_fish_launcher.m; path = osx/osx_fish_launcher.m; sourceTree = "<group>"; };
+ D0D2693C159835CA005D9B9C /* fish */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = fish; sourceTree = BUILT_PRODUCTS_DIR; };
+ D0F019DC15A969970034B3B1 /* set_color */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = set_color; sourceTree = BUILT_PRODUCTS_DIR; };
D0F3373A1506DE3C00ECEFC0 /* builtin_test.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_test.cpp; sourceTree = "<group>"; };
+ D0F5E28215A7A32D00315DFF /* builtin_scripts.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_scripts.cpp; sourceTree = "<group>"; };
+ D0F5E28315A7A32D00315DFF /* builtin_scripts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_scripts.h; sourceTree = "<group>"; };
+ D0F5E28415A7A32D00315DFF /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; };
/* End PBXFileReference section */
+/* Begin PBXFrameworksBuildPhase section */
+ D0D02AB915985EF9008E62BD /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0D02AC715985F9D008E62BD /* libncurses.dylib in Frameworks */,
+ D0D02AC815985F9F008E62BD /* libiconv.dylib in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D0D02ACD1598642A008E62BD /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0D02ADC159864D5008E62BD /* libncurses.dylib in Frameworks */,
+ D0D02ADD159864D7008E62BD /* libiconv.dylib in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D0D02AE115986537008E62BD /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0D02AEA15986549008E62BD /* libncurses.dylib in Frameworks */,
+ D0D02AEB1598654C008E62BD /* libiconv.dylib in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D0D26939159835CA005D9B9C /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0D02A8D15983CFA008E62BD /* libncurses.dylib in Frameworks */,
+ D0D02A8B15983CDF008E62BD /* libiconv.dylib in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D0F019D915A969970034B3B1 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0F019E915A96A0A0034B3B1 /* libncurses.dylib in Frameworks */,
+ D0F019EA15A96A0C0034B3B1 /* libiconv.dylib in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D0F01A0415A9789C0034B3B1 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0F01A0515A978A10034B3B1 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
/* Begin PBXGroup section */
D0A084F013B3AC130099B651 = {
isa = PBXGroup;
children = (
+ D0D02A91159845EF008E62BD /* Sources */,
+ D0F5E28115A7A32D00315DFF /* DerivedSources */,
+ D0D02AFC159871BF008E62BD /* Launcher */,
+ D0D02A8E15983D5F008E62BD /* Libraries */,
+ D0D02AAB15985C14008E62BD /* Resources */,
+ D0D2693215983562005D9B9C /* Products */,
+ );
+ sourceTree = "<group>";
+ };
+ D0D02A8E15983D5F008E62BD /* Libraries */ = {
+ isa = PBXGroup;
+ children = (
+ D0D02A8C15983CFA008E62BD /* libncurses.dylib */,
+ D0D02A8A15983CDF008E62BD /* libiconv.dylib */,
+ D0CBD583159EEE010024809C /* Foundation.framework */,
+ );
+ name = Libraries;
+ sourceTree = "<group>";
+ };
+ D0D02A91159845EF008E62BD /* Sources */ = {
+ isa = PBXGroup;
+ children = (
D0C6FCCB14CFA4B7004CE8AD /* autoload.h */,
D0C6FCC914CFA4B0004CE8AD /* autoload.cpp */,
D0A0850313B3ACEE0099B651 /* builtin.h */,
@@ -224,27 +598,184 @@
D0A0852F13B3ACEE0099B651 /* xdgmimeparent.h */,
D0A0856713B3ACEE0099B651 /* xdgmimeparent.cpp */,
);
+ name = Sources;
sourceTree = "<group>";
};
+ D0D02AAB15985C14008E62BD /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ D0CBD586159EF0E10024809C /* launch_fish.scpt */,
+ D0CBD580159EE48F0024809C /* config.fish */,
+ D0C4FD9415A7D7EE00212EF1 /* config.fish */,
+ D0CBD578159EE4600024809C /* completions */,
+ D0CBD579159EE4600024809C /* functions */,
+ D0CBD57A159EE4600024809C /* tools */,
+ D0D02AA915985C0C008E62BD /* Info.plist */,
+ );
+ name = Resources;
+ sourceTree = "<group>";
+ };
+ D0D02AFC159871BF008E62BD /* Launcher */ = {
+ isa = PBXGroup;
+ children = (
+ D0D02AFA159871B2008E62BD /* osx_fish_launcher.m */,
+ );
+ name = Launcher;
+ sourceTree = "<group>";
+ };
+ D0D2693215983562005D9B9C /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D0D2693C159835CA005D9B9C /* fish */,
+ D0D02A9A15985A75008E62BD /* fish.app */,
+ D0D02ABC15985EF9008E62BD /* fishd */,
+ D0D02AD01598642A008E62BD /* fish_indent */,
+ D0D02AE415986537008E62BD /* fish_pager */,
+ D0F019DC15A969970034B3B1 /* set_color */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ D0F5E28115A7A32D00315DFF /* DerivedSources */ = {
+ isa = PBXGroup;
+ children = (
+ D0F5E28215A7A32D00315DFF /* builtin_scripts.cpp */,
+ D0F5E28315A7A32D00315DFF /* builtin_scripts.h */,
+ D0F5E28415A7A32D00315DFF /* config.h */,
+ );
+ name = DerivedSources;
+ sourceTree = DERIVED_FILE_DIR;
+ };
/* End PBXGroup section */
/* Begin PBXLegacyTarget section */
- D0A084F713B3AC130099B651 /* FishsFish */ = {
+ D0A084F713B3AC130099B651 /* Makefile */ = {
isa = PBXLegacyTarget;
- buildArgumentsString = "-k ${ACTION}";
- buildConfigurationList = D0A084FA13B3AC130099B651 /* Build configuration list for PBXLegacyTarget "FishsFish" */;
+ buildArgumentsString = " -f Makefile -k ${ACTION}";
+ buildConfigurationList = D0A084FA13B3AC130099B651 /* Build configuration list for PBXLegacyTarget "Makefile" */;
buildPhases = (
);
buildToolPath = /usr/bin/make;
buildWorkingDirectory = "";
dependencies = (
);
- name = FishsFish;
+ name = Makefile;
passBuildSettingsInEnvironment = 1;
productName = FishsFish;
};
/* End PBXLegacyTarget section */
+/* Begin PBXNativeTarget section */
+ D0D02A9915985A75008E62BD /* fish.app */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D0D02AA415985A75008E62BD /* Build configuration list for PBXNativeTarget "fish.app" */;
+ buildPhases = (
+ D0F01A0215A9788B0034B3B1 /* Sources */,
+ D0F019D215A968E40034B3B1 /* CopyFiles */,
+ D0CBD570159ED2A30024809C /* CopyFiles */,
+ D0CBD57F159EE4800024809C /* CopyFiles */,
+ D0CBD585159EF09F0024809C /* Resources */,
+ D0F01A0415A9789C0034B3B1 /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ D0F01A0915A97C860034B3B1 /* PBXTargetDependency */,
+ D0F01A0B15A97C870034B3B1 /* PBXTargetDependency */,
+ D0F01A0D15A97C890034B3B1 /* PBXTargetDependency */,
+ D0F01A0F15A97C980034B3B1 /* PBXTargetDependency */,
+ D0F01A1115A97C9B0034B3B1 /* PBXTargetDependency */,
+ );
+ name = fish.app;
+ productName = fish;
+ productReference = D0D02A9A15985A75008E62BD /* fish.app */;
+ productType = "com.apple.product-type.application";
+ };
+ D0D02ABB15985EF9008E62BD /* fishd */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D0D02ABF15985EFA008E62BD /* Build configuration list for PBXNativeTarget "fishd" */;
+ buildPhases = (
+ D0D02AB815985EF9008E62BD /* Sources */,
+ D0D02AB915985EF9008E62BD /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = fishd;
+ productName = fishd;
+ productReference = D0D02ABC15985EF9008E62BD /* fishd */;
+ productType = "com.apple.product-type.tool";
+ };
+ D0D02ACF1598642A008E62BD /* fish_indent */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D0D02AD31598642A008E62BD /* Build configuration list for PBXNativeTarget "fish_indent" */;
+ buildPhases = (
+ D0D02ACC1598642A008E62BD /* Sources */,
+ D0D02ACD1598642A008E62BD /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = fish_indent;
+ productName = fish_indent;
+ productReference = D0D02AD01598642A008E62BD /* fish_indent */;
+ productType = "com.apple.product-type.tool";
+ };
+ D0D02AE315986537008E62BD /* fish_pager */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D0D02AE715986537008E62BD /* Build configuration list for PBXNativeTarget "fish_pager" */;
+ buildPhases = (
+ D0D02AE015986537008E62BD /* Sources */,
+ D0D02AE115986537008E62BD /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = fish_pager;
+ productName = fish_pager;
+ productReference = D0D02AE415986537008E62BD /* fish_pager */;
+ productType = "com.apple.product-type.tool";
+ };
+ D0D2693B159835CA005D9B9C /* fish_shell */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D0D26943159835CA005D9B9C /* Build configuration list for PBXNativeTarget "fish_shell" */;
+ buildPhases = (
+ D0D269481598364C005D9B9C /* ShellScript */,
+ D0D02A90159844FD008E62BD /* ShellScript */,
+ D0D26938159835CA005D9B9C /* Sources */,
+ D0D26939159835CA005D9B9C /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = fish_shell;
+ productName = fish_Xcode;
+ productReference = D0D2693C159835CA005D9B9C /* fish */;
+ productType = "com.apple.product-type.tool";
+ };
+ D0F019DB15A969970034B3B1 /* set_color */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D0F019DF15A969970034B3B1 /* Build configuration list for PBXNativeTarget "set_color" */;
+ buildPhases = (
+ D0F019D815A969970034B3B1 /* Sources */,
+ D0F019D915A969970034B3B1 /* Frameworks */,
+ D0F019DA15A969970034B3B1 /* CopyFiles */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = set_color;
+ productName = set_color;
+ productReference = D0F019DC15A969970034B3B1 /* set_color */;
+ productType = "com.apple.product-type.tool";
+ };
+/* End PBXNativeTarget section */
+
/* Begin PBXProject section */
D0A084F213B3AC130099B651 /* Project object */ = {
isa = PBXProject;
@@ -259,14 +790,223 @@
en,
);
mainGroup = D0A084F013B3AC130099B651;
+ productRefGroup = D0D2693215983562005D9B9C /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
- D0A084F713B3AC130099B651 /* FishsFish */,
+ D0A084F713B3AC130099B651 /* Makefile */,
+ D0D02A9915985A75008E62BD /* fish.app */,
+ D0F019EC15A976F30034B3B1 /* fish_directory_tree */,
+ D0D2693B159835CA005D9B9C /* fish_shell */,
+ D0D02ABB15985EF9008E62BD /* fishd */,
+ D0D02ACF1598642A008E62BD /* fish_indent */,
+ D0D02AE315986537008E62BD /* fish_pager */,
+ D0F019DB15A969970034B3B1 /* set_color */,
);
};
/* End PBXProject section */
+/* Begin PBXResourcesBuildPhase section */
+ D0CBD585159EF09F0024809C /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0CBD587159EF0E10024809C /* launch_fish.scpt in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ D0D02A90159844FD008E62BD /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "${SRCROOT}/internalize_scripts.py --output ${DERIVED_FILE_DIR}";
+ };
+ D0D269481598364C005D9B9C /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "$(SRCROOT)/osx_config.h",
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/config.h",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "cp ${SRCROOT}/osx/osx_config.h ${DERIVED_FILE_DIR}/config.h";
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D0D02AB815985EF9008E62BD /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0D02AC215985F3F008E62BD /* fishd.cpp in Sources */,
+ D0D02AC315985F43008E62BD /* env_universal_common.cpp in Sources */,
+ D0D02AC415985F4D008E62BD /* wutil.cpp in Sources */,
+ D0D02AC515985F5B008E62BD /* print_help.cpp in Sources */,
+ D0D02AC615985F65008E62BD /* common.cpp in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D0D02ACC1598642A008E62BD /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0D02AD615986492008E62BD /* fish_indent.cpp in Sources */,
+ D0D02AD715986498008E62BD /* print_help.cpp in Sources */,
+ D0D02AD81598649E008E62BD /* common.cpp in Sources */,
+ D0D02AD9159864A6008E62BD /* parser_keywords.cpp in Sources */,
+ D0D02ADA159864AB008E62BD /* wutil.cpp in Sources */,
+ D0D02ADB159864C2008E62BD /* tokenizer.cpp in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D0D02AE015986537008E62BD /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0D02AEC1598657F008E62BD /* fish_indent.cpp in Sources */,
+ D0D02AED15986584008E62BD /* print_help.cpp in Sources */,
+ D0D02AEE15986591008E62BD /* common.cpp in Sources */,
+ D0D02AF0159865A2008E62BD /* wutil.cpp in Sources */,
+ D0D02AF1159865AC008E62BD /* parser_keywords.cpp in Sources */,
+ D0D02AF2159865B4008E62BD /* tokenizer.cpp in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D0D26938159835CA005D9B9C /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D07A7D3C15A7A38100811FC6 /* builtin_scripts.cpp in Sources */,
+ D0D02A7C159839D5008E62BD /* autoload.cpp in Sources */,
+ D0D02A7D159839D5008E62BD /* builtin_test.cpp in Sources */,
+ D0D02A7E159839D5008E62BD /* color.cpp in Sources */,
+ D0D02A7F159839D5008E62BD /* common.cpp in Sources */,
+ D0D02A80159839D5008E62BD /* event.cpp in Sources */,
+ D0D02A81159839D5008E62BD /* input_common.cpp in Sources */,
+ D0D02A82159839D5008E62BD /* io.cpp in Sources */,
+ D0D02A83159839D5008E62BD /* iothread.cpp in Sources */,
+ D0D02A84159839D5008E62BD /* parse_util.cpp in Sources */,
+ D0D02A85159839D5008E62BD /* path.cpp in Sources */,
+ D0D02A86159839D5008E62BD /* postfork.cpp in Sources */,
+ D0D02A87159839D5008E62BD /* screen.cpp in Sources */,
+ D0D02A88159839D5008E62BD /* signal.cpp in Sources */,
+ D0D2694A15983779005D9B9C /* builtin.cpp in Sources */,
+ D0D2694915983772005D9B9C /* function.cpp in Sources */,
+ D0D02A67159837AD008E62BD /* complete.cpp in Sources */,
+ D0D02A69159837B2008E62BD /* env.cpp in Sources */,
+ D0D02A6A1598381A008E62BD /* exec.cpp in Sources */,
+ D0D02A6B1598381F008E62BD /* expand.cpp in Sources */,
+ D0D02A6C15983829008E62BD /* highlight.cpp in Sources */,
+ D0D02A6D1598382C008E62BD /* history.cpp in Sources */,
+ D0D02A6E15983838008E62BD /* kill.cpp in Sources */,
+ D0D02A6F1598383E008E62BD /* parser.cpp in Sources */,
+ D0D02A8F15983D8F008E62BD /* parser_keywords.cpp in Sources */,
+ D0D02A7015983842008E62BD /* proc.cpp in Sources */,
+ D0D02A7115983848008E62BD /* reader.cpp in Sources */,
+ D0D02A721598384C008E62BD /* sanity.cpp in Sources */,
+ D0D02A7315983852008E62BD /* tokenizer.cpp in Sources */,
+ D0D02A7415983857008E62BD /* wildcard.cpp in Sources */,
+ D0D02A751598385E008E62BD /* wgetopt.cpp in Sources */,
+ D0D02A7615983869008E62BD /* wutil.cpp in Sources */,
+ D0D02A7715983875008E62BD /* input.cpp in Sources */,
+ D0D02A781598387E008E62BD /* output.cpp in Sources */,
+ D0D02A7915983888008E62BD /* intern.cpp in Sources */,
+ D0D02A7A15983916008E62BD /* env_universal.cpp in Sources */,
+ D0D02A7B15983928008E62BD /* env_universal_common.cpp in Sources */,
+ D0D02A89159839DF008E62BD /* fish.cpp in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D0F019D815A969970034B3B1 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0F019E515A969C30034B3B1 /* color.cpp in Sources */,
+ D0F019E215A969B40034B3B1 /* set_color.cpp in Sources */,
+ D0F019E315A969BA0034B3B1 /* print_help.cpp in Sources */,
+ D0F019E415A969C00034B3B1 /* common.cpp in Sources */,
+ D0F019E615A969C80034B3B1 /* wutil.cpp in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D0F01A0215A9788B0034B3B1 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D0F01A0315A978910034B3B1 /* osx_fish_launcher.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ D0F01A0915A97C860034B3B1 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = D0D2693B159835CA005D9B9C /* fish_shell */;
+ targetProxy = D0F01A0815A97C860034B3B1 /* PBXContainerItemProxy */;
+ };
+ D0F01A0B15A97C870034B3B1 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = D0D02ABB15985EF9008E62BD /* fishd */;
+ targetProxy = D0F01A0A15A97C870034B3B1 /* PBXContainerItemProxy */;
+ };
+ D0F01A0D15A97C890034B3B1 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = D0D02ACF1598642A008E62BD /* fish_indent */;
+ targetProxy = D0F01A0C15A97C890034B3B1 /* PBXContainerItemProxy */;
+ };
+ D0F01A0F15A97C980034B3B1 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = D0D02AE315986537008E62BD /* fish_pager */;
+ targetProxy = D0F01A0E15A97C980034B3B1 /* PBXContainerItemProxy */;
+ };
+ D0F01A1115A97C9B0034B3B1 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = D0F019DB15A969970034B3B1 /* set_color */;
+ targetProxy = D0F01A1015A97C9B0034B3B1 /* PBXContainerItemProxy */;
+ };
+ D0F01A1315AA36280034B3B1 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = D0D2693B159835CA005D9B9C /* fish_shell */;
+ targetProxy = D0F01A1215AA36280034B3B1 /* PBXContainerItemProxy */;
+ };
+ D0F01A1515AA362E0034B3B1 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = D0D02ABB15985EF9008E62BD /* fishd */;
+ targetProxy = D0F01A1415AA362E0034B3B1 /* PBXContainerItemProxy */;
+ };
+ D0F01A1715AA36300034B3B1 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = D0D02ACF1598642A008E62BD /* fish_indent */;
+ targetProxy = D0F01A1615AA36300034B3B1 /* PBXContainerItemProxy */;
+ };
+ D0F01A1915AA36310034B3B1 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = D0D02AE315986537008E62BD /* fish_pager */;
+ targetProxy = D0F01A1815AA36310034B3B1 /* PBXContainerItemProxy */;
+ };
+ D0F01A1B15AA36330034B3B1 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = D0F019DB15A969970034B3B1 /* set_color */;
+ targetProxy = D0F01A1A15AA36330034B3B1 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
/* Begin XCBuildConfiguration section */
D0A084F813B3AC130099B651 /* Debug */ = {
isa = XCBuildConfiguration;
@@ -274,7 +1014,12 @@
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "LOCALEDIR=\\\"/usr/local/share/locale\\\"",
+ "PREFIX=L\\\"/usr/local\\\"",
+ "DATADIR=L\\\"/usr/local/share\\\"",
+ "SYSCONFDIR=L\\\"/usr/local/etc\\\"",
+ );
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@@ -291,6 +1036,12 @@
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "LOCALEDIR=\\\"/usr/local/share/locale\\\"",
+ "PREFIX=L\\\"/usr/local\\\"",
+ "DATADIR=L\\\"/usr/local/share\\\"",
+ "SYSCONFDIR=L\\\"/usr/local/etc\\\"",
+ );
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
@@ -329,6 +1080,210 @@
};
name = Release;
};
+ D0D02AA515985A75008E62BD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ COPY_PHASE_STRIP = NO;
+ EXECUTABLE_NAME = fish_launcher;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ INFOPLIST_FILE = osx/Info.plist;
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ PRODUCT_NAME = fish;
+ WRAPPER_EXTENSION = app;
+ };
+ name = Debug;
+ };
+ D0D02AA615985A75008E62BD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ EXECUTABLE_NAME = fish_launcher;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ INFOPLIST_FILE = osx/Info.plist;
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ PRODUCT_NAME = fish;
+ WRAPPER_EXTENSION = app;
+ };
+ name = Release;
+ };
+ D0D02AC015985EFA008E62BD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Debug;
+ };
+ D0D02AC115985EFA008E62BD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Release;
+ };
+ D0D02AD41598642A008E62BD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Debug;
+ };
+ D0D02AD51598642A008E62BD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Release;
+ };
+ D0D02AE815986537008E62BD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Debug;
+ };
+ D0D02AE915986537008E62BD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Release;
+ };
+ D0D26944159835CA005D9B9C /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ PRODUCT_NAME = fish;
+ };
+ name = Debug;
+ };
+ D0D26945159835CA005D9B9C /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ PRODUCT_NAME = fish;
+ };
+ name = Release;
+ };
+ D0F019E015A969970034B3B1 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Debug;
+ };
+ D0F019E115A969970034B3B1 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Release;
+ };
+ D0F019EE15A976F30034B3B1 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Debug;
+ };
+ D0F019EF15A976F30034B3B1 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Release;
+ };
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
@@ -341,7 +1296,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- D0A084FA13B3AC130099B651 /* Build configuration list for PBXLegacyTarget "FishsFish" */ = {
+ D0A084FA13B3AC130099B651 /* Build configuration list for PBXLegacyTarget "Makefile" */ = {
isa = XCConfigurationList;
buildConfigurations = (
D0A084FB13B3AC130099B651 /* Debug */,
@@ -350,6 +1305,67 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
+ D0D02AA415985A75008E62BD /* Build configuration list for PBXNativeTarget "fish.app" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0D02AA515985A75008E62BD /* Debug */,
+ D0D02AA615985A75008E62BD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ D0D02ABF15985EFA008E62BD /* Build configuration list for PBXNativeTarget "fishd" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0D02AC015985EFA008E62BD /* Debug */,
+ D0D02AC115985EFA008E62BD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ D0D02AD31598642A008E62BD /* Build configuration list for PBXNativeTarget "fish_indent" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0D02AD41598642A008E62BD /* Debug */,
+ D0D02AD51598642A008E62BD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ D0D02AE715986537008E62BD /* Build configuration list for PBXNativeTarget "fish_pager" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0D02AE815986537008E62BD /* Debug */,
+ D0D02AE915986537008E62BD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ D0D26943159835CA005D9B9C /* Build configuration list for PBXNativeTarget "fish_shell" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0D26944159835CA005D9B9C /* Debug */,
+ D0D26945159835CA005D9B9C /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ D0F019DF15A969970034B3B1 /* Build configuration list for PBXNativeTarget "set_color" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0F019E015A969970034B3B1 /* Debug */,
+ D0F019E115A969970034B3B1 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ };
+ D0F019ED15A976F30034B3B1 /* Build configuration list for PBXAggregateTarget "fish_directory_tree" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D0F019EE15A976F30034B3B1 /* Debug */,
+ D0F019EF15A976F30034B3B1 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ };
/* End XCConfigurationList section */
};
rootObject = D0A084F213B3AC130099B651 /* Project object */;
diff --git a/Makefile.in b/Makefile.in
index b70dd621..d76ad119 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -55,7 +55,6 @@ mandir = @mandir@
sysconfdir = @sysconfdir@
docdir = @docdir@
localedir = @localedir@
-prefix = @prefix@
optbindirs = @optbindirs@
#
@@ -226,20 +225,6 @@ MAIN_DIR_FILES := $(sort $(MAIN_DIR_FILES_UNSORTED))
#
-# Files in ./etc/
-#
-
-ETC_DIR_FILES :=etc/config.fish.in
-
-
-#
-# Files in ./share/
-#
-
-SHARE_DIR_FILES :=share/config.fish.in
-
-
-#
# Files in ./tests/
#
@@ -296,7 +281,7 @@ XSEL_BIN := @XSEL_BIN@
# Make everything needed for installing fish
#
-all: $(PROGRAMS) user_doc share/man etc/config.fish share/config.fish $(TRANSLATIONS)
+all: $(PROGRAMS) user_doc share/man $(TRANSLATIONS)
@echo fish has now been built.
@echo Use \'$(MAKE) install\' to install fish.
.PHONY: all
@@ -319,12 +304,9 @@ Makefile: Makefile.in configure
# and should only be used when debuging fish.
#
-debug:
- $(MAKE) fish EXTRA_CXXFLAGS="-O0 -Wno-unused -g"
-.PHONY: debug
-
-prof:
- $(MAKE) all EXTRA_CXXFLAGS="-pg" LDFLAGS="-pg"
+prof: EXTRA_CXXFLAGS += -pg
+prof: LDFLAGS += -pg
+prof: all
.PHONY: prof
#
@@ -335,8 +317,7 @@ prof:
# intermediate *.hdr and doc.h files if needed
# Allow doxygen to fail, e.g. if it does not exist
-user_doc: $(HDR_FILES_SRC) Doxyfile.user user_doc.head.html $(HELP_SRC)
- $(MAKE) doc.h $(HDR_FILES)
+user_doc: $(HDR_FILES_SRC) Doxyfile.user user_doc.head.html $(HELP_SRC) doc.h $(HDR_FILES)
- doxygen Doxyfile.user && touch user_doc
@@ -471,10 +452,10 @@ doc.h: $(HDR_FILES)
# Create a template translation object
#
-messages.pot: *.cpp *.h etc/*.in share/*.in share/completions/*.fish share/functions/*.fish seq
+messages.pot: *.cpp *.h share/completions/*.fish share/functions/*.fish seq
if test $(HAVE_GETTEXT) = 1;then \
xgettext -k_ -kN_ *.cpp *.h -o messages.pot; \
- if xgettext -j -k_ -kN_ -k--description -LShell etc/*.in share/*.in share/completions/*.fish share/functions/*.fish seq -o messages.pot; then true; else \
+ if xgettext -j -k_ -kN_ -k--description -LShell share/completions/*.fish share/functions/*.fish seq -o messages.pot; then true; else \
echo "Your xgettext version is too old to build the messages.pot file"\
rm messages.pot\
false;\
@@ -669,16 +650,15 @@ uninstall: uninstall-translations
rm -f $(DESTDIR)$(bindir)/$$i; \
done;
-rm -f $(DESTDIR)$(bindir)/xsel
- -rm -f $(DESTDIR)$(sysconfdir)/fish/config.fish
- -rmdir $(DESTDIR)$(sysconfdir)/fish
+ -rm -rf $(DESTDIR)$(sysconfdir)/fish
-if test -d $(DESTDIR)$(datadir)/fish; then \
rm -r $(DESTDIR)$(datadir)/fish; \
fi
-if test -d $(DESTDIR)$(docdir); then \
- rm -r $(DESTDIR)$(docdir);\
+ rm -rf $(DESTDIR)$(docdir);\
fi
-for i in $(MANUALS); do \
- rm -f $(DESTDIR)$(mandir)/man1/`basename $$i`*; \
+ rm -rf $(DESTDIR)$(mandir)/man1/`basename $$i`*; \
done;
.PHONY: uninstall
@@ -821,49 +801,6 @@ depend:
autoload.cpp function.cpp: $(GENERATED_INTERN_SCRIPT_FILES)
#
-# Copy all the source files into a new directory and use tar to create
-# an archive from it. Simplest way I could think of to make an archive
-# witout backups, autogenerated files, etc.
-#
-# Uses install instead of mkdir so build won't fail if the directory
-# exists
-#
-
-fish-@PACKAGE_VERSION@.tar: $(DOC_SRC_DIR_FILES) $(MAIN_DIR_FILES) $(ETC_DIR_FILES) $(TEST_DIR_FILES) $(SHARE_DIR_FILES) $(FUNCTIONS_DIR_FILES) $(COMPLETIONS_DIR_FILES) ChangeLog user_doc share/man
- rm -rf fish-@PACKAGE_VERSION@
- $(INSTALL) -d fish-@PACKAGE_VERSION@
- $(INSTALL) -d fish-@PACKAGE_VERSION@/doc_src
- $(INSTALL) -d fish-@PACKAGE_VERSION@/user_doc
- $(INSTALL) -d fish-@PACKAGE_VERSION@/etc
- $(INSTALL) -d fish-@PACKAGE_VERSION@/share
- $(INSTALL) -d fish-@PACKAGE_VERSION@/share/completions
- $(INSTALL) -d fish-@PACKAGE_VERSION@/share/functions
- $(INSTALL) -d fish-@PACKAGE_VERSION@/share/man
- $(INSTALL) -d fish-@PACKAGE_VERSION@/tests
- $(INSTALL) -d fish-@PACKAGE_VERSION@/po
- cp -f $(DOC_SRC_DIR_FILES) fish-@PACKAGE_VERSION@/doc_src
- cp -f $(MAIN_DIR_FILES) fish-@PACKAGE_VERSION@/
- cp -f $(ETC_DIR_FILES) fish-@PACKAGE_VERSION@/etc/
- cp -f $(SHARE_DIR_FILES) fish-@PACKAGE_VERSION@/share/
- cp -f $(COMPLETIONS_DIR_FILES) fish-@PACKAGE_VERSION@/share/completions/
- cp -f $(FUNCTIONS_DIR_FILES) fish-@PACKAGE_VERSION@/share/functions/
- cp -f $(TESTS_DIR_FILES) fish-@PACKAGE_VERSION@/tests/
- cp -f $(TRANSLATIONS_SRC) fish-@PACKAGE_VERSION@/po/
- cp -f share/man/*.1 fish-@PACKAGE_VERSION@/share/man/
- cp -rf user_doc fish-@PACKAGE_VERSION@/
- tar -c fish-@PACKAGE_VERSION@ >fish-@PACKAGE_VERSION@.tar
- rm -rf fish-@PACKAGE_VERSION@
-
-
-#
-# Just an alias for fish-@PACKAGE_VERSION@.tar
-#
-
-tar: fish-@PACKAGE_VERSION@.tar
-.PHONY: tar
-
-
-#
# Make compressed tar archives
#
@@ -915,7 +852,6 @@ rpm: fish-@PACKAGE_VERSION@.tar.bz2 fish.spec
distclean: clean
rm -f fish.spec Doxyfile.help
- rm -f etc/config.fish seq share/config.fish
rm -f config.status config.log config.h Makefile
rm -rf $(XSEL)
.PHONY: distclean
@@ -932,7 +868,7 @@ clean:
rm -f tests/tmp.err tests/tmp.out tests/tmp.status tests/foo.txt
rm -f $(PROGRAMS) fish_tests tokenizer_test key_reader
rm -f command_list.txt toc.txt
- rm -f share/config.fish etc/config.fish doc_src/index.hdr doc_src/commands.hdr
+ rm -f doc_src/index.hdr doc_src/commands.hdr
rm -f fish-@PACKAGE_VERSION@.tar
rm -f fish-@PACKAGE_VERSION@.tar.gz
rm -f fish-@PACKAGE_VERSION@.tar.bz2
diff --git a/build_tools/make_tarball.sh b/build_tools/make_tarball.sh
index 9b8dd296..c7400292 100755
--- a/build_tools/make_tarball.sh
+++ b/build_tools/make_tarball.sh
@@ -1,9 +1,11 @@
#!/bin/sh
-rm -f ~/fish_built/fishfish.tar.gz
-if git archive --format=tar --prefix=fishfish/ master | gzip - > ~/fish_built/fishfish.tar.gz
+path=~/fish_built/fishfish-2.0.tar.gz
+rm -f "$path"
+if git archive --format=tar --prefix=fishfish/ master | gzip - > "$path"
then
- echo "Tarball written to ~/fish_built/fishfish.tar.gz"
+ echo "Tarball written to $path"
+ openssl sha1 "$path"
else
echo "Tarball could not be written"
fi
diff --git a/configure.ac b/configure.ac
index 111178eb..908fed38 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,7 +9,7 @@
# configure the build process.
#
-AC_INIT(fish,1.23.1,fish-users@lists.sf.net)
+AC_INIT(fish,2.0.0,fish-users@lists.sf.net)
#
# preserve configure arguments for xsel
diff --git a/etc/config.fish.in b/etc/config.fish
index 5e4ed67b..a3f3b9f3 100644
--- a/etc/config.fish.in
+++ b/etc/config.fish
@@ -1,7 +1,6 @@
#
# Init file for fish
#
-# @configure_input@
#
# Some things should only be done for login terminals
diff --git a/fish.cpp b/fish.cpp
index 24424e5b..67f6f4d1 100644
--- a/fish.cpp
+++ b/fish.cpp
@@ -32,6 +32,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include <unistd.h>
#include <termios.h>
#include <fcntl.h>
+#include <sys/param.h>
#ifdef HAVE_GETOPT_H
#include <getopt.h>
@@ -61,20 +62,177 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "history.h"
#include "path.h"
+/* PATH_MAX may not exist */
+#ifndef PATH_MAX
+#define PATH_MAX 1024
+#endif
+
/**
The string describing the single-character options accepted by the main fish binary
*/
#define GETOPT_STRING "+hilnvc:p:d:"
+static bool has_suffix(const std::string &path, const char *suffix, bool ignore_case)
+{
+ size_t pathlen = path.size(), suffixlen = strlen(suffix);
+ return pathlen >= suffixlen && ! (ignore_case ? strcasecmp : strcmp)(path.c_str() + pathlen - suffixlen, suffix);
+}
+
+/* Modifies the given path by calling realpath. Returns true if realpath succeeded, false otherwise */
+static bool get_realpath(std::string &path)
+{
+ char buff[PATH_MAX], *ptr;
+ if ((ptr = realpath(path.c_str(), buff)))
+ {
+ path = ptr;
+ }
+ return ptr != NULL;
+}
+
+/* OS X function for getting the executable path */
+extern "C" {
+ int _NSGetExecutablePath(char* buf, uint32_t* bufsize);
+}
+
+/* Return the path to the current executable. This needs to be realpath'd. */
+static std::string get_executable_path(const char *argv0)
+{
+ char buff[PATH_MAX];
+#if __APPLE__
+ {
+ /* Returns 0 on success, -1 if the buffer is too small */
+ uint32_t buffSize = sizeof buff;
+ if (0 == _NSGetExecutablePath(buff, &buffSize))
+ return std::string(buff);
+
+ /* Loop until we're big enough */
+ char *mbuff = (char *)malloc(buffSize);
+ while (0 > _NSGetExecutablePath(mbuff, &buffSize))
+ mbuff = (char *)realloc(mbuff, buffSize);
+
+ /* Return the string */
+ std::string result = mbuff;
+ free(mbuff);
+ return result;
+ }
+#endif
+ {
+ /* On other Unixes, try /proc directory. This might be worth breaking out into macros. */
+ if (0 < readlink("/proc/self/exe", buff, sizeof buff) || // Linux
+ 0 < readlink("/proc/curproc/file", buff, sizeof buff) || // BSD
+ 0 < readlink("/proc/self/path/a.out", buff, sizeof buff)) // Solaris
+ {
+ return std::string(buff);
+ }
+ }
+
+ /* Just return argv0, which probably won't work (i.e. it's not an absolute path or a path relative to the working directory, but instead something the caller found via $PATH). We'll eventually fall back to the compile time paths. */
+ return std::string(argv0 ? argv0 : "");
+}
+
+/* A struct of configuration directories.
+ */
+struct config_paths_t
+{
+ wcstring data; // e.g. /usr/local/share
+ wcstring sysconf; // e.g. /usr/local/etc
+ wcstring doc; // e.g. /usr/local/share/doc/fish
+ wcstring bin; // e.g. /usr/local/bin
+};
+
+static struct config_paths_t determine_config_directory_paths(const char *argv0)
+{
+ struct config_paths_t paths;
+ bool done = false;
+ std::string exec_path = get_executable_path(argv0);
+ if (get_realpath(exec_path))
+ {
+#if __APPLE__
+
+ /* On OS X, maybe we're an app bundle, and should use the bundle's files. Since we don't link CF, use this lame approach to test it: see if the resolved path ends with /Contents/MacOS/fish, case insensitive since HFS+ usually is.
+ */
+ if (! done)
+ {
+ const char *suffix = "/Contents/MacOS/fish";
+ const size_t suffixlen = strlen(suffix);
+ if (has_suffix(exec_path, suffix, true))
+ {
+ /* Looks like we're a bundle. Cut the string at the / prefixing /Contents... and then the rest */
+ wcstring wide_resolved_path = str2wcstring(exec_path);
+ wide_resolved_path.resize(exec_path.size() - suffixlen);
+ wide_resolved_path.append(L"/Contents/Resources/");
+
+ /* Append share, etc, doc */
+ paths.data = wide_resolved_path + L"share/fish";
+ paths.sysconf = wide_resolved_path + L"etc/fish";
+ paths.doc = wide_resolved_path + L"doc";
+
+ /* But the bin_dir is the resolved_path, minus fish (aka the MacOS directory) */
+ paths.bin = str2wcstring(exec_path);
+ paths.bin.resize(paths.bin.size() - strlen("/fish"));
+
+ done = true;
+ }
+ }
+#endif
+
+ if (! done)
+ {
+ /* The next check is that we are in a reloctable directory tree like this:
+ bin/fish
+ etc/fish
+ share/fish
+
+ Check it!
+ */
+ const char *suffix = "/bin/fish";
+ if (has_suffix(exec_path, suffix, false))
+ {
+ wcstring base_path = str2wcstring(exec_path);
+ base_path.resize(base_path.size() - strlen(suffix));
+
+ paths.data = base_path + L"/share/fish";
+ paths.sysconf = base_path + L"/etc/fish";
+ paths.doc = base_path + L"/share/doc";
+ paths.bin = base_path + L"/bin";
+
+ struct stat buf;
+ if (0 == wstat(paths.data, &buf) && 0 == wstat(paths.sysconf, &buf))
+ {
+ done = true;
+ }
+ }
+ }
+ }
+
+ if (! done)
+ {
+ /* Fall back to what got compiled in. */
+ paths.data = L"" DATADIR "/fish";
+ paths.sysconf = L"" SYSCONFDIR "/fish";
+ paths.doc = L"" DATADIR "/doc/fish";
+ paths.bin = L"" PREFIX "/bin";
+
+ done = true;
+ }
+
+ /* Set the results in the environment */
+ env_set(L"__fish_datadir", paths.data.c_str(), ENV_GLOBAL | ENV_EXPORT);
+ env_set(L"__fish_sysconfdir", paths.sysconf.c_str(), ENV_GLOBAL | ENV_EXPORT);
+ env_set(L"__fish_help_dir", paths.doc.c_str(), ENV_GLOBAL | ENV_EXPORT);
+ env_set(L"__fish_bin_dir", paths.bin.c_str(), ENV_GLOBAL | ENV_EXPORT);
+
+ return paths;
+}
+
/**
- Parse init files
+ Parse init files. exec_path is the path of fish executable as determined by argv[0].
*/
-static int read_init()
+static int read_init(const struct config_paths_t &paths)
{
parser_t &parser = parser_t::principal_parser();
-
- parser.eval( L"builtin . " DATADIR "/fish/config.fish 2>/dev/null", 0, TOP );
- parser.eval( L"builtin . " SYSCONFDIR L"/fish/config.fish 2>/dev/null", 0, TOP );
+ parser.eval( L"builtin . " + paths.data + L"/config.fish 2>/dev/null", 0, TOP );
+ parser.eval( L"builtin . " + paths.sysconf + L"/config.fish 2>/dev/null", 0, TOP );
/*
We need to get the configuration directory before we can source the user configuration file
@@ -292,7 +450,7 @@ int main( int argc, char **argv )
debug( 1, _(L"Can not use the no-execute mode when running an interactive session") );
no_exec = 0;
}
-
+
proc_init();
event_init();
wutil_init();
@@ -308,7 +466,9 @@ int main( int argc, char **argv )
if (g_log_forks)
printf("%d: g_fork_count: %d\n", __LINE__, g_fork_count);
- if( read_init() )
+ /* Determine config paths */
+ const struct config_paths_t paths = determine_config_directory_paths(argv[0]);
+ if( read_init(paths) )
{
if( cmd != 0 )
{
diff --git a/internalize_scripts.py b/internalize_scripts.py
index b0b06fdf..314fb6c0 100755
--- a/internalize_scripts.py
+++ b/internalize_scripts.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
-import string, sys, os.path
+import string, sys, os.path, getopt
escapes = {}
escapes['\a'] = r'\a'
@@ -64,7 +64,34 @@ class cfunc:
TYPES = ['function', 'completion']
type_to_funcs = dict((t, []) for t in TYPES)
-for file in sys.argv[1:]:
+
+def usage(script_name):
+ print("Usage: {0} [--output output_directory] files...".format(script_name))
+ print("""Command options are:
+ --output directory\t\tThe directory to output the files
+ -h, --help\t\t\tShow this help message
+ """)
+
+script_name = sys.argv[0]
+try:
+ opts, file_paths = getopt.gnu_getopt(sys.argv[1:], 'h', ['output=', 'help'])
+except getopt.GetoptError as err:
+ print(err.msg) # will print something like "option -a not recognized"
+ usage(script_name)
+ sys.exit(2)
+
+output_directory = './'
+for opt, value in opts:
+ if opt in ('--output',):
+ output_directory = value
+ elif opt in ('-h', '--help'):
+ usage(script_name)
+ sys.exit(0)
+ else:
+ assert False, "unhandled option"
+
+
+for file in file_paths:
fd = open(file, 'r')
newlines = []
for line in fd:
@@ -89,7 +116,7 @@ for funcs in type_to_funcs.values():
funcs.sort(key=cfunc.cfunc_name)
# Output our header
-fd = open('builtin_scripts.h', 'w')
+fd = open(os.path.join(output_directory, 'builtin_scripts.h'), 'w')
fd.write('/* This file is generated by internalize_scripts.py */\n\n')
fd.write("""struct builtin_script_t {
const wchar_t *name;
@@ -106,7 +133,7 @@ for type in TYPES:
fd.close()
# Output the function definitions
-fd = open('builtin_scripts.cpp', 'w')
+fd = open(os.path.join(output_directory, 'builtin_scripts.cpp'), 'w')
fd.write('/* This file is generated by internalize_scripts.py */\n\n')
fd.write('#include "builtin_scripts.h"\n\n')
for type in TYPES:
diff --git a/osx/Info.plist b/osx/Info.plist
new file mode 100644
index 00000000..dcce2c28
--- /dev/null
+++ b/osx/Info.plist
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDisplayName</key>
+ <string>fish shell</string>
+ <key>CFBundleExecutable</key>
+ <string>fish_launcher</string>
+ <key>CFBundleIconFile</key>
+ <string>fish.icns</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.ridiculousfish.fish-shell</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>fish shell</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>2.0</string>
+ <key>CFBundleVersion</key>
+ <string>289.5</string>
+ <key>LSApplicationCategoryType</key>
+ <string>public.app-category.productivity</string>
+ <key>LSMinimumSystemVersion</key>
+ <string>10.6</string>
+ <key>NSHumanReadableCopyright</key>
+ <string>Copyright © 2012, ridiculous_fish
+All rights reserved.</string>
+ <key>LSUIElement</key>
+ <true/>
+</dict>
+</plist>
diff --git a/osx/launch_fish.scpt b/osx/launch_fish.scpt
new file mode 100644
index 00000000..0afefdb6
--- /dev/null
+++ b/osx/launch_fish.scpt
Binary files differ
diff --git a/osx/osx_config.h b/osx/osx_config.h
new file mode 100644
index 00000000..14207b37
--- /dev/null
+++ b/osx/osx_config.h
@@ -0,0 +1,218 @@
+/* config.h. Generated from config.h.in by configure. */
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define to 1 if you have the `backtrace' function. */
+#define HAVE_BACKTRACE 1
+
+/* Define to 1 if you have the `backtrace_symbols' function. */
+#define HAVE_BACKTRACE_SYMBOLS 1
+
+/* del_curterm is broken, redefine it to a no-op to avoid a double-free bug */
+/* #undef HAVE_BROKEN_DEL_CURTERM */
+
+/* Define to 1 one if the implemented fwprintf is broken */
+/* #undef HAVE_BROKEN_FWPRINTF */
+
+/* Define to 1 if you have the <curses.h> header file. */
+#define HAVE_CURSES_H 1
+
+/* Define to 1 if you have the `dcgettext' function. */
+/* #undef HAVE_DCGETTEXT */
+
+/* Define to 1 if you have the <execinfo.h> header file. */
+#define HAVE_EXECINFO_H 1
+
+/* Define to 1 if you have the `fgetwc' function. */
+#define HAVE_FGETWC 1
+
+/* Define to 1 if you have the `fputwc' function. */
+#define HAVE_FPUTWC 1
+
+/* Define to 1 if you have the `futimes' function. */
+#define HAVE_FUTIMES 1
+
+/* Define to 1 if you have the `fwprintf' function. */
+#define HAVE_FWPRINTF 1
+
+/* Define to 1 if you have the <getopt.h> header file. */
+#define HAVE_GETOPT_H 1
+
+/* Define to 1 if you have the `gettext' function. */
+/* #undef HAVE_GETTEXT */
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the `killpg' function. */
+#define HAVE_KILLPG 1
+
+/* Define to 1 if you have the <libintl.h> header file. */
+/* #undef HAVE_LIBINTL_H */
+
+/* Define to 1 if you have the `lrand48_r' function. */
+/* #undef HAVE_LRAND48_R */
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the nan function */
+#define HAVE_NAN 1
+
+/* Define to 1 if you have the <ncurses.h> header file. */
+#define HAVE_NCURSES_H 1
+
+/* Define to 1 if you have the <ncurses/term.h> header file. */
+/* #undef HAVE_NCURSES_TERM_H */
+
+/* Define to 1 if realpath accepts null for its second argument. */
+#define HAVE_REALPATH_NULL 1
+
+/* Define to 1 if you have the <regex.h> header file. */
+#define HAVE_REGEX_H 1
+
+/* Define to 1 if you have the <siginfo.h> header file. */
+/* #undef HAVE_SIGINFO_H */
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <stropts.h> header file. */
+/* #undef HAVE_STROPTS_H */
+
+/* Define to 1 if you have the `sysconf' function. */
+#define HAVE_SYSCONF 1
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#define HAVE_SYS_IOCTL_H 1
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+#define HAVE_SYS_RESOURCE_H 1
+
+/* Define to 1 if you have the <sys/select.h> header file. */
+#define HAVE_SYS_SELECT_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/termios.h> header file. */
+#define HAVE_SYS_TERMIOS_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <termio.h> header file. */
+/* #undef HAVE_TERMIO_H */
+
+/* Define to 1 if you have the <term.h> header file. */
+#define HAVE_TERM_H 1
+
+/* Define to 1 if the wgettext function should be used for translating
+ strings. */
+#define HAVE_TRANSLATE_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the `wcscasecmp' function. */
+#define HAVE_WCSCASECMP 1
+
+/* Define to 1 if you have the `wcsdup' function. */
+#define HAVE_WCSDUP 1
+
+/* Define to 1 if you have the `wcslcat' function. */
+#define HAVE_WCSLCAT 1
+
+/* Define to 1 if you have the `wcslcpy' function. */
+#define HAVE_WCSLCPY 1
+
+/* Define to 1 if you have the `wcslen' function. */
+#define HAVE_WCSLEN 1
+
+/* Define to 1 if you have the `wcsncasecmp' function. */
+#define HAVE_WCSNCASECMP 1
+
+/* Define to 1 if you have the `wcsndup' function. */
+/* #undef HAVE_WCSNDUP */
+
+/* Define to 1 if you have the `wcstok' function. */
+#define HAVE_WCSTOK 1
+
+/* Define to 1 if you have the `wcstol' function. */
+#define HAVE_WCSTOL 1
+
+/* Define to 1 if you have the `wcswidth' function. */
+#define HAVE_WCSWIDTH 1
+
+/* Define to 1 if you have the `wcwidth' function. */
+#define HAVE_WCWIDTH 1
+
+/* Define to 1 if the winsize struct and TIOCGWINSZ macro exist */
+#define HAVE_WINSIZE 1
+
+/* Define to 1 if getopt_long exists and works. */
+#define HAVE_WORKING_GETOPT_LONG 1
+
+/* Define to 1 if the _nl_msg_cat_cntr symbol is exported. */
+/* #undef HAVE__NL_MSG_CAT_CNTR */
+
+/* Define to 1 if you have the file `/proc/self/stat'. */
+/* #undef HAVE__PROC_SELF_STAT */
+
+/* Define to 1 if the __environ symbol is exported. */
+/* #undef HAVE___ENVIRON */
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "fish-users@lists.sf.net"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "fish"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "fish 2.0.0"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "fish"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "2.0.0"
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define to 1 if tparm accepts a fixed amount of paramters. */
+/* #undef TPARM_SOLARIS_KLUDGE */
+
+/* Evil kludge to get Power based machines to work */
+/* #undef TPUTS_KLUDGE */
+
+/* Perform string translations with gettext */
+#define USE_GETTEXT 1
+
+/* Macro to enable additional prototypes under BSD */
+/* #undef _NETBSD_SOURCE */
+
+/* Macro to enable additional prototypes under BSD */
+/* #undef __BSD_VISIBLE */
+
+/* Macro to enable additional prototypes under Solaris */
+/* #undef __EXTENSIONS__ */
+
+#if __GNUC__ >= 3
+#define __warn_unused __attribute__ ((warn_unused_result))
+#define __sentinel __attribute__ ((sentinel))
+#else
+#define __warn_unused
+#define __sentinel
+#endif
diff --git a/osx/osx_fish_launcher.m b/osx/osx_fish_launcher.m
new file mode 100644
index 00000000..8b24d2ec
--- /dev/null
+++ b/osx/osx_fish_launcher.m
@@ -0,0 +1,98 @@
+#import <Foundation/Foundation.h>
+#import <CoreServices/CoreServices.h>
+#import <Carbon/Carbon.h>
+#import <stdlib.h>
+#import <stdio.h>
+#import <unistd.h>
+#import <errno.h>
+#import <sys/types.h>
+#import <sys/stat.h>
+
+
+// The path to the command file, which we'll delete on death (if it exists)
+static char s_command_path[PATH_MAX];
+
+static void die(const char *format, ...) {
+ va_list ap;
+ va_start(ap, format);
+ vfprintf(stderr, format, ap);
+ va_end(ap);
+ fputc('\n', stderr);
+
+ if (s_command_path[0] != '\0') {
+ unlink(s_command_path);
+ }
+
+ exit(EXIT_FAILURE);
+}
+
+static void launch_fish_with_applescript(NSString *fish_binary_path)
+{
+ // load the script from a resource by fetching its URL from within our bundle
+ NSString *path = [[NSBundle mainBundle] pathForResource:@"launch_fish" ofType:@"scpt"];
+ if (! path) die("Couldn't get path to launch_fish.scpt");
+
+ NSURL *url = [NSURL fileURLWithPath:path isDirectory:NO];
+ if (! url) die("Couldn't get URL to launch_fish.scpt");
+
+ NSDictionary *errors = nil;
+ NSAppleScript *appleScript = [[NSAppleScript alloc] initWithContentsOfURL:url error:&errors];
+ if (! appleScript) die("Couldn't load AppleScript");
+
+ // create the first parameter
+ NSAppleEventDescriptor *firstParameter =
+ [NSAppleEventDescriptor descriptorWithString:fish_binary_path];
+
+ // create and populate the list of parameters (in our case just one)
+ NSAppleEventDescriptor *parameters = [NSAppleEventDescriptor listDescriptor];
+ [parameters insertDescriptor:firstParameter atIndex:1];
+
+ // create the AppleEvent target
+ ProcessSerialNumber psn = {0, kCurrentProcess};
+ NSAppleEventDescriptor *target =
+ [NSAppleEventDescriptor
+ descriptorWithDescriptorType:typeProcessSerialNumber
+ bytes:&psn
+ length:sizeof(ProcessSerialNumber)];
+
+ // create an NSAppleEventDescriptor with the script's method name to call,
+ // this is used for the script statement: "on show_message(user_message)"
+ // Note that the routine name must be in lower case.
+ NSAppleEventDescriptor *handler = [NSAppleEventDescriptor descriptorWithString:
+ [@"launch_fish" lowercaseString]];
+
+ // create the event for an AppleScript subroutine,
+ // set the method name and the list of parameters
+ NSAppleEventDescriptor *event =
+ [NSAppleEventDescriptor appleEventWithEventClass:kASAppleScriptSuite
+ eventID:kASSubroutineEvent
+ targetDescriptor:target
+ returnID:kAutoGenerateReturnID
+ transactionID:kAnyTransactionID];
+ [event setParamDescriptor:handler forKeyword:keyASSubroutineName];
+ [event setParamDescriptor:parameters forKeyword:keyDirectObject];
+
+ // call the event in AppleScript
+ if (![appleScript executeAppleEvent:event error:&errors])
+ {
+ // report any errors from 'errors'
+ NSLog(@"Oops: %@", errors);
+ }
+
+ [appleScript release];
+}
+
+/* This approach asks Terminal to open a script that we control */
+int main(void) {
+ [[NSAutoreleasePool alloc] init];
+
+ /* Get the fish executable. Make sure it's absolute. */
+ NSURL *fish_executable = [[NSBundle mainBundle] URLForResource:@"fish" withExtension:@"" subdirectory:@"base/bin"];
+ if (! fish_executable)
+ die("Could not find fish executable in bundle");
+
+ launch_fish_with_applescript([fish_executable path]);
+
+ /* If we succeeded, it will clean itself up */
+ return 0;
+}
diff --git a/share/config.fish.in b/share/config.fish
index dc1c0f07..af2e15cb 100644
--- a/share/config.fish.in
+++ b/share/config.fish
@@ -3,7 +3,6 @@
# common helper functions for the command completions. All actual
# completions are located in the completions subdirectory.
#
-# @configure_input@
#
# Set default field separators
@@ -22,36 +21,28 @@ if set -q XDG_CONFIG_HOME
set configdir $XDG_CONFIG_HOME
end
-# These are used internally by fish in various places
-if not set -q __fish_datadir
- set -g __fish_datadir @datadir@/fish
-end
-
-if not set -q __fish_sysconfdir
- set -g __fish_sysconfdir @sysconfdir@/fish
-end
+# __fish_datadir, __fish_sysconfdir, __fish_help_dir, __fish_bin_dir
+# are expected to have been set up by read_init from fish.cpp
# Set up function and completion paths. Make sure that the fish
# default functions/completions are included in the respective path.
if not set -q fish_function_path
- set -U fish_function_path $configdir/fish/functions @sysconfdir@/fish/functions @datadir@/fish/functions
+ set fish_function_path $configdir/fish/functions $__fish_sysconfdir/functions $__fish_datadir/functions
end
-if not contains @datadir@/fish/functions $fish_function_path
- set fish_function_path[-1] @datadir@/fish/functions
+if not contains $__fish_datadir/functions $fish_function_path
+ set fish_function_path[-1] $__fish_datadir/functions
end
if not set -q fish_complete_path
- set -U fish_complete_path $configdir/fish/completions @sysconfdir@/fish/completions @datadir@/fish/completions
+ set fish_complete_path $configdir/fish/completions $__fish_sysconfdir/completions $__fish_datadir/completions
end
-if not contains @datadir@/fish/completions $fish_complete_path
- set fish_complete_path[-1] @datadir@/fish/completions
+if not contains $__fish_datadir/completions $fish_complete_path
+ set fish_complete_path[-1] $__fish_datadir/completions
end
-set __fish_help_dir @docdir@
-
#
# This is a Solaris-specific test to modify the PATH so that
# Posix-conformant tools are used by default. It is separate from the
@@ -72,12 +63,12 @@ end
# want this even for text-only terminals.
#
-set -l path_list /bin /usr/bin /usr/X11R6/bin /usr/local/bin @prefix@/bin @optbindirs@
+set -l path_list /bin /usr/bin /usr/X11R6/bin /usr/local/bin $__fish_bin_dir
# Root should also have the sbin directories in the path
switch $USER
case root
- set path_list $path_list /sbin /usr/sbin /usr/local/sbin @prefix@/sbin
+ set path_list $path_list /sbin /usr/sbin /usr/local/sbin
end
for i in $path_list