diff --git a/.gitignore b/.gitignore index 217b16528..5906847ea 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 c74623f5e..d00a84f62 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 = ""; }; D09B1C1914FC7B5B00F91077 /* postfork.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = postfork.cpp; sourceTree = ""; }; @@ -109,13 +385,111 @@ D0A0856713B3ACEE0099B651 /* xdgmimeparent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xdgmimeparent.cpp; sourceTree = ""; }; D0B6B0FE14E88BA400AD6C10 /* color.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = color.cpp; sourceTree = ""; }; D0B6B0FF14E88BA400AD6C10 /* color.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = color.h; sourceTree = ""; }; + D0C4FD9415A7D7EE00212EF1 /* config.fish */ = {isa = PBXFileReference; lastKnownFileType = text; name = config.fish; path = etc/config.fish; sourceTree = ""; }; D0C6FCC914CFA4B0004CE8AD /* autoload.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = autoload.cpp; sourceTree = ""; }; D0C6FCCB14CFA4B7004CE8AD /* autoload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = autoload.h; sourceTree = ""; }; + D0CBD578159EE4600024809C /* completions */ = {isa = PBXFileReference; lastKnownFileType = folder; name = completions; path = share/completions; sourceTree = ""; }; + D0CBD579159EE4600024809C /* functions */ = {isa = PBXFileReference; lastKnownFileType = folder; name = functions; path = share/functions; sourceTree = ""; }; + D0CBD57A159EE4600024809C /* tools */ = {isa = PBXFileReference; lastKnownFileType = folder; name = tools; path = share/tools; sourceTree = ""; }; + D0CBD580159EE48F0024809C /* config.fish */ = {isa = PBXFileReference; lastKnownFileType = text; name = config.fish; path = share/config.fish; sourceTree = ""; }; + 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 = ""; }; + 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 = ""; }; + 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 = ""; }; + 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 = ""; }; + D0F5E28215A7A32D00315DFF /* builtin_scripts.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_scripts.cpp; sourceTree = ""; }; + D0F5E28315A7A32D00315DFF /* builtin_scripts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_scripts.h; sourceTree = ""; }; + D0F5E28415A7A32D00315DFF /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = ""; }; /* 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 = ""; + }; + D0D02A8E15983D5F008E62BD /* Libraries */ = { + isa = PBXGroup; + children = ( + D0D02A8C15983CFA008E62BD /* libncurses.dylib */, + D0D02A8A15983CDF008E62BD /* libiconv.dylib */, + D0CBD583159EEE010024809C /* Foundation.framework */, + ); + name = Libraries; + sourceTree = ""; + }; + D0D02A91159845EF008E62BD /* Sources */ = { isa = PBXGroup; children = ( D0C6FCCB14CFA4B7004CE8AD /* autoload.h */, @@ -224,27 +598,184 @@ D0A0852F13B3ACEE0099B651 /* xdgmimeparent.h */, D0A0856713B3ACEE0099B651 /* xdgmimeparent.cpp */, ); + name = Sources; sourceTree = ""; }; + 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 = ""; + }; + D0D02AFC159871BF008E62BD /* Launcher */ = { + isa = PBXGroup; + children = ( + D0D02AFA159871B2008E62BD /* osx_fish_launcher.m */, + ); + name = Launcher; + sourceTree = ""; + }; + D0D2693215983562005D9B9C /* Products */ = { + isa = PBXGroup; + children = ( + D0D2693C159835CA005D9B9C /* fish */, + D0D02A9A15985A75008E62BD /* fish.app */, + D0D02ABC15985EF9008E62BD /* fishd */, + D0D02AD01598642A008E62BD /* fish_indent */, + D0D02AE415986537008E62BD /* fish_pager */, + D0F019DC15A969970034B3B1 /* set_color */, + ); + name = Products; + sourceTree = ""; + }; + 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 b70dd6217..d76ad1192 100644 --- a/Makefile.in +++ b/Makefile.in @@ -55,7 +55,6 @@ mandir = @mandir@ sysconfdir = @sysconfdir@ docdir = @docdir@ localedir = @localedir@ -prefix = @prefix@ optbindirs = @optbindirs@ # @@ -225,20 +224,6 @@ MAIN_DIR_FILES_UNSORTED := Doxyfile Doxyfile.user Doxyfile.help.in \ 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 @@ -820,49 +800,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 9b8dd2966..c74002929 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 111178eba..908fed382 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 similarity index 97% rename from etc/config.fish.in rename to etc/config.fish index 5e4ed67b3..a3f3b9f37 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 24424e5be..67f6f4d15 100644 --- a/fish.cpp +++ b/fish.cpp @@ -32,6 +32,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include #include #include +#include #ifdef HAVE_GETOPT_H #include @@ -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 b0b06fdfe..314fb6c0a 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 000000000..dcce2c282 --- /dev/null +++ b/osx/Info.plist @@ -0,0 +1,33 @@ + + + + + CFBundleDisplayName + fish shell + CFBundleExecutable + fish_launcher + CFBundleIconFile + fish.icns + CFBundleIdentifier + com.ridiculousfish.fish-shell + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + fish shell + CFBundlePackageType + APPL + CFBundleShortVersionString + 2.0 + CFBundleVersion + 289.5 + LSApplicationCategoryType + public.app-category.productivity + LSMinimumSystemVersion + 10.6 + NSHumanReadableCopyright + Copyright © 2012, ridiculous_fish +All rights reserved. + LSUIElement + + + diff --git a/osx/launch_fish.scpt b/osx/launch_fish.scpt new file mode 100644 index 000000000..0afefdb67 Binary files /dev/null and b/osx/launch_fish.scpt differ diff --git a/osx/osx_config.h b/osx/osx_config.h new file mode 100644 index 000000000..14207b37d --- /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 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 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 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 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 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 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 header file. */ +#define HAVE_NCURSES_H 1 + +/* Define to 1 if you have the 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 header file. */ +#define HAVE_REGEX_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SIGINFO_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the 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 header file. */ +#define HAVE_SYS_IOCTL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RESOURCE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SELECT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TERMIOS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_TERMIO_H */ + +/* Define to 1 if you have the 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 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 000000000..8b24d2ecf --- /dev/null +++ b/osx/osx_fish_launcher.m @@ -0,0 +1,98 @@ +#import +#import +#import +#import +#import +#import +#import +#import +#import + + +// 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 similarity index 68% rename from share/config.fish.in rename to share/config.fish index dc1c0f074..af2e15cbf 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