├── .gitignore ├── AlertTrigger.h ├── AlertTrigger.m ├── ArrangementPreviewView.h ├── ArrangementPreviewView.m ├── Autocomplete.h ├── Autocomplete.m ├── BellTrigger.h ├── BellTrigger.m ├── BookmarksController.h ├── BookmarksController.m ├── BounceTrigger.h ├── BounceTrigger.m ├── CGSInternal ├── CGSAccessibility.h ├── CGSCIFilter.h ├── CGSConnection.h ├── CGSCursor.h ├── CGSDebug.h ├── CGSDisplays.h ├── CGSHotKeys.h ├── CGSInternal.h ├── CGSMisc.h ├── CGSNotifications.h ├── CGSRegion.h ├── CGSSession.h ├── CGSTransitions.h ├── CGSWindow.h ├── CGSWorkspace.h ├── CarbonHelpers.h └── Compatability.h ├── ColorPresets.plist ├── ContextMenuActionPrefsController.h ├── ContextMenuActionPrefsController.m ├── Coprocess.h ├── Coprocess.m ├── CoprocessTrigger.h ├── CoprocessTrigger.m ├── DVR.h ├── DVR.m ├── DVRBuffer.h ├── DVRBuffer.m ├── DVRDecoder.h ├── DVRDecoder.m ├── DVREncoder.h ├── DVREncoder.m ├── DVRIndexEntry.h ├── DVRIndexEntry.m ├── DefaultBookmark.plist ├── DefaultGlobalKeyMap.plist ├── DefaultPointerActions.plist ├── EncodingsWithLowerCase.plist ├── English.lproj ├── AddressBook.strings ├── Autocomplete.xib ├── Bookmarks.xib ├── BookmarksWindow.xib ├── FindView.xib ├── GlobalSearch.xib ├── MainMenu.strings ├── MainMenu.xib ├── PasteboardHistory.xib ├── PreferencePanel.strings ├── PreferencePanel.xib ├── ProfilesWindow.xib ├── PseudoTerminal.strings ├── PseudoTerminal.xib ├── SplitPanel.xib ├── configPanel.strings ├── iTerm.scriptTerminology ├── iTerm.strings └── iTerm2 Help │ ├── iTerm2 Help.helpindex │ ├── index.html │ └── semantic_history.txt ├── EquivalenceClassSet.h ├── EquivalenceClassSet.m ├── EquivalenceClassSetTest.h ├── EquivalenceClassSetTest.m ├── EventMonitorView.h ├── EventMonitorView.m ├── FakeWindow.h ├── FakeWindow.m ├── FindView.h ├── FindView.m ├── FindViewController.h ├── FindViewController.m ├── FontSizeEstimator.h ├── FontSizeEstimator.m ├── FutureMethods.h ├── FutureMethods.m ├── GTMCarbonEvent.h ├── GTMCarbonEvent.m ├── GTMDebugSelectorValidation.h ├── GTMDefines.h ├── GTMObjectSingleton.h ├── GTMTypeCasting.h ├── GlobalSearch.h ├── GlobalSearch.m ├── Growl Registration Ticket.growlRegDict ├── Growl-Info.plist ├── Growl.framework ├── Growl ├── Headers ├── Resources └── Versions │ ├── A │ ├── Growl │ ├── Headers │ │ ├── Growl.h │ │ ├── GrowlApplicationBridge-Carbon.h │ │ ├── GrowlApplicationBridge.h │ │ └── GrowlDefines.h │ └── Resources │ │ └── Info.plist │ └── Current ├── GrowlTrigger.h ├── GrowlTrigger.m ├── HighlightTrigger.h ├── HighlightTrigger.m ├── ITAddressBookMgr.h ├── ITAddressBookMgr.m ├── ITViewLocalizer.h ├── ITViewLocalizer.m ├── IntervalMap.h ├── IntervalMap.m ├── LineBuffer.h ├── LineBuffer.m ├── LineBufferTest.h ├── LineBufferTest.m ├── Makefile ├── MigrationMap.plist ├── MovePaneController.h ├── MovePaneController.m ├── NSBitmapImageRep+CoreImage.h ├── NSBitmapImageRep+CoreImage.m ├── NSDateFormatterExtras.h ├── NSDateFormatterExtras.m ├── NSFileManager+DirectoryLocations.h ├── NSFileManager+DirectoryLocations.m ├── NSImage+CoreImage.h ├── NSImage+CoreImage.m ├── NSStringITerm.h ├── NSStringITerm.m ├── PSMTabBarControl ├── iTermDiffs │ └── changeIdentifier.diff ├── images │ ├── AquaTabClose_Front.tif │ ├── AquaTabClose_Front_Pressed.tif │ ├── AquaTabClose_Front_Rollover.tif │ ├── AquaTabNew.png │ ├── AquaTabNewPressed.png │ ├── AquaTabNewRollover.png │ ├── AquaTabsBackground.png │ ├── AquaTabsDown.png │ ├── AquaTabsDownGraphite.png │ ├── AquaTabsDownNonKey.png │ ├── AquaTabsSeparator.png │ ├── AquaTabsSeparatorDown.png │ ├── TabClose_Front.tif │ ├── TabClose_Front_Pressed.tif │ ├── TabClose_Front_Rollover.tif │ ├── TabNewMetal.png │ ├── TabNewMetalPressed.png │ ├── TabNewMetalRollover.png │ ├── Warning.png │ ├── overflowImage.tiff │ ├── overflowImagePressed.tif │ └── pi.png └── source │ ├── NSBezierPath_AMShading.h │ ├── NSBezierPath_AMShading.m │ ├── PSMAdiumTabStyle.h │ ├── PSMAdiumTabStyle.m │ ├── PSMAquaTabStyle.h │ ├── PSMAquaTabStyle.m │ ├── PSMMetalTabStyle.h │ ├── PSMMetalTabStyle.m │ ├── PSMOverflowPopUpButton.h │ ├── PSMOverflowPopUpButton.m │ ├── PSMProgressIndicator.h │ ├── PSMProgressIndicator.m │ ├── PSMRolloverButton.h │ ├── PSMRolloverButton.m │ ├── PSMTabBarCell.h │ ├── PSMTabBarCell.m │ ├── PSMTabBarControl.h │ ├── PSMTabBarControl.m │ ├── PSMTabDragAssistant.h │ ├── PSMTabDragAssistant.m │ ├── PSMTabDragWindow.h │ ├── PSMTabDragWindow.m │ ├── PSMTabStyle.h │ ├── PSMUnifiedTabStyle.h │ └── PSMUnifiedTabStyle.m ├── PTToolbarController.h ├── PTToolbarController.m ├── PTYScrollView.h ├── PTYScrollView.m ├── PTYSession.h ├── PTYSession.m ├── PTYSplitView.h ├── PTYSplitView.m ├── PTYTab.h ├── PTYTab.m ├── PTYTabView.h ├── PTYTabView.m ├── PTYTask.h ├── PTYTask.m ├── PTYTextView.h ├── PTYTextView.m ├── PTYWindow.h ├── PTYWindow.m ├── PasteboardHistory.h ├── PasteboardHistory.m ├── PointerController.h ├── PointerController.m ├── PointerPrefsController.h ├── PointerPrefsController.m ├── Popup.h ├── Popup.m ├── PreferencePanel.h ├── PreferencePanel.m ├── PresetKeyMappings.plist ├── ProcessCache.h ├── ProcessCache.m ├── ProfileListView.h ├── ProfileListView.m ├── ProfileModel.h ├── ProfileModel.m ├── ProfileModelWrapper.h ├── ProfileModelWrapper.m ├── ProfileTableRow.h ├── ProfileTableRow.m ├── ProfileTableView.h ├── ProfileTableView.m ├── ProfilesWindow.h ├── ProfilesWindow.m ├── PseudoTerminal.h ├── PseudoTerminal.m ├── PseudoTerminalRestorer.h ├── PseudoTerminalRestorer.m ├── README.md ├── RegexKitLite ├── ._License.html ├── ._License.rtf ├── ._RegexKitLite.html ├── ._RegexKitLite.m ├── ._examples ├── License.html ├── License.rtf ├── RegexKitLite.h ├── RegexKitLite.html ├── RegexKitLite.m └── examples │ ├── ._NSString-HexConversion.h │ ├── ._compiledRegexCache.d │ ├── ._link_example.m │ ├── ._utf16ConversionCache.d │ ├── NSString-HexConversion.h │ ├── NSString-HexConversion.m │ ├── compiledRegexCache.d │ ├── for_in.m │ ├── link_example.m │ ├── main.m │ └── utf16ConversionCache.d ├── ScreenChar.h ├── ScreenChar.m ├── ScriptTrigger.h ├── ScriptTrigger.m ├── SendTextTrigger.h ├── SendTextTrigger.m ├── SessionTitleView.h ├── SessionTitleView.m ├── SessionView.h ├── SessionView.m ├── SmartSelectionController.h ├── SmartSelectionController.m ├── SmartSelectionRules.plist ├── SolidColorView.h ├── SolidColorView.m ├── Sparkle.framework ├── Headers ├── Resources ├── Sparkle └── Versions │ ├── A │ ├── Headers │ │ ├── SUAppcast.h │ │ ├── SUAppcastItem.h │ │ ├── SUUpdater.h │ │ ├── SUVersionComparisonProtocol.h │ │ └── Sparkle.h │ ├── Resources │ │ ├── Info.plist │ │ ├── License.txt │ │ ├── SUModelTranslation.plist │ │ ├── SUStatus.nib │ │ │ ├── classes.nib │ │ │ ├── info.nib │ │ │ └── keyedobjects.nib │ │ ├── de.lproj │ │ │ ├── SUAutomaticUpdateAlert.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ ├── SUUpdateAlert.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ ├── SUUpdatePermissionPrompt.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ └── Sparkle.strings │ │ ├── en.lproj │ │ │ ├── SUAutomaticUpdateAlert.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ ├── SUUpdateAlert.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ ├── SUUpdatePermissionPrompt.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ └── Sparkle.strings │ │ ├── es.lproj │ │ │ ├── SUAutomaticUpdateAlert.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ ├── SUUpdateAlert.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ ├── SUUpdatePermissionPrompt.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ └── Sparkle.strings │ │ ├── fr.lproj │ │ │ ├── SUAutomaticUpdateAlert.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ ├── SUUpdateAlert.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ ├── SUUpdatePermissionPrompt.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ └── Sparkle.strings │ │ ├── it.lproj │ │ │ ├── SUAutomaticUpdateAlert.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ ├── SUUpdateAlert.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ ├── SUUpdatePermissionPrompt.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ └── Sparkle.strings │ │ ├── nl.lproj │ │ │ ├── SUAutomaticUpdateAlert.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ ├── SUUpdateAlert.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ ├── SUUpdatePermissionPrompt.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ └── Sparkle.strings │ │ ├── relaunch │ │ ├── ru.lproj │ │ │ ├── SUAutomaticUpdateAlert.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ ├── SUUpdateAlert.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ ├── SUUpdatePermissionPrompt.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ └── Sparkle.strings │ │ └── sv.lproj │ │ │ ├── SUAutomaticUpdateAlert.nib │ │ │ ├── classes.nib │ │ │ ├── info.nib │ │ │ └── keyedobjects.nib │ │ │ ├── SUUpdateAlert.nib │ │ │ ├── classes.nib │ │ │ ├── info.nib │ │ │ └── keyedobjects.nib │ │ │ ├── SUUpdatePermissionPrompt.nib │ │ │ ├── classes.nib │ │ │ ├── info.nib │ │ │ └── keyedobjects.nib │ │ │ └── Sparkle.strings │ └── Sparkle │ └── Current ├── SplitPanel.h ├── SplitPanel.m ├── SplitPanel.xib ├── SplitSelectionView.h ├── SplitSelectionView.m ├── TSVParser.h ├── TSVParser.m ├── TextViewWrapper.h ├── TextViewWrapper.m ├── TmuxController.h ├── TmuxController.m ├── TmuxControllerRegistry.h ├── TmuxControllerRegistry.m ├── TmuxDashboard.xib ├── TmuxDashboardController.h ├── TmuxDashboardController.m ├── TmuxGateway.h ├── TmuxGateway.m ├── TmuxHistoryParser.h ├── TmuxHistoryParser.m ├── TmuxLayoutParser.h ├── TmuxLayoutParser.m ├── TmuxSessionsTable.h ├── TmuxSessionsTable.m ├── TmuxStateParser.h ├── TmuxStateParser.m ├── TmuxWindowOpener.h ├── TmuxWindowOpener.m ├── TmuxWindowsTable.h ├── TmuxWindowsTable.m ├── ToolJobs.h ├── ToolJobs.m ├── ToolNotes.h ├── ToolNotes.m ├── ToolPasteHistory.h ├── ToolPasteHistory.m ├── ToolProfiles.h ├── ToolProfiles.m ├── ToolWrapper.h ├── ToolWrapper.m ├── ToolbeltView.h ├── ToolbeltView.m ├── Trigger.h ├── Trigger.m ├── TriggerController.h ├── TriggerController.m ├── Trouter.h ├── Trouter.m ├── TrouterPrefsController.h ├── TrouterPrefsController.m ├── UKCrashReporter ├── UKCrashReporter Readme.txt ├── UKCrashReporter.h ├── UKCrashReporter.m ├── UKCrashReporter.nib │ ├── classes.nib │ ├── info.nib │ └── keyedobjects.nib ├── UKCrashReporter.strings ├── UKNibOwner.h ├── UKNibOwner.m ├── UKSystemInfo.h └── UKSystemInfo.m ├── VT100Screen.h ├── VT100Screen.m ├── VT100Terminal.h ├── VT100Terminal.m ├── WindowArrangements.h ├── WindowArrangements.m ├── WindowControllerInterface.h ├── applyLocalization.sh ├── canary-iTerm.plist ├── canary.sh ├── charmaps.h ├── commit.sh ├── crash_report_to_plist.py ├── debugRetainRelease.m ├── dsa_pub.pem ├── full_release.sh ├── full_release2.sh ├── iTerm.h ├── iTerm.icns ├── iTerm.plist ├── iTerm.scriptSuite ├── iTerm.xcodeproj └── project.pbxproj ├── iTermApplication.h ├── iTermApplication.m ├── iTermApplicationDelegate.h ├── iTermApplicationDelegate.m ├── iTermController.h ├── iTermController.m ├── iTermExpose.h ├── iTermExpose.m ├── iTermGrowlDelegate.h ├── iTermGrowlDelegate.m ├── iTermKeyBindingMgr.h ├── iTermKeyBindingMgr.m ├── iTermSearchField.h ├── iTermSearchField.m ├── iTermTerminalProfileMgr.m ├── iTerm_Framework.plist ├── images ├── BroadcastInput.png ├── Coprocess.png ├── Coprocess.psd ├── Copy-icon.png ├── IBarCursor.png ├── IBarCursorXMR.png ├── PrefsAdvanced.tiff ├── PrefsBookmarks.tiff ├── PrefsDisplay.tiff ├── PrefsGeneral.tiff ├── PrefsKeyboard.tiff ├── PrefsMouse-big.tiff ├── PrefsMouse.tiff ├── PrefsTerminal.tiff ├── addressbook.png ├── arrangement.png ├── arrangement.psd ├── bell.png ├── bell.psd ├── close.png ├── closebutton.tif ├── config.png ├── edit.png ├── exec.png ├── folder.png ├── iTerm-Aqua.jpg ├── iTerm-old.icns ├── iTerm-old.png ├── iTerm.png ├── important.png ├── new.png ├── newwin.png ├── screen.png ├── script.png ├── sort.png ├── star-gold24.png ├── waiting.png ├── wrap.psd ├── wrap_to_bottom.png └── wrap_to_top.png ├── main.m ├── merge.sh ├── nightly.sh ├── ply └── ply-3.4 │ ├── ANNOUNCE │ ├── CHANGES │ ├── PKG-INFO │ ├── README │ ├── TODO │ ├── doc │ ├── internal.html │ ├── makedoc.py │ └── ply.html │ ├── example │ ├── BASIC │ │ ├── README │ │ ├── basic.py │ │ ├── basiclex.py │ │ ├── basiclog.py │ │ ├── basinterp.py │ │ ├── basparse.py │ │ ├── dim.bas │ │ ├── func.bas │ │ ├── gcd.bas │ │ ├── gosub.bas │ │ ├── hello.bas │ │ ├── linear.bas │ │ ├── maxsin.bas │ │ ├── powers.bas │ │ ├── rand.bas │ │ ├── sales.bas │ │ ├── sears.bas │ │ ├── sqrt1.bas │ │ └── sqrt2.bas │ ├── GardenSnake │ │ ├── GardenSnake.py │ │ └── README │ ├── README │ ├── ansic │ │ ├── README │ │ ├── clex.py │ │ └── cparse.py │ ├── calc │ │ └── calc.py │ ├── calcdebug │ │ └── calc.py │ ├── classcalc │ │ └── calc.py │ ├── cleanup.sh │ ├── closurecalc │ │ └── calc.py │ ├── hedit │ │ └── hedit.py │ ├── newclasscalc │ │ └── calc.py │ ├── optcalc │ │ ├── README │ │ └── calc.py │ ├── unicalc │ │ └── calc.py │ └── yply │ │ ├── README │ │ ├── ylex.py │ │ ├── yparse.py │ │ └── yply.py │ ├── ply │ ├── __init__.py │ ├── cpp.py │ ├── ctokens.py │ ├── lex.py │ └── yacc.py │ ├── setup.py │ └── test │ ├── README │ ├── calclex.py │ ├── cleanup.sh │ ├── lex_closure.py │ ├── lex_doc1.py │ ├── lex_dup1.py │ ├── lex_dup2.py │ ├── lex_dup3.py │ ├── lex_empty.py │ ├── lex_error1.py │ ├── lex_error2.py │ ├── lex_error3.py │ ├── lex_error4.py │ ├── lex_hedit.py │ ├── lex_ignore.py │ ├── lex_ignore2.py │ ├── lex_literal1.py │ ├── lex_literal2.py │ ├── lex_many_tokens.py │ ├── lex_module.py │ ├── lex_module_import.py │ ├── lex_object.py │ ├── lex_opt_alias.py │ ├── lex_optimize.py │ ├── lex_optimize2.py │ ├── lex_optimize3.py │ ├── lex_re1.py │ ├── lex_re2.py │ ├── lex_re3.py │ ├── lex_rule1.py │ ├── lex_rule2.py │ ├── lex_rule3.py │ ├── lex_state1.py │ ├── lex_state2.py │ ├── lex_state3.py │ ├── lex_state4.py │ ├── lex_state5.py │ ├── lex_state_noerror.py │ ├── lex_state_norule.py │ ├── lex_state_try.py │ ├── lex_token1.py │ ├── lex_token2.py │ ├── lex_token3.py │ ├── lex_token4.py │ ├── lex_token5.py │ ├── lex_token_dup.py │ ├── testlex.py │ ├── testyacc.py │ ├── yacc_badargs.py │ ├── yacc_badid.py │ ├── yacc_badprec.py │ ├── yacc_badprec2.py │ ├── yacc_badprec3.py │ ├── yacc_badrule.py │ ├── yacc_badtok.py │ ├── yacc_dup.py │ ├── yacc_error1.py │ ├── yacc_error2.py │ ├── yacc_error3.py │ ├── yacc_error4.py │ ├── yacc_inf.py │ ├── yacc_literal.py │ ├── yacc_misplaced.py │ ├── yacc_missing1.py │ ├── yacc_nested.py │ ├── yacc_nodoc.py │ ├── yacc_noerror.py │ ├── yacc_nop.py │ ├── yacc_notfunc.py │ ├── yacc_notok.py │ ├── yacc_prec1.py │ ├── yacc_rr.py │ ├── yacc_rr_unused.py │ ├── yacc_simple.py │ ├── yacc_sr.py │ ├── yacc_term1.py │ ├── yacc_unused.py │ ├── yacc_unused_rule.py │ ├── yacc_uprec.py │ └── yacc_uprec2.py ├── pull.sh ├── release-iTerm.plist ├── release.sh ├── release2.sh ├── tests ├── UTF-8-demo.txt ├── a-harpoon.txt ├── acid.txt ├── apple.txt ├── bogusutf8.txt ├── bold-complex.txt ├── bug439.applescript ├── chinese.txt ├── cjk_insertmode.txt ├── cjk_move_cursor.txt ├── cjk_nowrap.txt ├── cjk_quick_brown.txt ├── colors.sh ├── combiningmark.txt ├── diamond.txt ├── double_width.txt ├── dw_sip.txt ├── enclosing-mark.txt ├── english_and_chinese.txt ├── greek.txt ├── harpoon.txt ├── long_cjk.txt ├── low-surrogate.txt ├── no-scroll-spam.cc ├── radical.txt ├── ranges.py ├── register_bonjour_host ├── reverse_mode.txt ├── searchtext ├── set_icon_title.txt ├── set_icon_window_title.txt ├── set_window_title.txt ├── setbg-blue ├── setbg-yellow ├── setpal ├── sgrbug ├── smart_selection_cases.txt ├── spaces.txt ├── spacing-combining-mark.txt ├── spam-tabs.cc ├── spam.cc ├── suits.txt ├── surrogatepair.txt ├── too_many_parts.txt ├── u2000b.txt └── zeta.txt ├── updateVersion.py ├── valgrind.sh ├── version.txt └── xterm-terminfo.txt /.gitignore: -------------------------------------------------------------------------------- 1 | .svn 2 | *.mode1v3 3 | *.mode2v3 4 | *.move1v3 5 | *.pbxuser 6 | *.perspective 7 | *.perspectivev3 8 | iTerm.xcodeproj/project.pbxproj 9 | .gitignore 10 | build/ 11 | .DS_Store 12 | iTerm.xcodeproj/* 13 | *.pbxproj 14 | canary.xml 15 | testing.xml 16 | testing_changes.html 17 | .gitignore 18 | -------------------------------------------------------------------------------- /AlertTrigger.h: -------------------------------------------------------------------------------- 1 | // 2 | // AlertTrigger.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 9/23/11. 6 | // 7 | 8 | #import 9 | #import "Trigger.h" 10 | 11 | @interface AlertTrigger : Trigger { 12 | BOOL disabled_; 13 | } 14 | 15 | - (NSString *)title; 16 | - (BOOL)takesParameter; 17 | - (void)performActionWithValues:(NSArray *)values inSession:(PTYSession *)aSession; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /ArrangementPreviewView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ArrangementPreviewView.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 8/6/11. 6 | // Copyright 2011 Georgetech. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | @interface ArrangementPreviewView : NSView { 13 | NSArray *arrangement_; 14 | } 15 | 16 | - (void)setArrangement:(NSArray*)arrangement; 17 | 18 | - (void)drawRect:(NSRect)rect; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /BellTrigger.h: -------------------------------------------------------------------------------- 1 | // 2 | // BellTrigger.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 9/23/11. 6 | // 7 | 8 | #import 9 | #import "Trigger.h" 10 | 11 | @interface BellTrigger : Trigger { 12 | 13 | } 14 | 15 | - (NSString *)title; 16 | - (BOOL)takesParameter; 17 | - (void)performActionWithValues:(NSArray *)values inSession:(PTYSession *)aSession; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /BellTrigger.m: -------------------------------------------------------------------------------- 1 | // 2 | // BellTrigger.m 3 | // iTerm 4 | // 5 | // Created by George Nachman on 9/23/11. 6 | // 7 | 8 | #import "BellTrigger.h" 9 | 10 | 11 | @implementation BellTrigger 12 | 13 | - (NSString *)title 14 | { 15 | return @"Ring Bell"; 16 | } 17 | 18 | - (BOOL)takesParameter 19 | { 20 | return NO; 21 | } 22 | 23 | - (void)performActionWithValues:(NSArray *)values inSession:(PTYSession *)aSession 24 | { 25 | NSBeep(); 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /BookmarksController.h: -------------------------------------------------------------------------------- 1 | // 2 | // BookmarksController.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 8/23/10. 6 | // Copyright 2010 George Nachman. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | @interface BookmarksController : NSObject { 13 | 14 | } 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /BookmarksController.m: -------------------------------------------------------------------------------- 1 | // 2 | // BookmarksController.m 3 | // iTerm 4 | // 5 | // Created by George Nachman on 8/23/10. 6 | // Copyright 2010 George Nachman. All rights reserved. 7 | // 8 | 9 | #import "BookmarksController.h" 10 | 11 | 12 | @implementation BookmarksController 13 | 14 | @end 15 | 16 | + (BookmarksController*) sharedInstance; 17 | - (int) numberOfBookmarks; 18 | -------------------------------------------------------------------------------- /BounceTrigger.h: -------------------------------------------------------------------------------- 1 | // 2 | // BounceTrigger.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 9/23/11. 6 | // 7 | 8 | #import 9 | #import "Trigger.h" 10 | 11 | @interface BounceTrigger : Trigger { 12 | 13 | } 14 | 15 | - (NSString *)title; 16 | - (BOOL)takesParameter; 17 | - (void)performActionWithValues:(NSArray *)values inSession:(PTYSession *)aSession; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /BounceTrigger.m: -------------------------------------------------------------------------------- 1 | // 2 | // BounceTrigger.m 3 | // iTerm 4 | // 5 | // Created by George Nachman on 9/23/11. 6 | // 7 | 8 | #import "BounceTrigger.h" 9 | 10 | 11 | @implementation BounceTrigger 12 | 13 | - (NSString *)title 14 | { 15 | return @"Bounce Dock Icon"; 16 | } 17 | 18 | - (BOOL)takesParameter 19 | { 20 | return NO; 21 | } 22 | 23 | - (void)performActionWithValues:(NSArray *)values inSession:(PTYSession *)aSession 24 | { 25 | [NSApp requestUserAttention:NSCriticalRequest]; 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /CGSInternal/Compatability.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Compatability.h 3 | * iTerm 4 | * 5 | * Created by Marc on 10.08.10. 6 | * Copyright 2010 Marc Haisenko. All rights reserved. 7 | * 8 | */ 9 | 10 | #pragma once 11 | 12 | #include 13 | 14 | #ifndef CG_EXTERN_C_BEGIN 15 | #define CG_EXTERN_C_BEGIN 16 | #define CG_EXTERN_C_END 17 | #endif 18 | 19 | #ifndef CG_EXTERN 20 | #define CG_EXTERN 21 | #endif 22 | -------------------------------------------------------------------------------- /CoprocessTrigger.h: -------------------------------------------------------------------------------- 1 | // 2 | // InteractiveScriptTrigger.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 9/24/11. 6 | // Copyright 2011 Georgetech. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ScriptTrigger.h" 11 | 12 | 13 | @interface CoprocessTrigger : Trigger 14 | @end 15 | 16 | @interface MuteCoprocessTrigger : CoprocessTrigger 17 | @end 18 | -------------------------------------------------------------------------------- /DVRIndexEntry.m: -------------------------------------------------------------------------------- 1 | // -*- mode:objc -*- 2 | /* 3 | ** DVRIndexEntry.h 4 | ** 5 | ** Copyright 20101 6 | ** 7 | ** Author: George Nachman 8 | ** 9 | ** Project: iTerm2 10 | ** 11 | ** Description: Descriptor for a single DVR frame. 12 | ** 13 | ** This program is free software; you can redistribute it and/or modify 14 | ** it under the terms of the GNU General Public License as published by 15 | ** the Free Software Foundation; either version 2 of the License, or 16 | ** (at your option) any later version. 17 | ** 18 | ** This program is distributed in the hope that it will be useful, 19 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 | ** GNU General Public License for more details. 22 | ** 23 | ** You should have received a copy of the GNU General Public License 24 | ** along with this program; if not, write to the Free Software 25 | ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 26 | */ 27 | 28 | #import "DVRIndexEntry.h" 29 | 30 | 31 | @implementation DVRIndexEntry 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /DefaultPointerActions.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Button,1,1,, 6 | 7 | Action 8 | kContextMenuPointerAction 9 | 10 | Button,2,1,, 11 | 12 | Action 13 | kPasteFromClipboardPointerAction 14 | 15 | Gesture,ThreeFingerSwipeRight,, 16 | 17 | Action 18 | kNextTabPointerAction 19 | 20 | Gesture,ThreeFingerSwipeLeft,, 21 | 22 | Action 23 | kPrevTabPointerAction 24 | 25 | Gesture,ThreeFingerSwipeUp,, 26 | 27 | Action 28 | kNextWindowPointerAction 29 | 30 | Gesture,ThreeFingerSwipeDown,, 31 | 32 | Action 33 | kPrevWindowPointerAction 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /English.lproj/AddressBook.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/English.lproj/AddressBook.strings -------------------------------------------------------------------------------- /English.lproj/MainMenu.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/English.lproj/MainMenu.strings -------------------------------------------------------------------------------- /English.lproj/PreferencePanel.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/English.lproj/PreferencePanel.strings -------------------------------------------------------------------------------- /English.lproj/PseudoTerminal.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/English.lproj/PseudoTerminal.strings -------------------------------------------------------------------------------- /English.lproj/configPanel.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/English.lproj/configPanel.strings -------------------------------------------------------------------------------- /English.lproj/iTerm2 Help/iTerm2 Help.helpindex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/English.lproj/iTerm2 Help/iTerm2 Help.helpindex -------------------------------------------------------------------------------- /EquivalenceClassSet.h: -------------------------------------------------------------------------------- 1 | // 2 | // EquivalenceClassSet.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 12/28/11. 6 | // Copyright (c) 2011 Georgetech. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface EquivalenceClassSet : NSObject { 12 | NSMutableDictionary *index_; 13 | NSMutableDictionary *classes_; 14 | } 15 | 16 | - (NSArray *)valuesEqualTo:(NSObject *)target; 17 | - (void)setValue:(NSObject *)value equalToValue:(NSObject *)otherValue; 18 | - (void)removeValue:(NSObject *)target; 19 | - (NSArray *)classes; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /EquivalenceClassSetTest.h: -------------------------------------------------------------------------------- 1 | // 2 | // EquivalenceClassSet.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 12/28/11. 6 | // Copyright (c) 2011 Georgetech. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface EquivalenceClassSetTest : NSObject { 12 | } 13 | 14 | + (void)runTests; 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /EventMonitorView.h: -------------------------------------------------------------------------------- 1 | // 2 | // EventMonitorView.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 11/9/11. 6 | // Copyright (c) 2011 George Nachman. All rights reserved. 7 | // 8 | // Pass clicks and taps in a view to PointerPrefsController to set 9 | // button/gesture, num clicks, and modifiers. 10 | 11 | #import 12 | 13 | @class PointerPrefsController; 14 | 15 | @interface EventMonitorView : NSView { 16 | IBOutlet PointerPrefsController *pointerPrefs_; 17 | IBOutlet NSTextField *label_; 18 | int numTouches_; 19 | } 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /FindView.h: -------------------------------------------------------------------------------- 1 | // -*- mode:objc -*- 2 | /* 3 | ** FindView.h 4 | ** 5 | ** Copyright (c) 2011 6 | ** 7 | ** Author: George Nachman 8 | ** 9 | ** Project: iTerm2 10 | ** 11 | ** Description: Draws find UI. 12 | ** 13 | ** This program is free software; you can redistribute it and/or modify 14 | ** it under the terms of the GNU General Public License as published by 15 | ** the Free Software Foundation; either version 2 of the License, or 16 | ** (at your option) any later version. 17 | ** 18 | ** This program is distributed in the hope that it will be useful, 19 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 | ** GNU General Public License for more details. 22 | ** 23 | ** You should have received a copy of the GNU General Public License 24 | ** along with this program; if not, write to the Free Software 25 | ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 26 | */ 27 | 28 | #import 29 | 30 | 31 | @interface FindView : NSView { 32 | 33 | } 34 | 35 | - (void)drawRect:(NSRect)rect; 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /FontSizeEstimator.h: -------------------------------------------------------------------------------- 1 | // -*- mode:objc -*- 2 | /* 3 | ** FontSizeEstimator.h 4 | ** 5 | ** Copyright (c) 2011 6 | ** 7 | ** Author: George Nachman 8 | ** 9 | ** Project: iTerm2 10 | ** 11 | ** Description: Attempts to measure font metrics because the OS's metrics 12 | ** are sometimes unreliable. 13 | ** 14 | ** This program is free software; you can redistribute it and/or modify 15 | ** it under the terms of the GNU General Public License as published by 16 | ** the Free Software Foundation; either version 2 of the License, or 17 | ** (at your option) any later version. 18 | ** 19 | ** This program is distributed in the hope that it will be useful, 20 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | ** GNU General Public License for more details. 23 | ** 24 | ** You should have received a copy of the GNU General Public License 25 | ** along with this program; if not, write to the Free Software 26 | ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 27 | */ 28 | 29 | 30 | #import 31 | 32 | 33 | @interface FontSizeEstimator : NSObject { 34 | NSSize size; 35 | double baseline; 36 | } 37 | 38 | @property (nonatomic, assign) NSSize size; 39 | @property (nonatomic, assign) double baseline; 40 | 41 | + (id)fontSizeEstimatorForFont:(NSFont *)aFont; 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /FutureMethods.h: -------------------------------------------------------------------------------- 1 | // 2 | // FutureMethods.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 8/29/11. 6 | // 7 | 8 | #import 9 | 10 | extern const int FutureNSWindowCollectionBehaviorStationary; 11 | 12 | @interface NSView (Future) 13 | - (void)futureSetAcceptsTouchEvents:(BOOL)value; 14 | - (void)futureSetWantsRestingTouches:(BOOL)value; 15 | @end 16 | 17 | @interface NSEvent (Future) 18 | - (NSArray *)futureTouchesMatchingPhase:(int)phase inView:(NSView *)view; 19 | @end 20 | 21 | @interface NSWindow (Future) 22 | - (void)futureSetRestorable:(BOOL)value; 23 | - (void)futureSetRestorationClass:(Class)class; 24 | - (void)futureInvalidateRestorableState; 25 | @end 26 | 27 | enum { 28 | FutureNSScrollerStyleLegacy = 0, 29 | FutureNSScrollerStyleOverlay = 1 30 | }; 31 | typedef NSInteger FutureNSScrollerStyle; 32 | 33 | @interface NSScroller (Future) 34 | - (FutureNSScrollerStyle)futureScrollerStyle; 35 | @end 36 | 37 | @interface NSScrollView (Future) 38 | - (FutureNSScrollerStyle)futureScrollerStyle; 39 | @end 40 | 41 | @interface CIImage (Future) 42 | @end -------------------------------------------------------------------------------- /Growl Registration Ticket.growlRegDict: -------------------------------------------------------------------------------- 1 | 2 | 3 | AllNotifications 4 | 5 | Bells 6 | Broken Pipes 7 | Miscellaneous 8 | Idle 9 | New Output 10 | Customized Message 11 | 12 | DefaultNotifications 13 | 14 | Bells 15 | Broken Pipes 16 | Miscellaneous 17 | Idle 18 | New Output 19 | Customized Message 20 | 21 | TicketVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Growl-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.yourcompany.Growl 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | FMWK 13 | CFBundleSignature 14 | ???? 15 | CFBundleVersion 16 | 0.7.4 17 | 18 | 19 | -------------------------------------------------------------------------------- /Growl.framework/Growl: -------------------------------------------------------------------------------- 1 | Versions/Current/Growl -------------------------------------------------------------------------------- /Growl.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /Growl.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /Growl.framework/Versions/A/Growl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Growl.framework/Versions/A/Growl -------------------------------------------------------------------------------- /Growl.framework/Versions/A/Headers/Growl.h: -------------------------------------------------------------------------------- 1 | #include "GrowlDefines.h" 2 | 3 | #ifdef __OBJC__ 4 | # include "GrowlApplicationBridge.h" 5 | #endif 6 | #include "GrowlApplicationBridge-Carbon.h" 7 | -------------------------------------------------------------------------------- /Growl.framework/Versions/A/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildMachineOSBuild 6 | 10J869 7 | CFBundleDevelopmentRegion 8 | English 9 | CFBundleExecutable 10 | Growl 11 | CFBundleIdentifier 12 | com.growl.growlframework 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.2.2 19 | CFBundleSignature 20 | GRRR 21 | CFBundleVersion 22 | 1.2.2 23 | DTCompiler 24 | 4.0 25 | DTPlatformBuild 26 | 10M2518 27 | DTPlatformVersion 28 | PG 29 | DTSDKBuild 30 | 9L31a 31 | DTSDKName 32 | macosx10.5 33 | DTXcode 34 | 0400 35 | DTXcodeBuild 36 | 10M2518 37 | NSPrincipalClass 38 | GrowlApplicationBridge 39 | 40 | 41 | -------------------------------------------------------------------------------- /Growl.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /GrowlTrigger.h: -------------------------------------------------------------------------------- 1 | // 2 | // GrowlTrigger.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 9/23/11. 6 | // 7 | 8 | #import 9 | #import "Trigger.h" 10 | 11 | @interface GrowlTrigger : Trigger { 12 | 13 | } 14 | 15 | - (NSString *)title; 16 | - (BOOL)takesParameter; 17 | - (void)performActionWithValues:(NSArray *)values inSession:(PTYSession *)aSession; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /GrowlTrigger.m: -------------------------------------------------------------------------------- 1 | // 2 | // GrowlTrigger.m 3 | // iTerm 4 | // 5 | // Created by George Nachman on 9/23/11. 6 | // 7 | 8 | #import "GrowlTrigger.h" 9 | #import "iTermGrowlDelegate.h" 10 | #import "PTYSession.h" 11 | #import "PTYTab.h" 12 | 13 | @implementation GrowlTrigger 14 | 15 | - (NSString *)title 16 | { 17 | return @"Send Growl Alert…"; 18 | } 19 | 20 | - (BOOL)takesParameter 21 | { 22 | return YES; 23 | } 24 | 25 | - (NSString *)paramPlaceholder 26 | { 27 | return @"Enter message to growl"; 28 | } 29 | 30 | - (void)performActionWithValues:(NSArray *)values inSession:(PTYSession *)aSession 31 | { 32 | iTermGrowlDelegate *gd = [iTermGrowlDelegate sharedInstance]; 33 | [gd growlNotify:[self paramWithBackreferencesReplacedWithValues:values] 34 | withDescription:[NSString stringWithFormat:@"A trigger fired in session \"%@\" in tab #%d.", 35 | [aSession name], 36 | [[aSession tab] realObjectCount]] 37 | andNotification:@"Customized Message" 38 | andSession:aSession]; 39 | } 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /HighlightTrigger.h: -------------------------------------------------------------------------------- 1 | // 2 | // HighlightTrigger.h 3 | // iTerm2 4 | // 5 | // Created by George Nachman on 9/23/11. 6 | // 7 | 8 | #import 9 | #import "Trigger.h" 10 | 11 | @interface HighlightTrigger : Trigger 12 | 13 | - (NSString *)title; 14 | - (BOOL)takesParameter; 15 | - (BOOL)paramIsPopupButton; 16 | - (void)performActionWithValues:(NSArray *)values inSession:(PTYSession *)aSession; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /ITViewLocalizer.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** ITViewLocalizer.h 3 | ** 4 | ** Copyright (c) 2002, 2003 5 | ** 6 | ** Author: Fabian, Ujwal S. Setlur 7 | ** Initial code by Kiichi Kusama 8 | ** 9 | ** Project: iTerm 10 | ** 11 | ** Description: localizes a view. 12 | ** 13 | ** This program is free software; you can redistribute it and/or modify 14 | ** it under the terms of the GNU General Public License as published by 15 | ** the Free Software Foundation; either version 2 of the License, or 16 | ** (at your option) any later version. 17 | ** 18 | ** This program is distributed in the hope that it will be useful, 19 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 | ** GNU General Public License for more details. 22 | ** 23 | ** You should have received a copy of the GNU General Public License 24 | ** along with this program; if not, write to the Free Software 25 | ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 26 | */ 27 | 28 | #import 29 | 30 | @interface ITViewLocalizer : NSObject 31 | { 32 | NSString* _table; 33 | NSBundle* _bundle; 34 | } 35 | 36 | + (void)localizeWindow:(NSWindow*)window table:(NSString*)table bundle:(NSBundle*)bundle; 37 | + (void)localizeView:(NSView*)view table:(NSString*)table bundle:(NSBundle*)bundle; 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /IntervalMap.h: -------------------------------------------------------------------------------- 1 | // 2 | // IntervalMap.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 12/8/11. 6 | // Copyright (c) 2011 Georgetech. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface IntRange : NSObject { 12 | @public 13 | int min; 14 | int size; 15 | } 16 | 17 | + (IntRange *)rangeWithMin:(int)min limit:(int)limit; 18 | + (IntRange *)rangeWithMin:(int)min size:(int)size; 19 | - (BOOL)isEqualToIntRange:(IntRange *)other; 20 | - (BOOL)intersectsRange:(IntRange *)other; 21 | - (IntRange *)intersectionWithRange:(IntRange *)other; 22 | - (int)limit; 23 | - (NSArray *)rangesAfterSubtractingRange:(IntRange *)other; 24 | 25 | @end 26 | 27 | @interface IntervalMap : NSObject { 28 | NSMutableArray *elements_; 29 | } 30 | 31 | - (id)init; 32 | - (void)dealloc; 33 | - (void)setObject:(id)object forRange:(IntRange *)range; 34 | - (void)incrementNumbersBy:(int)amount inRange:(IntRange *)range; 35 | - (NSArray *)allValues; 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /LineBufferTest.h: -------------------------------------------------------------------------------- 1 | // 2 | // LineBufferTest.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 7/19/10. 6 | // Copyright 2010 George Nachman. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | @interface LineBufferTest : NSObject { 13 | 14 | } 15 | 16 | - (void) runTests; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /NSBitmapImageRep+CoreImage.h: -------------------------------------------------------------------------------- 1 | // From http://www.cocoadev.com/index.pl?NSImageCategory 2 | // 3 | // NSBitmapImageRep+CoreImage.h 4 | // iTerm2 5 | // 6 | 7 | #import 8 | #import 9 | 10 | @interface NSBitmapImageRep (CoreImage) 11 | /* Draws the specified image representation using Core Image. */ 12 | - (void)drawAtPoint:(NSPoint)point 13 | fromRect:(NSRect)fromRect 14 | coreImageFilter:(NSString *)filterName 15 | arguments:(NSDictionary *)arguments; 16 | @end 17 | -------------------------------------------------------------------------------- /NSDateFormatterExtras.h: -------------------------------------------------------------------------------- 1 | // This code copied from: 2 | // http://stackoverflow.com/questions/902950/iphone-convert-date-string-to-a-relative-time-stamp 3 | // By Carl Coryell-Martin and Gilean. 4 | 5 | #import 6 | 7 | @interface NSDateFormatter (Extras) 8 | + (NSString *)dateDifferenceStringFromDate:(NSDate *)date; 9 | + (NSString *)compactDateDifferenceStringFromDate:(NSDate *)date; 10 | 11 | @end 12 | 13 | -------------------------------------------------------------------------------- /NSImage+CoreImage.h: -------------------------------------------------------------------------------- 1 | // From http://www.cocoadev.com/index.pl?NSImageCategory 2 | // 3 | // NSImage+CoreImage.h 4 | // iTerm2 5 | 6 | #import 7 | #import 8 | 9 | @interface NSImage (CoreImage) 10 | /* Draws the specified image using Core Image. */ 11 | - (void)drawAtPoint: (NSPoint)point fromRect: (NSRect)fromRect coreImageFilter: (NSString *)filterName arguments: (NSDictionary *)arguments; 12 | 13 | /* Gets a bitmap representation of the image, or creates one if the image does not have any. */ 14 | - (NSBitmapImageRep *)bitmapImageRepresentation; 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /PSMTabBarControl/images/AquaTabClose_Front.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/AquaTabClose_Front.tif -------------------------------------------------------------------------------- /PSMTabBarControl/images/AquaTabClose_Front_Pressed.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/AquaTabClose_Front_Pressed.tif -------------------------------------------------------------------------------- /PSMTabBarControl/images/AquaTabClose_Front_Rollover.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/AquaTabClose_Front_Rollover.tif -------------------------------------------------------------------------------- /PSMTabBarControl/images/AquaTabNew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/AquaTabNew.png -------------------------------------------------------------------------------- /PSMTabBarControl/images/AquaTabNewPressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/AquaTabNewPressed.png -------------------------------------------------------------------------------- /PSMTabBarControl/images/AquaTabNewRollover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/AquaTabNewRollover.png -------------------------------------------------------------------------------- /PSMTabBarControl/images/AquaTabsBackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/AquaTabsBackground.png -------------------------------------------------------------------------------- /PSMTabBarControl/images/AquaTabsDown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/AquaTabsDown.png -------------------------------------------------------------------------------- /PSMTabBarControl/images/AquaTabsDownGraphite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/AquaTabsDownGraphite.png -------------------------------------------------------------------------------- /PSMTabBarControl/images/AquaTabsDownNonKey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/AquaTabsDownNonKey.png -------------------------------------------------------------------------------- /PSMTabBarControl/images/AquaTabsSeparator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/AquaTabsSeparator.png -------------------------------------------------------------------------------- /PSMTabBarControl/images/AquaTabsSeparatorDown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/AquaTabsSeparatorDown.png -------------------------------------------------------------------------------- /PSMTabBarControl/images/TabClose_Front.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/TabClose_Front.tif -------------------------------------------------------------------------------- /PSMTabBarControl/images/TabClose_Front_Pressed.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/TabClose_Front_Pressed.tif -------------------------------------------------------------------------------- /PSMTabBarControl/images/TabClose_Front_Rollover.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/TabClose_Front_Rollover.tif -------------------------------------------------------------------------------- /PSMTabBarControl/images/TabNewMetal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/TabNewMetal.png -------------------------------------------------------------------------------- /PSMTabBarControl/images/TabNewMetalPressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/TabNewMetalPressed.png -------------------------------------------------------------------------------- /PSMTabBarControl/images/TabNewMetalRollover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/TabNewMetalRollover.png -------------------------------------------------------------------------------- /PSMTabBarControl/images/Warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/Warning.png -------------------------------------------------------------------------------- /PSMTabBarControl/images/overflowImage.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/overflowImage.tiff -------------------------------------------------------------------------------- /PSMTabBarControl/images/overflowImagePressed.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/overflowImagePressed.tif -------------------------------------------------------------------------------- /PSMTabBarControl/images/pi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PSMTabBarControl/images/pi.png -------------------------------------------------------------------------------- /PSMTabBarControl/source/NSBezierPath_AMShading.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSBezierPath_AMShading.h 3 | // ------------------------ 4 | // 5 | // Created by Andreas on 2005-06-01. 6 | // Copyright 2005 Andreas Mayer. All rights reserved. 7 | // 8 | // based on http://www.cocoadev.com/index.pl?GradientFill 9 | 10 | 11 | #import 12 | 13 | 14 | @interface NSBezierPath (AMShading) 15 | 16 | - (void)customHorizontalFillWithCallbacks:(CGFunctionCallbacks)functionCallbacks firstColor:(NSColor *)firstColor secondColor:(NSColor *)secondColor; 17 | 18 | - (void)linearGradientFillWithStartColor:(NSColor *)startColor endColor:(NSColor *)endColor; 19 | 20 | - (void)bilinearGradientFillWithOuterColor:(NSColor *)outerColor innerColor:(NSColor *)innerColor; 21 | 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /PSMTabBarControl/source/PSMAdiumTabStyle.h: -------------------------------------------------------------------------------- 1 | // 2 | // PSMAdiumTabStyle.h 3 | // PSMTabBarControl 4 | // 5 | // Created by Kent Sutherland on 5/26/06. 6 | // Copyright 2006 Kent Sutherland. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "PSMTabStyle.h" 11 | 12 | @interface PSMAdiumTabStyle : NSObject 13 | { 14 | NSImage *_closeButton, *_closeButtonDown, *_closeButtonOver; 15 | NSImage *_addTabButtonImage, *_addTabButtonPressedImage, *_addTabButtonRolloverImage; 16 | NSImage *_gradientImage; 17 | 18 | PSMTabBarOrientation orientation; 19 | PSMTabBarControl *tabBar; 20 | 21 | BOOL _drawsUnified, _drawsRight; 22 | } 23 | 24 | - (void)loadImages; 25 | 26 | - (BOOL)drawsUnified; 27 | - (void)setDrawsUnified:(BOOL)value; 28 | - (BOOL)drawsRight; 29 | - (void)setDrawsRight:(BOOL)value; 30 | 31 | - (void)drawInteriorWithTabCell:(PSMTabBarCell *)cell inView:(NSView*)controlView; 32 | 33 | - (void)encodeWithCoder:(NSCoder *)aCoder; 34 | - (id)initWithCoder:(NSCoder *)aDecoder; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /PSMTabBarControl/source/PSMAquaTabStyle.h: -------------------------------------------------------------------------------- 1 | // 2 | // PSMAquaTabStyle.h 3 | // PSMTabBarControl 4 | // 5 | // Created by John Pannell on 2/17/06. 6 | // Copyright 2006 Positive Spin Media. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "PSMTabStyle.h" 11 | 12 | @interface PSMAquaTabStyle : NSObject { 13 | NSImage *aquaTabBg; 14 | NSImage *noborderBg; 15 | NSImage *aquaTabBgDown; 16 | NSImage *aquaTabBgDownGraphite; 17 | NSImage *aquaTabBgDownNonKey; 18 | NSImage *aquaDividerDown; 19 | NSImage *aquaDivider; 20 | NSImage *aquaCloseButton; 21 | NSImage *aquaCloseButtonDown; 22 | NSImage *aquaCloseButtonOver; 23 | NSImage *_addTabButtonImage; 24 | NSImage *_addTabButtonPressedImage; 25 | NSImage *_addTabButtonRolloverImage; 26 | } 27 | 28 | - (void)loadImages; 29 | - (void)drawInteriorWithTabCell:(PSMTabBarCell *)cell inView:(NSView*)controlView; 30 | 31 | - (void)encodeWithCoder:(NSCoder *)aCoder; 32 | - (id)initWithCoder:(NSCoder *)aDecoder; 33 | @end 34 | -------------------------------------------------------------------------------- /PSMTabBarControl/source/PSMMetalTabStyle.h: -------------------------------------------------------------------------------- 1 | // 2 | // PSMMetalTabStyle.h 3 | // PSMTabBarControl 4 | // 5 | // Created by John Pannell on 2/17/06. 6 | // Copyright 2006 Positive Spin Media. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "PSMTabStyle.h" 11 | 12 | @interface PSMMetalTabStyle : NSObject { 13 | NSImage *metalCloseButton; 14 | NSImage *metalCloseButtonDown; 15 | NSImage *metalCloseButtonOver; 16 | NSImage *_addTabButtonImage; 17 | NSImage *_addTabButtonPressedImage; 18 | NSImage *_addTabButtonRolloverImage; 19 | 20 | NSDictionary *_objectCountStringAttributes; 21 | 22 | PSMTabBarOrientation orientation; 23 | PSMTabBarControl *tabBar; 24 | } 25 | 26 | - (void)drawInteriorWithTabCell:(PSMTabBarCell *)cell inView:(NSView*)controlView; 27 | 28 | - (void)encodeWithCoder:(NSCoder *)aCoder; 29 | - (id)initWithCoder:(NSCoder *)aDecoder; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /PSMTabBarControl/source/PSMOverflowPopUpButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // PSMOverflowPopUpButton.h 3 | // PSMTabBarControl 4 | // 5 | // Created by John Pannell on 11/4/05. 6 | // Copyright 2005 Positive Spin Media. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | @interface PSMOverflowPopUpButton : NSPopUpButton { 13 | NSImage *_PSMTabBarOverflowPopUpImage; 14 | NSImage *_PSMTabBarOverflowDownPopUpImage; 15 | BOOL _down; 16 | BOOL _animatingAlternateImage; 17 | NSTimer *_animationTimer; 18 | float _animationValue; 19 | } 20 | 21 | //alternate image display 22 | - (BOOL)animatingAlternateImage; 23 | - (void)setAnimatingAlternateImage:(BOOL)flag; 24 | 25 | // archiving 26 | - (void)encodeWithCoder:(NSCoder *)aCoder; 27 | - (id)initWithCoder:(NSCoder *)aDecoder; 28 | @end 29 | -------------------------------------------------------------------------------- /PSMTabBarControl/source/PSMProgressIndicator.h: -------------------------------------------------------------------------------- 1 | // 2 | // PSMProgressIndicator.h 3 | // PSMTabBarControl 4 | // 5 | // Created by John Pannell on 2/23/06. 6 | // Copyright 2006 Positive Spin Media. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "PSMTabBarControl.h" 11 | 12 | 13 | @interface PSMProgressIndicator : NSProgressIndicator { 14 | 15 | } 16 | 17 | @end 18 | 19 | @interface PSMTabBarControl (LayoutPlease) 20 | 21 | - (void)update; 22 | 23 | @end -------------------------------------------------------------------------------- /PSMTabBarControl/source/PSMProgressIndicator.m: -------------------------------------------------------------------------------- 1 | // 2 | // PSMProgressIndicator.m 3 | // PSMTabBarControl 4 | // 5 | // Created by John Pannell on 2/23/06. 6 | // Copyright 2006 Positive Spin Media. All rights reserved. 7 | // 8 | 9 | #import "PSMProgressIndicator.h" 10 | 11 | @implementation PSMProgressIndicator 12 | 13 | // overrides to make tab bar control re-layout things if status changes 14 | - (void)setHidden:(BOOL)flag 15 | { 16 | [super setHidden:flag]; 17 | [(PSMTabBarControl *)[self superview] update]; 18 | } 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /PSMTabBarControl/source/PSMRolloverButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // PSMOverflowPopUpButton.h 3 | // NetScrape 4 | // 5 | // Created by John Pannell on 8/4/04. 6 | // Copyright 2004 Positive Spin Media. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface PSMRolloverButton : NSButton 12 | { 13 | NSImage *_rolloverImage; 14 | NSImage *_usualImage; 15 | NSTrackingRectTag _myTrackingRectTag; 16 | } 17 | 18 | // the regular image 19 | - (void)setUsualImage:(NSImage *)newImage; 20 | - (NSImage *)usualImage; 21 | 22 | // the rollover image 23 | - (void)setRolloverImage:(NSImage *)newImage; 24 | - (NSImage *)rolloverImage; 25 | 26 | // tracking rect for mouse events 27 | - (void)addTrackingRect; 28 | - (void)removeTrackingRect; 29 | @end -------------------------------------------------------------------------------- /PSMTabBarControl/source/PSMTabDragWindow.h: -------------------------------------------------------------------------------- 1 | // 2 | // PSMTabDragWindow.h 3 | // PSMTabBarControl 4 | // 5 | // Created by Kent Sutherland on 6/1/06. 6 | // Copyright 2006 Kent Sutherland. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class PSMTabBarCell; 12 | 13 | @interface PSMTabDragWindow : NSWindow { 14 | PSMTabBarCell *_cell; 15 | NSImageView *_imageView; 16 | } 17 | + (PSMTabDragWindow *)dragWindowWithTabBarCell:(PSMTabBarCell *)cell image:(NSImage *)image styleMask:(unsigned int)styleMask; 18 | 19 | - (id)initWithTabBarCell:(PSMTabBarCell *)cell image:(NSImage *)image styleMask:(unsigned int)styleMask; 20 | - (NSImage *)image; 21 | @end 22 | -------------------------------------------------------------------------------- /PSMTabBarControl/source/PSMUnifiedTabStyle.h: -------------------------------------------------------------------------------- 1 | // 2 | // PSMUnifiedTabStyle.h 3 | // -------------------- 4 | // 5 | // Created by Keith Blount on 30/04/2006. 6 | // Copyright 2006 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "PSMTabStyle.h" 11 | 12 | @interface PSMUnifiedTabStyle : NSObject 13 | { 14 | NSImage *unifiedCloseButton; 15 | NSImage *unifiedCloseButtonDown; 16 | NSImage *unifiedCloseButtonOver; 17 | NSImage *_addTabButtonImage; 18 | NSImage *_addTabButtonPressedImage; 19 | NSImage *_addTabButtonRolloverImage; 20 | 21 | float leftMargin; 22 | PSMTabBarControl *tabBar; 23 | } 24 | - (void)setLeftMarginForTabBarControl:(float)margin; 25 | @end 26 | -------------------------------------------------------------------------------- /PTYSplitView.h: -------------------------------------------------------------------------------- 1 | // 2 | // PTYSplitView.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 12/10/11. 6 | // 7 | 8 | #import 9 | 10 | @class PTYSplitView; 11 | 12 | @protocol PTYSplitViewDelegate 13 | 14 | - (void)splitView:(PTYSplitView *)splitView 15 | draggingDidEndOfSplit:(int)clickedOnSplitterIndex 16 | pixels:(NSSize)changePx; 17 | 18 | - (void)splitView:(PTYSplitView *)splitView draggingWillBeginOfSplit:(int)splitterIndex; 19 | 20 | @end 21 | 22 | /* This extends NSSplitView by adding a delegate method that's called when 23 | * dragging a splitter finishes. */ 24 | @interface PTYSplitView : NSSplitView 25 | 26 | - (NSObject *)delegate; 27 | - (void)setDelegate:(NSObject *)delegate; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /PTYWindow.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/PTYWindow.m -------------------------------------------------------------------------------- /ProfileTableRow.h: -------------------------------------------------------------------------------- 1 | // 2 | // ProfileTablekRow.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 1/9/12. 6 | // 7 | 8 | #import 9 | #import "ProfileModel.h" 10 | 11 | // This wraps a single bookmark and adds a KeyValueCoding. To keep things simple 12 | // it will hold only the bookmark's GUID, since bookmark dictionaries themselves 13 | // are evanescent. 14 | // 15 | // It implements a KeyValueCoding so that sort descriptors will work. 16 | @interface ProfileTableRow : NSObject 17 | { 18 | NSString* guid; 19 | ProfileModel* underlyingModel; 20 | } 21 | 22 | - (id)initWithBookmark:(Profile*)bookmark underlyingModel:(ProfileModel*)underlyingModel; 23 | - (void)dealloc; 24 | - (Profile*)bookmark; 25 | 26 | @end 27 | 28 | @interface ProfileTableRow (KeyValueCoding) 29 | // We need ascending order to sort default before not-default so we can't use 30 | // anything senible like BOOL or "Yes"/"No" because they'd sort wrong. 31 | typedef enum { IsDefault = 1, IsNotDefault = 2 } BookmarkRowIsDefault; 32 | - (NSNumber*)default; 33 | - (NSString*)name; 34 | - (NSString*)shortcut; 35 | - (NSString*)command; 36 | - (NSString*)guid; 37 | @end 38 | 39 | -------------------------------------------------------------------------------- /ProfileTableView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ProfileTableView.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 1/9/12. 6 | // 7 | 8 | #import 9 | 10 | @protocol ProfileTableMenuHandler 11 | 12 | - (NSMenu *)menuForEvent:(NSEvent *)theEvent; 13 | 14 | @end 15 | 16 | @interface ProfileTableView : NSTableView 17 | { 18 | NSObject *handler_; 19 | } 20 | 21 | - (void)setMenuHandler:(NSObject *)handler; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /ProfileTableView.m: -------------------------------------------------------------------------------- 1 | // 2 | // ProfileTableView.m 3 | // iTerm 4 | // 5 | // Created by George Nachman on 1/9/12. 6 | // 7 | 8 | #import "ProfileTableView.h" 9 | 10 | @implementation ProfileTableView 11 | 12 | - (void)setMenuHandler:(NSObject *)handler 13 | { 14 | handler_ = handler; 15 | } 16 | 17 | - (NSMenu *)menuForEvent:(NSEvent *)theEvent 18 | { 19 | if ([handler_ respondsToSelector:@selector(menuForEvent:)]) { 20 | return [handler_ menuForEvent:theEvent]; 21 | } 22 | return nil; 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /PseudoTerminalRestorer.h: -------------------------------------------------------------------------------- 1 | // 2 | // PseudoTerminalRestorer.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 10/24/11. 6 | // Copyright 2011 Georgetech. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | @interface PseudoTerminalRestorer : NSObject { 13 | 14 | } 15 | 16 | + (void)restoreWindowWithIdentifier:(NSString *)identifier state:(NSCoder *)state completionHandler:(void (^)(NSWindow *, NSError *))completionHandler; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /PseudoTerminalRestorer.m: -------------------------------------------------------------------------------- 1 | // 2 | // PseudoTerminalRestorer.m 3 | // iTerm 4 | // 5 | // Created by George Nachman on 10/24/11. 6 | // 7 | 8 | #import "PseudoTerminalRestorer.h" 9 | #import "PseudoTerminal.h" 10 | #import "iTermController.h" 11 | 12 | @implementation PseudoTerminalRestorer 13 | 14 | + (void)restoreWindowWithIdentifier:(NSString *)identifier 15 | state:(NSCoder *)state 16 | completionHandler:(void (^)(NSWindow *, NSError *))completionHandler 17 | { 18 | if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"OpenArrangementAtStartup"] boolValue]) { 19 | completionHandler(nil, nil); 20 | return; 21 | } 22 | 23 | NSDictionary *arrangement = [state decodeObjectForKey:@"ptyarrangement"]; 24 | if (arrangement) { 25 | PseudoTerminal *term = [PseudoTerminal bareTerminalWithArrangement:arrangement]; 26 | NSRect rect = [[term window] frame]; 27 | [term performSelector:@selector(setFrameValue:) 28 | withObject:[NSValue valueWithRect:rect] 29 | afterDelay:0]; 30 | completionHandler([term window], nil); 31 | [[iTermController sharedInstance] addInTerminals:term]; 32 | } else { 33 | completionHandler(nil, nil); 34 | } 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This site hosts code for iTerm2. Issues are still on Google Code becaue Github doesn't support attachments. 2 | -------------------------------------------------------------------------------- /RegexKitLite/._License.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/RegexKitLite/._License.html -------------------------------------------------------------------------------- /RegexKitLite/._License.rtf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/RegexKitLite/._License.rtf -------------------------------------------------------------------------------- /RegexKitLite/._RegexKitLite.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/RegexKitLite/._RegexKitLite.html -------------------------------------------------------------------------------- /RegexKitLite/._RegexKitLite.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/RegexKitLite/._RegexKitLite.m -------------------------------------------------------------------------------- /RegexKitLite/._examples: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/RegexKitLite/._examples -------------------------------------------------------------------------------- /RegexKitLite/examples/._NSString-HexConversion.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/RegexKitLite/examples/._NSString-HexConversion.h -------------------------------------------------------------------------------- /RegexKitLite/examples/._compiledRegexCache.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/RegexKitLite/examples/._compiledRegexCache.d -------------------------------------------------------------------------------- /RegexKitLite/examples/._link_example.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/RegexKitLite/examples/._link_example.m -------------------------------------------------------------------------------- /RegexKitLite/examples/._utf16ConversionCache.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/RegexKitLite/examples/._utf16ConversionCache.d -------------------------------------------------------------------------------- /RegexKitLite/examples/NSString-HexConversion.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface NSString (HexConversion) 4 | -(NSInteger)hexValue; 5 | @end -------------------------------------------------------------------------------- /RegexKitLite/examples/NSString-HexConversion.m: -------------------------------------------------------------------------------- 1 | #import "NSString-HexConversion.h" 2 | #import 3 | #include 4 | 5 | @implementation NSString (HexConversion) 6 | 7 | -(NSInteger)hexValue 8 | { 9 | CFStringRef cfSelf = (CFStringRef)self; 10 | UInt8 buffer[64]; 11 | const char *cptr; 12 | 13 | if((cptr = CFStringGetCStringPtr(cfSelf, kCFStringEncodingMacRoman)) == NULL) { 14 | CFRange range = CFRangeMake(0L, CFStringGetLength(cfSelf)); 15 | CFIndex usedBytes = 0L; 16 | CFStringGetBytes(cfSelf, range, kCFStringEncodingUTF8, '?', false, buffer, 60L, &usedBytes); 17 | buffer[usedBytes] = 0; 18 | cptr = (const char *)buffer; 19 | } 20 | 21 | return((NSInteger)strtol(cptr, NULL, 16)); 22 | } 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /RegexKitLite/examples/compiledRegexCache.d: -------------------------------------------------------------------------------- 1 | #!/usr/sbin/dtrace -s 2 | 3 | RegexKitLite*:::compiledRegexCache { 4 | this->eventID = (unsigned long)arg0; 5 | this->regexUTF8 = copyinstr(arg1); 6 | this->options = (unsigned int)arg2; 7 | this->captures = (int)arg3; 8 | this->hitMiss = (int)arg4; 9 | this->icuStatusCode = (int)arg5; 10 | this->icuErrorMessage = (arg6 == 0) ? "" : copyinstr(arg6); 11 | this->hitRate = (double *)copyin(arg7, sizeof(double)); 12 | 13 | printf("%5d: %-60.60s Opt: %#8.8x Cap: %2d Hit: %2d Rate: %6.2f%% code: %5d msg: %s\n", 14 | this->eventID, 15 | this->regexUTF8, 16 | this->options, 17 | this->captures, 18 | this->hitMiss, 19 | *this->hitRate, 20 | this->icuStatusCode, 21 | this->icuErrorMessage); 22 | } 23 | -------------------------------------------------------------------------------- /RegexKitLite/examples/for_in.m: -------------------------------------------------------------------------------- 1 | #import 2 | #import "RegexKitLite.h" 3 | 4 | int main(int argc, char *argv[]) { 5 | NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 6 | 7 | NSString *searchString = @"one\ntwo\n\nfour\n"; 8 | NSString *regexString = @"(?m)^.*$"; 9 | NSUInteger line = 0UL; 10 | 11 | NSLog(@"searchString: '%@'", searchString); 12 | NSLog(@"regexString : '%@'", regexString); 13 | 14 | for(NSString *matchedString in [searchString componentsMatchedByRegex:regexString]) { 15 | NSLog(@"%lu: %lu '%@'", (u_long)++line, (u_long)[matchedString length], matchedString); 16 | } 17 | 18 | [pool release]; 19 | return(0); 20 | } 21 | -------------------------------------------------------------------------------- /RegexKitLite/examples/link_example.m: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import "RegexKitLite.h" 4 | 5 | int main(int argc, char *argv[]) { 6 | NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 7 | 8 | // Copyright COPYRIGHT_SIGN APPROXIMATELY_EQUAL_TO 2008 9 | // Copyright \u00a9 \u2245 2008 10 | 11 | char *utf8CString = "Copyright \xC2\xA9 \xE2\x89\x85 2008"; 12 | NSString *regexString = @"Copyright (.*) (\\d+)"; 13 | 14 | NSString *subjectString = [NSString stringWithUTF8String:utf8CString]; 15 | NSString *matchedString = [subjectString stringByMatching:regexString capture:1L]; 16 | 17 | NSLog(@"subject: \"%@\"", subjectString); 18 | NSLog(@"matched: \"%@\"", matchedString); 19 | 20 | [pool release]; 21 | return(0); 22 | } 23 | -------------------------------------------------------------------------------- /RegexKitLite/examples/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | #import "RegexKitLite.h" 3 | #import "RKLMatchEnumerator.h" 4 | 5 | int main(int argc, char *argv[]) { 6 | NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 7 | 8 | NSString *searchString = @"one\ntwo\n\nfour\n"; 9 | NSEnumerator *matchEnumerator = NULL; 10 | NSString *regexString = @"(?m)^.*$"; 11 | 12 | NSLog(@"searchString: '%@'", searchString); 13 | NSLog(@"regexString : '%@'", regexString); 14 | 15 | matchEnumerator = [searchString matchEnumeratorWithRegex:regexString]; 16 | 17 | NSUInteger line = 0UL; 18 | NSString *matchedString = NULL; 19 | 20 | while((matchedString = [matchEnumerator nextObject]) != NULL) { 21 | NSLog(@"%lu: %lu '%@'", (u_long)++line, (u_long)[matchedString length], matchedString); 22 | } 23 | 24 | [pool release]; 25 | return(0); 26 | } 27 | -------------------------------------------------------------------------------- /ScriptTrigger.h: -------------------------------------------------------------------------------- 1 | // 2 | // ScriptTrigger.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 9/23/11. 6 | // 7 | 8 | #import 9 | #import "Trigger.h" 10 | 11 | 12 | @interface ScriptTrigger : Trigger { 13 | 14 | } 15 | 16 | - (NSString *)title; 17 | - (BOOL)takesParameter; 18 | - (void)performActionWithValues:(NSArray *)values inSession:(PTYSession *)aSession; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /ScriptTrigger.m: -------------------------------------------------------------------------------- 1 | // 2 | // ScriptTrigger.m 3 | // iTerm 4 | // 5 | // Created by George Nachman on 9/23/11. 6 | // 7 | 8 | #import "ScriptTrigger.h" 9 | #import "RegexKitLite.h" 10 | #import "NSStringITerm.h" 11 | #include 12 | #include 13 | 14 | @implementation ScriptTrigger 15 | 16 | - (NSString *)title 17 | { 18 | return @"Run Command…"; 19 | } 20 | 21 | - (BOOL)takesParameter 22 | { 23 | return YES; 24 | } 25 | 26 | - (NSString *)paramPlaceholder 27 | { 28 | return @"Enter command to run"; 29 | } 30 | 31 | 32 | - (void)performActionWithValues:(NSArray *)values inSession:(PTYSession *)aSession 33 | { 34 | NSString *command = [self paramWithBackreferencesReplacedWithValues:values]; 35 | [NSThread detachNewThreadSelector:@selector(runCommand:) 36 | toTarget:[self class] 37 | withObject:command]; 38 | } 39 | 40 | + (void)runCommand:(NSString *)command 41 | { 42 | NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 43 | system([command UTF8String]); 44 | [pool drain]; 45 | } 46 | 47 | @end 48 | -------------------------------------------------------------------------------- /SendTextTrigger.h: -------------------------------------------------------------------------------- 1 | // 2 | // SendTextTrigger.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 9/24/11. 6 | // 7 | 8 | #import 9 | #import "Trigger.h" 10 | 11 | @interface SendTextTrigger : Trigger { 12 | 13 | } 14 | 15 | - (NSString *)title; 16 | - (BOOL)takesParameter; 17 | - (void)performActionWithValues:(NSArray *)values inSession:(PTYSession *)aSession; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /SendTextTrigger.m: -------------------------------------------------------------------------------- 1 | // 2 | // SendTextTrigger.m 3 | // iTerm 4 | // 5 | // Created by George Nachman on 9/24/11. 6 | // 7 | 8 | #import "SendTextTrigger.h" 9 | #import "PTYSession.h" 10 | 11 | @implementation SendTextTrigger 12 | 13 | - (NSString *)title 14 | { 15 | return @"Send Text…"; 16 | } 17 | 18 | - (BOOL)takesParameter 19 | { 20 | return YES; 21 | } 22 | 23 | - (NSString *)paramPlaceholder 24 | { 25 | return @"Enter text to send"; 26 | } 27 | 28 | 29 | - (void)performActionWithValues:(NSArray *)values inSession:(PTYSession *)aSession 30 | { 31 | NSString *message = [self paramWithBackreferencesReplacedWithValues:values]; 32 | [aSession writeTask:[message dataUsingEncoding:NSUTF8StringEncoding]]; 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /SessionTitleView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SessionTitleView.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 10/21/11. 6 | // Copyright 2011 George Nachman. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol SessionTitleViewDelegate 12 | 13 | - (NSMenu *)menu; 14 | - (void)close; 15 | - (void)beginDrag; 16 | 17 | @end 18 | 19 | 20 | @interface SessionTitleView : NSView { 21 | NSString *title_; 22 | NSTextField *label_; 23 | NSButton *closeButton_; 24 | NSPopUpButton *menuButton_; 25 | NSObject *delegate_; 26 | double dimmingAmount_; 27 | } 28 | 29 | @property (nonatomic, copy) NSString *title; 30 | @property (nonatomic, assign) NSObject *delegate; 31 | @property (nonatomic, assign) double dimmingAmount; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /SolidColorView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SolidColorView.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 12/6/11. 6 | // 7 | 8 | #import 9 | 10 | @interface SolidColorView : NSView 11 | { 12 | NSColor* color_; 13 | BOOL isFlipped_; 14 | } 15 | 16 | - (id)initWithFrame:(NSRect)frame color:(NSColor*)color; 17 | - (void)drawRect:(NSRect)dirtyRect; 18 | - (void)setColor:(NSColor*)color; 19 | - (NSColor*)color; 20 | - (void)setFlipped:(BOOL)value; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /SolidColorView.m: -------------------------------------------------------------------------------- 1 | // 2 | // SolidColorView.m 3 | // iTerm 4 | // 5 | // Created by George Nachman on 12/6/11. 6 | // 7 | 8 | #import "SolidColorView.h" 9 | 10 | @implementation SolidColorView 11 | - (id)initWithFrame:(NSRect)frame color:(NSColor*)color 12 | { 13 | self = [super initWithFrame:frame]; 14 | if (self) { 15 | color_ = [color retain]; 16 | } 17 | return self; 18 | } 19 | 20 | - (void)drawRect:(NSRect)dirtyRect 21 | { 22 | [color_ setFill]; 23 | NSRectFill(dirtyRect); 24 | [super drawRect:dirtyRect]; 25 | } 26 | 27 | - (void)setColor:(NSColor*)color 28 | { 29 | [color_ autorelease]; 30 | color_ = [color retain]; 31 | } 32 | 33 | - (NSColor*)color 34 | { 35 | return color_; 36 | } 37 | 38 | - (BOOL)isFlipped 39 | { 40 | return isFlipped_; 41 | } 42 | 43 | - (void)setFlipped:(BOOL)value 44 | { 45 | isFlipped_ = value; 46 | } 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /Sparkle.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /Sparkle.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /Sparkle.framework/Sparkle: -------------------------------------------------------------------------------- 1 | Versions/Current/Sparkle -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Headers/SUAppcast.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUAppcast.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 3/12/06. 6 | // Copyright 2006 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUAPPCAST_H 10 | #define SUAPPCAST_H 11 | 12 | @class SUAppcastItem; 13 | @interface SUAppcast : NSObject { 14 | NSArray *items; 15 | NSString *userAgentString; 16 | id delegate; 17 | NSMutableData *incrementalData; 18 | } 19 | 20 | - (void)fetchAppcastFromURL:(NSURL *)url; 21 | - (void)setDelegate:delegate; 22 | - (void)setUserAgentString:(NSString *)userAgentString; 23 | 24 | - (NSArray *)items; 25 | 26 | @end 27 | 28 | @interface NSObject (SUAppcastDelegate) 29 | - (void)appcastDidFinishLoading:(SUAppcast *)appcast; 30 | - (void)appcast:(SUAppcast *)appcast failedToLoadWithError:(NSError *)error; 31 | @end 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Headers/SUAppcastItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUAppcastItem.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 3/12/06. 6 | // Copyright 2006 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUAPPCASTITEM_H 10 | #define SUAPPCASTITEM_H 11 | 12 | @interface SUAppcastItem : NSObject { 13 | NSString *title; 14 | NSDate *date; 15 | NSString *itemDescription; 16 | 17 | NSURL *releaseNotesURL; 18 | 19 | NSString *DSASignature; 20 | NSString *minimumSystemVersion; 21 | 22 | NSURL *fileURL; 23 | NSString *versionString; 24 | NSString *displayVersionString; 25 | 26 | NSDictionary *propertiesDictionary; 27 | } 28 | 29 | // Initializes with data from a dictionary provided by the RSS class. 30 | - initWithDictionary:(NSDictionary *)dict; 31 | 32 | - (NSString *)title; 33 | - (NSString *)versionString; 34 | - (NSString *)displayVersionString; 35 | - (NSDate *)date; 36 | - (NSString *)itemDescription; 37 | - (NSURL *)releaseNotesURL; 38 | - (NSURL *)fileURL; 39 | - (NSString *)DSASignature; 40 | - (NSString *)minimumSystemVersion; 41 | 42 | // Returns the dictionary provided in initWithDictionary; this might be useful later for extensions. 43 | - (NSDictionary *)propertiesDictionary; 44 | 45 | @end 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Headers/SUVersionComparisonProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUVersionComparisonProtocol.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 12/21/07. 6 | // Copyright 2007 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUVERSIONCOMPARISONPROTOCOL_H 10 | #define SUVERSIONCOMPARISONPROTOCOL_H 11 | 12 | /*! 13 | @protocol 14 | @abstract Implement this protocol to provide version comparison facilities for Sparkle. 15 | */ 16 | @protocol SUVersionComparison 17 | 18 | /*! 19 | @method 20 | @abstract An abstract method to compare two version strings. 21 | @discussion Should return NSOrderedAscending if b > a, NSOrderedDescending if b < a, and NSOrderedSame if they are equivalent. 22 | */ 23 | - (NSComparisonResult)compareVersion:(NSString *)versionA toVersion:(NSString *)versionB; 24 | 25 | @end 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Headers/Sparkle.h: -------------------------------------------------------------------------------- 1 | // 2 | // Sparkle.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 3/16/06. (Modified by CDHW on 23/12/07) 6 | // Copyright 2006 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SPARKLE_H 10 | #define SPARKLE_H 11 | 12 | // This list should include the shared headers. It doesn't matter if some of them aren't shared (unless 13 | // there are name-space collisions) so we can list all of them to start with: 14 | 15 | #import 16 | 17 | #import 18 | #import 19 | #import 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | Sparkle 9 | CFBundleIdentifier 10 | org.andymatuschak.Sparkle 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | Sparkle 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.5 Beta 6 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 313 23 | 24 | 25 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/License.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2006 Andy Matuschak 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/SUStatus.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 670 7 | IBLastKnownRelativeProjectPath 8 | Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 10A96 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/SUStatus.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/SUStatus.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | doNotInstall 19 | id 20 | installLater 21 | id 22 | installNow 23 | id 24 | 25 | CLASS 26 | SUAutomaticUpdateAlert 27 | LANGUAGE 28 | ObjC 29 | SUPERCLASS 30 | SUWindowController 31 | 32 | 33 | CLASS 34 | FirstResponder 35 | LANGUAGE 36 | ObjC 37 | SUPERCLASS 38 | NSObject 39 | 40 | 41 | CLASS 42 | NSObject 43 | LANGUAGE 44 | ObjC 45 | 46 | 47 | IBVersion 48 | 1 49 | 50 | 51 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 667 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9D34 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 667 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9D34 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 667 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9D34 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | doNotInstall 19 | id 20 | installLater 21 | id 22 | installNow 23 | id 24 | 25 | CLASS 26 | SUAutomaticUpdateAlert 27 | LANGUAGE 28 | ObjC 29 | SUPERCLASS 30 | SUWindowController 31 | 32 | 33 | CLASS 34 | FirstResponder 35 | LANGUAGE 36 | ObjC 37 | SUPERCLASS 38 | NSObject 39 | 40 | 41 | CLASS 42 | NSObject 43 | LANGUAGE 44 | ObjC 45 | 46 | 47 | IBVersion 48 | 1 49 | 50 | 51 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 658 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9C7010 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 670 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 18 14 | 15 | IBSystem Version 16 | 10A96 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 670 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 41 15 | 16 | IBSystem Version 17 | 10A96 18 | targetFramework 19 | IBCocoaFramework 20 | 21 | 22 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | doNotInstall 19 | id 20 | installLater 21 | id 22 | installNow 23 | id 24 | 25 | CLASS 26 | SUAutomaticUpdateAlert 27 | LANGUAGE 28 | ObjC 29 | SUPERCLASS 30 | SUWindowController 31 | 32 | 33 | CLASS 34 | FirstResponder 35 | LANGUAGE 36 | ObjC 37 | SUPERCLASS 38 | NSObject 39 | 40 | 41 | CLASS 42 | NSObject 43 | LANGUAGE 44 | ObjC 45 | 46 | 47 | IBVersion 48 | 1 49 | 50 | 51 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 667 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9D34 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 667 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9D34 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 667 7 | IBLastKnownRelativeProjectPath 8 | ../../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9D34 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | doNotInstall 19 | id 20 | installLater 21 | id 22 | installNow 23 | id 24 | 25 | CLASS 26 | SUAutomaticUpdateAlert 27 | LANGUAGE 28 | ObjC 29 | SUPERCLASS 30 | SUWindowController 31 | 32 | 33 | CLASS 34 | FirstResponder 35 | LANGUAGE 36 | ObjC 37 | SUPERCLASS 38 | NSObject 39 | 40 | 41 | CLASS 42 | NSObject 43 | LANGUAGE 44 | ObjC 45 | 46 | 47 | IBVersion 48 | 1 49 | 50 | 51 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 629 7 | IBOldestOS 8 | 5 9 | IBOpenObjects 10 | 11 | IBSystem Version 12 | 9D34 13 | targetFramework 14 | IBCocoaFramework 15 | 16 | 17 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 629 7 | IBOldestOS 8 | 5 9 | IBOpenObjects 10 | 11 | IBSystem Version 12 | 9E17 13 | targetFramework 14 | IBCocoaFramework 15 | 16 | 17 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 629 7 | IBOldestOS 8 | 5 9 | IBOpenObjects 10 | 11 | IBSystem Version 12 | 9E17 13 | targetFramework 14 | IBCocoaFramework 15 | 16 | 17 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | doNotInstall 19 | id 20 | installLater 21 | id 22 | installNow 23 | id 24 | 25 | CLASS 26 | SUAutomaticUpdateAlert 27 | LANGUAGE 28 | ObjC 29 | SUPERCLASS 30 | SUWindowController 31 | 32 | 33 | CLASS 34 | FirstResponder 35 | LANGUAGE 36 | ObjC 37 | SUPERCLASS 38 | NSObject 39 | 40 | 41 | CLASS 42 | NSObject 43 | LANGUAGE 44 | ObjC 45 | 46 | 47 | IBVersion 48 | 1 49 | 50 | 51 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 667 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9D34 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 667 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9D34 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 667 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 5 14 | 15 | IBSystem Version 16 | 9D34 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | doNotInstall 19 | id 20 | installLater 21 | id 22 | installNow 23 | id 24 | 25 | CLASS 26 | SUAutomaticUpdateAlert 27 | LANGUAGE 28 | ObjC 29 | SUPERCLASS 30 | SUWindowController 31 | 32 | 33 | CLASS 34 | FirstResponder 35 | LANGUAGE 36 | ObjC 37 | SUPERCLASS 38 | NSObject 39 | 40 | 41 | CLASS 42 | NSObject 43 | LANGUAGE 44 | ObjC 45 | 46 | 47 | IBVersion 48 | 1 49 | 50 | 51 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 629 7 | IBOldestOS 8 | 5 9 | IBOpenObjects 10 | 11 | 6 12 | 13 | IBSystem Version 14 | 9D34 15 | targetFramework 16 | IBCocoaFramework 17 | 18 | 19 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 629 7 | IBOldestOS 8 | 5 9 | IBOpenObjects 10 | 11 | IBSystem Version 12 | 9E17 13 | targetFramework 14 | IBCocoaFramework 15 | 16 | 17 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 629 7 | IBOldestOS 8 | 5 9 | IBOpenObjects 10 | 11 | IBSystem Version 12 | 9E17 13 | targetFramework 14 | IBCocoaFramework 15 | 16 | 17 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/relaunch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/relaunch -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | doNotInstall 19 | id 20 | installLater 21 | id 22 | installNow 23 | id 24 | 25 | CLASS 26 | SUAutomaticUpdateAlert 27 | LANGUAGE 28 | ObjC 29 | SUPERCLASS 30 | SUWindowController 31 | 32 | 33 | CLASS 34 | FirstResponder 35 | LANGUAGE 36 | ObjC 37 | SUPERCLASS 38 | NSObject 39 | 40 | 41 | CLASS 42 | NSObject 43 | LANGUAGE 44 | ObjC 45 | 46 | 47 | IBVersion 48 | 1 49 | 50 | 51 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 670 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9E17 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 670 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9E17 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 670 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | IBSystem Version 14 | 9E17 15 | targetFramework 16 | IBCocoaFramework 17 | 18 | 19 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 670 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 10A96 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | { 2 | IBClasses = ( 3 | { 4 | CLASS = FirstResponder; 5 | LANGUAGE = ObjC; 6 | SUPERCLASS = NSObject; 7 | }, 8 | { 9 | CLASS = NSApplication; 10 | LANGUAGE = ObjC; 11 | SUPERCLASS = NSResponder; 12 | }, 13 | { 14 | CLASS = NSObject; 15 | LANGUAGE = ObjC; 16 | }, 17 | { 18 | ACTIONS = { 19 | installUpdate = id; 20 | remindMeLater = id; 21 | skipThisVersion = id; 22 | }; 23 | CLASS = SUUpdateAlert; 24 | LANGUAGE = ObjC; 25 | OUTLETS = { 26 | delegate = id; 27 | description = NSTextField; 28 | releaseNotesView = WebView; 29 | }; 30 | SUPERCLASS = SUWindowController; 31 | }, 32 | { 33 | CLASS = SUWindowController; 34 | LANGUAGE = ObjC; 35 | SUPERCLASS = NSWindowController; 36 | } 37 | ); 38 | IBVersion = 1; 39 | } -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBDocumentLocation 6 | 69 14 356 240 0 0 1280 778 7 | IBFramework Version 8 | 489.0 9 | IBLastKnownRelativeProjectPath 10 | ../Sparkle.xcodeproj 11 | IBOldestOS 12 | 5 13 | IBSystem Version 14 | 9D34 15 | targetFramework 16 | IBCocoaFramework 17 | 18 | 19 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 670 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 10A96 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Sparkle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/Sparkle.framework/Versions/A/Sparkle -------------------------------------------------------------------------------- /Sparkle.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /SplitPanel.h: -------------------------------------------------------------------------------- 1 | // 2 | // SplitPanel.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 8/18/11. 6 | // Copyright 2011 Georgetech. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class ProfileListView; 12 | @class PseudoTerminal; 13 | 14 | @interface SplitPanel : NSWindowController { 15 | PseudoTerminal *parent_; 16 | IBOutlet NSTextField *label_; 17 | IBOutlet NSButton *splitButton_; 18 | BOOL isVertical_; 19 | IBOutlet ProfileListView *bookmarks_; 20 | NSString *guid_; 21 | } 22 | 23 | @property (nonatomic, retain) PseudoTerminal *parent; 24 | @property (nonatomic, assign) BOOL isVertical; 25 | @property (nonatomic, readonly) NSTextField *label; 26 | @property (nonatomic, copy) NSString *guid; 27 | 28 | + (NSString *)showPanelWithParent:(PseudoTerminal *)parent isVertical:(BOOL)vertical; 29 | - (IBAction)cancel:(id)sender; 30 | - (IBAction)split:(id)sender; 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /TSVParser.h: -------------------------------------------------------------------------------- 1 | // 2 | // TSVParser.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 11/27/11. 6 | // 7 | 8 | #import 9 | 10 | 11 | @interface TSVDocument : NSObject { 12 | NSMutableArray *columns_; 13 | NSMutableArray *records_; 14 | NSMutableDictionary *map_; 15 | } 16 | 17 | @property (nonatomic, retain) NSMutableArray *columns; 18 | @property (nonatomic, readonly) NSMutableArray *records; 19 | 20 | - (NSString *)valueInRecord:(NSArray *)record forField:(NSString *)fieldName; 21 | 22 | @end 23 | 24 | @interface TSVParser : NSObject 25 | 26 | + (TSVDocument *)documentFromString:(NSString *)string withFields:(NSArray *)fields; 27 | 28 | @end 29 | 30 | @interface NSString (TSV) 31 | 32 | - (TSVDocument *)tsvDocumentWithFields:(NSArray *)fields; 33 | 34 | @end -------------------------------------------------------------------------------- /TextViewWrapper.h: -------------------------------------------------------------------------------- 1 | // -*- mode:objc -*- 2 | /* 3 | ** TextViewWrapper.h 4 | ** 5 | ** Copyright (c) 2010 6 | ** 7 | ** Author: George Nachman 8 | ** 9 | ** Project: iTerm2 10 | ** 11 | ** Description: This wraps a textview and adds a border at the top of 12 | ** the visible area. 13 | ** 14 | ** This program is free software; you can redistribute it and/or modify 15 | ** it under the terms of the GNU General Public License as published by 16 | ** the Free Software Foundation; either version 2 of the License, or 17 | ** (at your option) any later version. 18 | ** 19 | ** This program is distributed in the hope that it will be useful, 20 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | ** GNU General Public License for more details. 23 | ** 24 | ** You should have received a copy of the GNU General Public License 25 | ** along with this program; if not, write to the Free Software 26 | ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 27 | */ 28 | 29 | #import 30 | 31 | @class PTYTextView; 32 | @interface TextViewWrapper : NSView { 33 | PTYTextView* child_; 34 | } 35 | 36 | - (void)addSubview:(PTYTextView*)child; 37 | - (NSRect)adjustScroll:(NSRect)proposedVisibleRect; 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /TmuxControllerRegistry.h: -------------------------------------------------------------------------------- 1 | // 2 | // TmuxControllerRegistry.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 12/25/11. 6 | // Copyright (c) 2011 Georgetech. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class TmuxController; 12 | 13 | #define TmuxClient NSString 14 | 15 | @interface TmuxControllerRegistry : NSObject { 16 | NSMutableDictionary *controllers_; // client -> controller 17 | } 18 | 19 | + (TmuxControllerRegistry *)sharedInstance; 20 | - (TmuxController *)controllerForClient:(TmuxClient *)client; 21 | - (void)setController:(TmuxController *)controller forClient:(TmuxClient *)client; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /TmuxControllerRegistry.m: -------------------------------------------------------------------------------- 1 | // 2 | // TmuxControllerRegistry.m 3 | // iTerm 4 | // 5 | // Created by George Nachman on 12/25/11. 6 | // Copyright (c) 2011 Georgetech. All rights reserved. 7 | // 8 | 9 | #import "TmuxControllerRegistry.h" 10 | 11 | 12 | @implementation TmuxControllerRegistry 13 | 14 | + (TmuxControllerRegistry *)sharedInstance 15 | { 16 | static TmuxControllerRegistry *instance; 17 | if (!instance) { 18 | instance = [[TmuxControllerRegistry alloc] init]; 19 | } 20 | return instance; 21 | } 22 | 23 | - (id)init 24 | { 25 | self = [super init]; 26 | if (self) { 27 | controllers_ = [[NSMutableDictionary alloc] init]; 28 | } 29 | return self; 30 | } 31 | 32 | - (TmuxController *)controllerForClient:(TmuxClient *)client 33 | { 34 | return [controllers_ objectForKey:client]; 35 | } 36 | 37 | - (void)setController:(TmuxController *)controller forClient:(TmuxClient *)client 38 | { 39 | if (controller) { 40 | [controllers_ setObject:controller forKey:client]; 41 | } else { 42 | [controllers_ removeObjectForKey:client]; 43 | } 44 | } 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /TmuxDashboardController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TmuxDashboardController.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 12/23/11. 6 | // Copyright (c) 2011 Georgetech. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "TmuxSessionsTable.h" 11 | #import "TmuxWindowsTable.h" 12 | 13 | @class TmuxController; 14 | 15 | @interface TmuxDashboardController : NSWindowController { 16 | IBOutlet TmuxSessionsTable *sessionsTable_; 17 | IBOutlet TmuxWindowsTable *windowsTable_; 18 | } 19 | 20 | + (TmuxDashboardController *)sharedInstance; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /TmuxHistoryParser.h: -------------------------------------------------------------------------------- 1 | // 2 | // TmuxHistoryParser.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 11/29/11. 6 | // 7 | 8 | #import 9 | 10 | @interface TmuxHistoryParser : NSObject 11 | 12 | + (TmuxHistoryParser *)sharedInstance; 13 | - (NSArray *)parseDumpHistoryResponse:(NSString *)response; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /TmuxStateParser.h: -------------------------------------------------------------------------------- 1 | // 2 | // TmuxStateParser.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 11/30/11. 6 | // Copyright (c) 2011 Georgetech. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | extern NSString *kStateDictInAlternateScreen; 12 | extern NSString *kStateDictBaseCursorX; 13 | extern NSString *kStateDictBaseCursorY; 14 | extern NSString *kStateDictCursorX; 15 | extern NSString *kStateDictCursorY; 16 | extern NSString *kStateDictScrollRegionUpper; 17 | extern NSString *kStateDictScrollRegionLower; 18 | extern NSString *kStateDictTabstops; 19 | extern NSString *kStateDictDECSCCursorX; 20 | extern NSString *kStateDictDECSCCursorY; 21 | 22 | @interface TmuxStateParser : NSObject 23 | 24 | + (TmuxStateParser *)sharedInstance; 25 | - (NSMutableDictionary *)parsedStateFromString:(NSString *)layout; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /ToolJobs.h: -------------------------------------------------------------------------------- 1 | // 2 | // ToolJobs.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 9/6/11. 6 | // Copyright 2011 Georgetech. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ToolWrapper.h" 11 | 12 | @interface ToolJobs : NSView { 13 | NSScrollView *scrollView_; 14 | NSTableView *tableView_; 15 | NSButton *kill_; 16 | NSPopUpButton *signal_; 17 | NSTimer *timer_; 18 | NSMutableArray *names_; 19 | NSMutableArray *pids_; 20 | BOOL hasSelection; 21 | BOOL shutdown_; 22 | } 23 | 24 | @property (nonatomic, assign) BOOL hasSelection; 25 | @end 26 | -------------------------------------------------------------------------------- /ToolNotes.h: -------------------------------------------------------------------------------- 1 | // 2 | // ToolNotes.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 9/19/11. 6 | // Copyright 2011 Georgetech. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ToolbeltView.h" 11 | 12 | @interface ToolNotes : NSView { 13 | NSTextView *textView_; 14 | NSFileManager *filemanager_; 15 | BOOL ignoreNotification_; 16 | } 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /ToolPasteHistory.h: -------------------------------------------------------------------------------- 1 | // 2 | // ToolPasteHistory.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 9/5/11. 6 | // Copyright 2011 Georgetech. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ToolbeltView.h" 11 | #import "PasteboardHistory.h" 12 | 13 | @interface ToolPasteHistory : NSView { 14 | NSScrollView *scrollView_; 15 | NSTableView *tableView_; 16 | NSButton *clear_; 17 | PasteboardHistory *pasteHistory_; 18 | NSTimer *minuteRefreshTimer_; 19 | } 20 | 21 | - (id)initWithFrame:(NSRect)frame; 22 | - (void)shutdown; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /ToolProfiles.h: -------------------------------------------------------------------------------- 1 | // 2 | // ToolProfiles.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 9/5/11. 6 | // Copyright 2011 Georgetech. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ToolbeltView.h" 11 | #import "ProfileListView.h" 12 | 13 | @interface ToolProfiles : NSView { 14 | ProfileListView *listView_; 15 | NSPopUpButton *popup_; 16 | } 17 | 18 | - (id)initWithFrame:(NSRect)frame; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /ToolWrapper.h: -------------------------------------------------------------------------------- 1 | // 2 | // ToolWrapper.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 9/5/11. 6 | // Copyright 2011 Georgetech. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class PseudoTerminal; 12 | 13 | @protocol ToolWrapperDelegate 14 | 15 | - (BOOL)haveOnlyOneTool; 16 | - (void)hideToolbelt; 17 | - (void)toggleShowToolWithName:(NSString *)theName; 18 | 19 | @end 20 | 21 | @protocol ToolbeltTool 22 | @optional 23 | - (void)relayout; 24 | 25 | @optional 26 | - (void)shutdown; 27 | @end 28 | 29 | @interface ToolWrapper : NSView { 30 | NSTextField *title_; 31 | NSButton *closeButton_; 32 | NSString *name; 33 | NSView *container_; 34 | PseudoTerminal *term; 35 | id delegate_; // weak 36 | } 37 | 38 | @property (nonatomic, copy) NSString *name; 39 | @property (nonatomic, readonly) NSView *container; 40 | @property (nonatomic, assign) PseudoTerminal *term; 41 | @property (nonatomic, assign) id delegate; 42 | 43 | - (void)relayout; 44 | - (NSObject *)tool; 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /ToolbeltView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ToolbeltView.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 9/5/11. 6 | // Copyright 2011 Georgetech. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ToolWrapper.h" 11 | 12 | @class PseudoTerminal; 13 | 14 | @interface ToolbeltView : NSView { 15 | NSSplitView *splitter_; 16 | NSMutableDictionary *tools_; 17 | PseudoTerminal *term_; // weak 18 | } 19 | 20 | + (void)registerToolWithName:(NSString *)name withClass:(Class)c; 21 | + (void)populateMenu:(NSMenu *)menu; 22 | + (void)toggleShouldShowTool:(NSString *)theName; 23 | + (int)numberOfVisibleTools; 24 | 25 | - (id)initWithFrame:(NSRect)frame term:(PseudoTerminal *)term; 26 | 27 | 28 | // Is the tool visible? 29 | - (BOOL)showingToolWithName:(NSString *)theName; 30 | 31 | - (void)toggleToolWithName:(NSString *)theName; 32 | 33 | // Do prefs say the tool is visible? 34 | + (BOOL)shouldShowTool:(NSString *)name; 35 | 36 | - (BOOL)haveOnlyOneTool; 37 | - (void)shutdown; 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /TriggerController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TriggerController.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 9/23/11. 6 | // 7 | 8 | #import 9 | 10 | @class TriggerController; 11 | 12 | @protocol TriggerDelegate 13 | - (void)triggerChanged:(TriggerController *)controller; 14 | @end 15 | 16 | @interface TriggerController : NSWindowController { 17 | NSString *guid_; 18 | BOOL hasSelection_; 19 | IBOutlet NSObject *delegate_; // weak 20 | IBOutlet NSTableView *tableView_; 21 | IBOutlet NSTableColumn *regexColumn_; 22 | IBOutlet NSTableColumn *actionColumn_; 23 | IBOutlet NSTableColumn *parametersColumn_; 24 | } 25 | 26 | @property (nonatomic, copy) NSString *guid; 27 | @property (nonatomic, assign) BOOL hasSelection; 28 | @property (nonatomic, assign) NSObject *delegate; 29 | 30 | - (NSArray *)triggers; 31 | 32 | - (IBAction)addTrigger:(id)sender; 33 | - (IBAction)removeTrigger:(id)sender; 34 | - (IBAction)help:(id)sender; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /TrouterPrefsController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TrouterPrefsController.h 3 | // iTerm 4 | // 5 | // Created by George Nachman on 9/28/11. 6 | // Copyright 2011 Georgetech. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | extern NSString *kTrouterActionKey; 12 | extern NSString *kTrouterEditorKey; 13 | extern NSString *kTrouterTextKey; 14 | 15 | extern NSString *kSublimeTextIdentifier; 16 | extern NSString *kMacVimIdentifier; 17 | extern NSString *kTextmateIdentifier; 18 | extern NSString *kBBEditIdentifier; 19 | 20 | extern NSString *kTrouterBestEditorAction; 21 | extern NSString *kTrouterUrlAction; 22 | extern NSString *kTrouterEditorAction; 23 | extern NSString *kTrouterCommandAction; 24 | extern NSString *kTrouterRawCommandAction; 25 | 26 | @interface TrouterPrefsController : NSObject { 27 | NSString *guid_; 28 | IBOutlet NSPopUpButton *action_; 29 | IBOutlet NSTextField *text_; 30 | IBOutlet NSPopUpButton *editors_; 31 | IBOutlet NSTextField *caveat_; 32 | } 33 | 34 | @property (nonatomic, copy) NSString *guid; 35 | 36 | + (NSString *)bestEditor; 37 | + (NSString *)schemeForEditor:(NSString *)editor; 38 | - (IBAction)actionChanged:(id)sender; 39 | - (NSDictionary *)prefs; 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /UKCrashReporter/UKCrashReporter Readme.txt: -------------------------------------------------------------------------------- 1 | UKCRASHREPORTER 2 | --------------- 3 | 4 | For directions on using this class, see the comment in the header file. 5 | 6 | 7 | LICENSE: 8 | 9 | (c) 2006-08 by M. Uli Kusterer. You may redistribute, modify, use in 10 | commercial products free of charge, however distributing modified copies 11 | requires that you clearly mark them as having been modified by you, while 12 | maintaining the original markings and copyrights. I don't like getting bug 13 | reports about code I wasn't involved in. 14 | 15 | I'd also appreciate if you gave credit in your app's about screen or a similar 16 | place. A simple "Thanks to M. Uli Kusterer" is quite sufficient. 17 | Also, I rarely turn down any postcards, gifts, complementary copies of 18 | applications etc. 19 | 20 | REVISION HISTORY: 21 | 22 | 0.1 - Initial public release. 23 | 0.2 - Made this support Leopard crash reports, added system info, integrated this with UKFeedbackProvider, added text field so user can provide additional information. 24 | 0.3 - Added missing UKSystemInfo, fixed a little bug for people on Leopard with old Tiger crashlogs. 25 | 26 | 27 | CONTACT: 28 | Get the newest version at http://www.zathras.de 29 | E-Mail me at witness (at) zathras (dot) de or kusterer (at) gmail (dot) com 30 | -------------------------------------------------------------------------------- /UKCrashReporter/UKCrashReporter.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 629 7 | IBLastKnownRelativeProjectPath 8 | ../../../TalkingMoose/TalkingMoose.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 5 14 | 15 | IBSystem Version 16 | 9A581 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /UKCrashReporter/UKCrashReporter.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/UKCrashReporter/UKCrashReporter.nib/keyedobjects.nib -------------------------------------------------------------------------------- /UKCrashReporter/UKNibOwner.h: -------------------------------------------------------------------------------- 1 | /* ============================================================================= 2 | FILE: UKNibOwner.h 3 | PROJECT: CocoaTADS 4 | 5 | COPYRIGHT: (c) 2004 M. Uli Kusterer, all rights reserved. 6 | 7 | AUTHORS: M. Uli Kusterer - UK 8 | 9 | LICENSES: GPL, Modified BSD 10 | 11 | REVISIONS: 12 | 2004-11-13 UK Created. 13 | ========================================================================== */ 14 | 15 | /* 16 | UKNibOwner is a little base class for your classes. It automatically loads 17 | a NIB file with the same name as your class (e.g. "UKNibOwnerSubClass.nib") 18 | and takes care of releasing all top-level objects in the NIB when it is 19 | released. All you have to do is hook up the outlets in the NIB. 20 | */ 21 | 22 | // ----------------------------------------------------------------------------- 23 | // Headers: 24 | // ----------------------------------------------------------------------------- 25 | 26 | #import 27 | 28 | 29 | // ----------------------------------------------------------------------------- 30 | // Classes: 31 | // ----------------------------------------------------------------------------- 32 | 33 | @interface UKNibOwner : NSObject 34 | { 35 | NSMutableArray* topLevelObjects; 36 | } 37 | 38 | -(NSString*) nibFilename; // Defaults to name of the class. 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /UKCrashReporter/UKSystemInfo.h: -------------------------------------------------------------------------------- 1 | // 2 | // UKSystemInfo.h 3 | // UKSystemInfo 4 | // 5 | // Created by Uli Kusterer on 23.09.04. 6 | // Copyright 2004 M. Uli Kusterer. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | unsigned UKPhysicalRAMSize(void); // RAM Size in MBs. 13 | NSString* UKSystemVersionString(void); // System version as a string MM.m.b 14 | unsigned UKClockSpeed(void); // CPU speed in MHz. 15 | unsigned UKCountCores(void); // Number of CPU cores. This is always >= number of CPUs. 16 | NSString* UKMachineName(void); // Name of Mac model, as best as we can determine. 17 | NSString* UKCPUName(void); // Same as UKAutoreleasedCPUName( NO ); 18 | NSString* UKAutoreleasedCPUName( BOOL releaseIt ); // Returns CPU name, i.e. "G3", "G4" etc. If releaseIt is YES, this will look up the name anew each time, otherwise it will cache the name for subsequent calls. Doesn't support the G5 :-( 19 | //NSString* UKSystemSerialNumber(); 20 | void UKGetSystemVersionComponents( SInt32* outMajor, SInt32* outMinor, SInt32* outBugfix ); // System version as the separate components (Major.Minor.Bugfix). 21 | 22 | // Don't use the following for new code: 23 | // (Since the number is in BCD, the maximum for minor and bugfix revisions is 9, so this returns 1049 for 10.4.10) 24 | long UKSystemVersion(void); // System version as BCD number, I.e. 0xMMmb 25 | -------------------------------------------------------------------------------- /applyLocalization.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | MASTER_DIR=`pwd` 4 | MASTER="English.lproj" 5 | LOCALIZATIONS=`ls | fgrep lproj` 6 | 7 | 8 | for LANGUAGE in $LOCALIZATIONS 9 | do 10 | if [[ -d $LANGUAGE && $LANGUAGE != $MASTER ]]; then 11 | echo -e "\nProcessing $LANGUAGE localization" 12 | cd $LANGUAGE 13 | 14 | NIB_DICTS=`ls *.strings` 15 | 16 | for DICT in $NIB_DICTS 17 | do 18 | NIB_FILE=`echo -n $DICT | awk -F "." '{print $1}'`.nib 19 | # If the master nib file exists, translate it 20 | if [ -d ${MASTER_DIR}/${MASTER}/${NIB_FILE} ]; then 21 | 22 | echo "Translating ${NIB_FILE}" 23 | TEMP_NIB_FILE=tmp.nib 24 | 25 | # Check if the target nib file already exists 26 | if [ -d ${NIB_FILE} ]; then 27 | nibtool -I ${NIB_FILE} -w ${TEMP_NIB_FILE} -d ${DICT} ${MASTER_DIR}/${MASTER}/${NIB_FILE} 28 | cp ${TEMP_NIB_FILE}/* ${NIB_FILE} 29 | rm -rf ${TEMP_NIB_FILE} 30 | else 31 | nibtool -w ${TEMP_NIB_FILE} -d ${DICT} ${MASTER_DIR}/${MASTER}/${NIB_FILE} 32 | mv ${TEMP_NIB_FILE} ${NIB_FILE} 33 | fi 34 | 35 | fi 36 | done 37 | 38 | cd $MASTER_DIR 39 | 40 | fi 41 | done 42 | -------------------------------------------------------------------------------- /canary.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Run this before uploading. 3 | COMPACTDATE=$(date +"%Y%m%d") 4 | VERSION=$(cat version.txt | sed -e "s/%(extra)s/$COMPACTDATE/") 5 | NAME=$(echo $VERSION | sed -e "s/\\./_/g") 6 | cd build/Deployment 7 | zip -r iTerm2-${NAME}.zip iTerm.app 8 | vi ../../appcasts/testing_changes.html 9 | LENGTH=$(ls -l iTerm2-${NAME}.zip | awk '{print $5}') 10 | ruby "/Users/georgen/Downloads/Sparkle 1.5b6/Extras/Signing Tools/sign_update.rb" iTerm2-${NAME}.zip $PRIVKEY > /tmp/sig.txt 11 | SIG=$(cat /tmp/sig.txt) 12 | DATE=$(date +"%a, %d %b %Y %H:%M:%S %z") 13 | cp ../../appcasts/template.xml /tmp 14 | cat /tmp/template.xml | \ 15 | sed -e "s/%VER%/${VERSION}/" | \ 16 | sed -e "s/%DATE%/${DATE}/" | \ 17 | sed -e "s/%NAME%/${NAME}/" | \ 18 | sed -e "s/%LENGTH%/$LENGTH/" | 19 | sed -e "s,%SIG%,${SIG}," > ../../appcasts/canary.xml 20 | echo "Go upload the iTerm2-${NAME}.zip, then run:" 21 | echo "git tag v${VERSION}" 22 | echo "git push --tags" 23 | echo "svn commit -m ${VERSION} appcasts/canary.xml appcasts/testing_changes.html" 24 | echo "git commit -am ${VERSION}" 25 | echo "git push origin master" 26 | -------------------------------------------------------------------------------- /commit.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | git commit -a && git push 3 | -------------------------------------------------------------------------------- /debugRetainRelease.m: -------------------------------------------------------------------------------- 1 | id debugsession = 0; 2 | - (id)retain 3 | { 4 | id rv = [super retain]; 5 | if (self == debugsession) 6 | NSLog(@"Session %@ retained. rc=%d. \n%@", self, [self retainCount], [NSThread callStackSymbols]); 7 | return rv; 8 | } 9 | 10 | - (oneway void)release 11 | { 12 | if (self == debugsession) 13 | NSLog(@"Session %@ released. rc=%d. \n%@", self, [self retainCount]-1, [NSThread callStackSymbols]); 14 | [super release]; 15 | } 16 | 17 | - (id)autorelease 18 | { 19 | id rv = [super autorelease]; 20 | if (self == debugsession) 21 | NSLog(@"Session %@ autoreleased. rc=%d. \n%@", self, [self retainCount], [NSThread callStackSymbols]); 22 | return rv; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /dsa_pub.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIIDOzCCAi4GByqGSM44BAEwggIhAoIBAQDoOoUuYvo3s2hKPjaGjidUcDpBABcO 3 | CVan5CQh0ILy1H8iouGoiF87Ri0BDIkhQl/mZrHShIUpl4T833A8q6nuYw1XNjnW 4 | tlEwZ9rGKwxkneiDV9/D+l+2K5EgoCoRenY0DekKP+koMJ70tLGP57jyh/PgXtVf 5 | pBEkccPGP0xH9nd77JFxvamYJemXIOk6+/XlBdqijNtoS6gWT5LWzR+tMB7fDZDJ 6 | m42Lb3YRX/IbVdLxCtjvhmUmhlUOWxypHVB9uNy5Z2KzwV/ptIawfm23FTES4CaL 7 | lCkLxTMPE5vIQjob7A+KtcWcwt6X/bXzq9oiBT/FiSQczC5AlH4jKTKFAhUAlDqp 8 | PX/1gub7OQrHMHkbrqQIbjcCggEBAKSyukmx6hW4dAf1hGa8uZ/fP07ddFrTfrOC 9 | GyZfWr2TvLVJWwTT8N62RRgCU+wSVd9TagHhp0CpnItqIVq2IHT1vqgSRhB7W9hO 10 | moCCphEUWYSg4iYfuvaoiAPlt+IZvhhkyRBcrj+7va0qqPV2wA/4TMI2MsWOkmT3 11 | anJ+pHuVjWneEbLAR1UL7PU7mDbQA+J6ApQI3jBpGdg45ZiaaGpq6OY7IFvk+aSS 12 | R+FlYnRcvPfBENeDluFm/Bm2H3kRxPx1n8h98B55II37cAonUZ0napUwBAe32uQn 13 | XSO7VOUXlLFyZd0eqLinymB/QP46qyeSm699F+y/+r58KO7lnwgDggEFAAKCAQAc 14 | 5SGXutazXIk7Z4Tq626Tr390sViwwxScCSd/WMn5bsNuS3OEq61MyS9FCOAePVef 15 | KC2NVDgeprxuhRKyJqLAVuafhvm37Y/vVZO5qWDQWNteRkZJ80W5BTmZgE49qutV 16 | WXaKGBiEkWPl83wbFOB3gCgbWwvUkTT1iDIag5IIFHqLwZ4UTgKpA49VxJxCRhQn 17 | bHhPrG9dOAZctnJkq24aSzonQxE6dbXiqFqMeWCr3AeqWOmfjgzK8WvYF/3tshZy 18 | n3h893zARKuFQEhS791NczNHI7KW4wuCSRTB8f9g1JHEXSw+iCR8XrZhjgeLI0O/ 19 | CDl1Bjq8VVGNRvdbyaGs 20 | -----END PUBLIC KEY----- -------------------------------------------------------------------------------- /full_release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Run this before uploading. 3 | MINORVERSION=$1 4 | BUGVERSION=$2 5 | NAME=1.$MINORVERSION.$BUGVERSION 6 | cd build/Deployment 7 | zip -r iTerm2-${NAME}.zip iTerm.app 8 | vi ../../appcasts/full_changes.html 9 | LENGTH=$(ls -l iTerm2-${NAME}.zip | awk '{print $5}') 10 | ruby "/Users/georgen/Downloads/Sparkle 1.5b6/Extras/Signing Tools/sign_update.rb" iTerm2-${NAME}.zip $PRIVKEY > /tmp/sig.txt 11 | SIG=$(cat /tmp/sig.txt) 12 | DATE=$(date +"%a, %d %b %Y %H:%M:%S %z") 13 | cp ../../appcasts/full_template.xml /tmp/template.xml 14 | cat /tmp/template.xml | \ 15 | sed -e "s/%MINORVER%/${MINORVERSION}/" | \ 16 | sed -e "s/%BUGVER%/${BUGVERSION}/" | \ 17 | sed -e "s/%DATE%/${DATE}/" | \ 18 | sed -e "s/%NAME%/${NAME}/" | \ 19 | sed -e "s/%LENGTH%/$LENGTH/" | 20 | sed -e "s,%SIG%,${SIG}," > ../../appcasts/final.xml 21 | echo "Go upload the iTerm2-${NAME}.zip, then run:" 22 | echo "svn commit -m $NAME" 23 | echo "cd .. && trunk/release2.sh $NAME" 24 | -------------------------------------------------------------------------------- /full_release2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | NAME=$1 3 | export EDITOR=vi 4 | svn copy -m $NAME trunk https://iterm2.googlecode.com/svn/tags/$NAME 5 | echo Run this: 6 | echo cd trunk 7 | echo svn commit -m \"$NAME trunk\" 8 | -------------------------------------------------------------------------------- /iTerm.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/iTerm.icns -------------------------------------------------------------------------------- /iTerm_Framework.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | iTerm 9 | CFBundleGetInfoString 10 | 11 | CFBundleIconFile 12 | 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | iTerm Framework 17 | CFBundlePackageType 18 | FMWK 19 | CFBundleShortVersionString 20 | unknown 21 | CFBundleSignature 22 | ITRM 23 | CFBundleVersion 24 | unknown 25 | 26 | 27 | -------------------------------------------------------------------------------- /images/BroadcastInput.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/BroadcastInput.png -------------------------------------------------------------------------------- /images/Coprocess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/Coprocess.png -------------------------------------------------------------------------------- /images/Coprocess.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/Coprocess.psd -------------------------------------------------------------------------------- /images/Copy-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/Copy-icon.png -------------------------------------------------------------------------------- /images/IBarCursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/IBarCursor.png -------------------------------------------------------------------------------- /images/IBarCursorXMR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/IBarCursorXMR.png -------------------------------------------------------------------------------- /images/PrefsAdvanced.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/PrefsAdvanced.tiff -------------------------------------------------------------------------------- /images/PrefsBookmarks.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/PrefsBookmarks.tiff -------------------------------------------------------------------------------- /images/PrefsDisplay.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/PrefsDisplay.tiff -------------------------------------------------------------------------------- /images/PrefsGeneral.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/PrefsGeneral.tiff -------------------------------------------------------------------------------- /images/PrefsKeyboard.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/PrefsKeyboard.tiff -------------------------------------------------------------------------------- /images/PrefsMouse-big.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/PrefsMouse-big.tiff -------------------------------------------------------------------------------- /images/PrefsMouse.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/PrefsMouse.tiff -------------------------------------------------------------------------------- /images/PrefsTerminal.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/PrefsTerminal.tiff -------------------------------------------------------------------------------- /images/addressbook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/addressbook.png -------------------------------------------------------------------------------- /images/arrangement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/arrangement.png -------------------------------------------------------------------------------- /images/arrangement.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/arrangement.psd -------------------------------------------------------------------------------- /images/bell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/bell.png -------------------------------------------------------------------------------- /images/bell.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/bell.psd -------------------------------------------------------------------------------- /images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/close.png -------------------------------------------------------------------------------- /images/closebutton.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/closebutton.tif -------------------------------------------------------------------------------- /images/config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/config.png -------------------------------------------------------------------------------- /images/edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/edit.png -------------------------------------------------------------------------------- /images/exec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/exec.png -------------------------------------------------------------------------------- /images/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/folder.png -------------------------------------------------------------------------------- /images/iTerm-Aqua.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/iTerm-Aqua.jpg -------------------------------------------------------------------------------- /images/iTerm-old.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/iTerm-old.icns -------------------------------------------------------------------------------- /images/iTerm-old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/iTerm-old.png -------------------------------------------------------------------------------- /images/iTerm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/iTerm.png -------------------------------------------------------------------------------- /images/important.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/important.png -------------------------------------------------------------------------------- /images/new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/new.png -------------------------------------------------------------------------------- /images/newwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/newwin.png -------------------------------------------------------------------------------- /images/screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/screen.png -------------------------------------------------------------------------------- /images/script.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/script.png -------------------------------------------------------------------------------- /images/sort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/sort.png -------------------------------------------------------------------------------- /images/star-gold24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/star-gold24.png -------------------------------------------------------------------------------- /images/waiting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/waiting.png -------------------------------------------------------------------------------- /images/wrap.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/wrap.psd -------------------------------------------------------------------------------- /images/wrap_to_bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/wrap_to_bottom.png -------------------------------------------------------------------------------- /images/wrap_to_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/images/wrap_to_top.png -------------------------------------------------------------------------------- /main.m: -------------------------------------------------------------------------------- 1 | // -*- mode:objc -*- 2 | // $Id: main.m,v 1.2 2008-08-29 23:35:29 delx Exp $ 3 | // 4 | // main.m 5 | // JTerminal 6 | // 7 | // Created by kuma on Thu Nov 22 2001. 8 | // Copyright (c) 2001 Kiichi Kusama. All rights reserved. 9 | // 10 | 11 | #import 12 | #import "PreferencePanel.h" 13 | #import 14 | 15 | int main(int argc, const char *argv[]) 16 | { 17 | signal(SIGPIPE, SIG_IGN); 18 | sigset_t signals; 19 | sigemptyset(&signals); 20 | sigaddset(&signals, SIGPIPE); 21 | sigprocmask(SIG_BLOCK, &signals, NULL); 22 | 23 | return NSApplicationMain(argc, argv); 24 | } 25 | -------------------------------------------------------------------------------- /merge.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | svn merge https://iterm2.googlecode.com/svn/trunk . 3 | -------------------------------------------------------------------------------- /nightly.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Run this before uploading. 3 | NAME=$1 4 | cd build/Deployment 5 | NAME=`date +'iTerm2-nightly-%Y-%m-%d.zip'` 6 | zip -r $NAME iTerm.app 7 | echo `pwd`/$NAME 8 | -------------------------------------------------------------------------------- /ply/ply-3.4/CHANGES: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/ply/ply-3.4/CHANGES -------------------------------------------------------------------------------- /ply/ply-3.4/PKG-INFO: -------------------------------------------------------------------------------- 1 | Metadata-Version: 1.0 2 | Name: ply 3 | Version: 3.4 4 | Summary: Python Lex & Yacc 5 | Home-page: http://www.dabeaz.com/ply/ 6 | Author: David Beazley 7 | Author-email: dave@dabeaz.com 8 | License: BSD 9 | Description: 10 | PLY is yet another implementation of lex and yacc for Python. Some notable 11 | features include the fact that its implemented entirely in Python and it 12 | uses LALR(1) parsing which is efficient and well suited for larger grammars. 13 | 14 | PLY provides most of the standard lex/yacc features including support for empty 15 | productions, precedence rules, error recovery, and support for ambiguous grammars. 16 | 17 | PLY is extremely easy to use and provides very extensive error checking. 18 | It is compatible with both Python 2 and Python 3. 19 | 20 | Platform: UNKNOWN 21 | Classifier: Programming Language :: Python :: 3 22 | Classifier: Programming Language :: Python :: 2 23 | -------------------------------------------------------------------------------- /ply/ply-3.4/TODO: -------------------------------------------------------------------------------- 1 | The PLY to-do list: 2 | 3 | 1. Finish writing the C Preprocessor module. Started in the 4 | file ply/cpp.py 5 | 6 | 2. Create and document libraries of useful tokens. 7 | 8 | 3. Expand the examples/yply tool that parses bison/yacc 9 | files. 10 | 11 | 4. Think of various diabolical things to do with the 12 | new yacc internals. For example, it is now possible 13 | to specify grammrs using completely different schemes 14 | than the reflection approach used by PLY. 15 | 16 | 17 | -------------------------------------------------------------------------------- /ply/ply-3.4/example/BASIC/dim.bas: -------------------------------------------------------------------------------- 1 | 5 DIM A(50,15) 2 | 10 FOR I = 1 TO 50 3 | 20 FOR J = 1 TO 15 4 | 30 LET A(I,J) = I + J 5 | 35 REM PRINT I,J, A(I,J) 6 | 40 NEXT J 7 | 50 NEXT I 8 | 100 FOR I = 1 TO 50 9 | 110 FOR J = 1 TO 15 10 | 120 PRINT A(I,J), 11 | 130 NEXT J 12 | 140 PRINT 13 | 150 NEXT I 14 | 999 END 15 | -------------------------------------------------------------------------------- /ply/ply-3.4/example/BASIC/func.bas: -------------------------------------------------------------------------------- 1 | 10 DEF FDX(X) = 2*X 2 | 20 FOR I = 0 TO 100 3 | 30 PRINT FDX(I) 4 | 40 NEXT I 5 | 50 END 6 | -------------------------------------------------------------------------------- /ply/ply-3.4/example/BASIC/gcd.bas: -------------------------------------------------------------------------------- 1 | 10 PRINT "A","B","C","GCD" 2 | 20 READ A,B,C 3 | 30 LET X = A 4 | 40 LET Y = B 5 | 50 GOSUB 200 6 | 60 LET X = G 7 | 70 LET Y = C 8 | 80 GOSUB 200 9 | 90 PRINT A, B, C, G 10 | 100 GOTO 20 11 | 110 DATA 60, 90, 120 12 | 120 DATA 38456, 64872, 98765 13 | 130 DATA 32, 384, 72 14 | 200 LET Q = INT(X/Y) 15 | 210 LET R = X - Q*Y 16 | 220 IF R = 0 THEN 300 17 | 230 LET X = Y 18 | 240 LET Y = R 19 | 250 GOTO 200 20 | 300 LET G = Y 21 | 310 RETURN 22 | 999 END 23 | -------------------------------------------------------------------------------- /ply/ply-3.4/example/BASIC/gosub.bas: -------------------------------------------------------------------------------- 1 | 100 LET X = 3 2 | 110 GOSUB 400 3 | 120 PRINT U, V, W 4 | 200 LET X = 5 5 | 210 GOSUB 400 6 | 220 LET Z = U + 2*V + 3*W 7 | 230 PRINT Z 8 | 240 GOTO 999 9 | 400 LET U = X*X 10 | 410 LET V = X*X*X 11 | 420 LET W = X*X*X*X + X*X*X + X*X + X 12 | 430 RETURN 13 | 999 END 14 | -------------------------------------------------------------------------------- /ply/ply-3.4/example/BASIC/hello.bas: -------------------------------------------------------------------------------- 1 | 5 REM HELLO WORLD PROGAM 2 | 10 PRINT "HELLO WORLD" 3 | 99 END 4 | 5 | -------------------------------------------------------------------------------- /ply/ply-3.4/example/BASIC/linear.bas: -------------------------------------------------------------------------------- 1 | 1 REM ::: SOLVE A SYSTEM OF LINEAR EQUATIONS 2 | 2 REM ::: A1*X1 + A2*X2 = B1 3 | 3 REM ::: A3*X1 + A4*X2 = B2 4 | 4 REM -------------------------------------- 5 | 10 READ A1, A2, A3, A4 6 | 15 LET D = A1 * A4 - A3 * A2 7 | 20 IF D = 0 THEN 65 8 | 30 READ B1, B2 9 | 37 LET X1 = (B1*A4 - B2*A2) / D 10 | 42 LET X2 = (A1*B2 - A3*B1) / D 11 | 55 PRINT X1, X2 12 | 60 GOTO 30 13 | 65 PRINT "NO UNIQUE SOLUTION" 14 | 70 DATA 1, 2, 4 15 | 80 DATA 2, -7, 5 16 | 85 DATA 1, 3, 4, -7 17 | 90 END 18 | -------------------------------------------------------------------------------- /ply/ply-3.4/example/BASIC/maxsin.bas: -------------------------------------------------------------------------------- 1 | 5 PRINT "X VALUE", "SINE", "RESOLUTION" 2 | 10 READ D 3 | 20 LET M = -1 4 | 30 FOR X = 0 TO 3 STEP D 5 | 40 IF SIN(X) <= M THEN 80 6 | 50 LET X0 = X 7 | 60 LET M = SIN(X) 8 | 80 NEXT X 9 | 85 PRINT X0, M, D 10 | 90 GOTO 10 11 | 100 DATA .1, .01, .001 12 | 110 END 13 | -------------------------------------------------------------------------------- /ply/ply-3.4/example/BASIC/powers.bas: -------------------------------------------------------------------------------- 1 | 5 PRINT "THIS PROGRAM COMPUTES AND PRINTS THE NTH POWERS" 2 | 6 PRINT "OF THE NUMBERS LESS THAN OR EQUAL TO N FOR VARIOUS" 3 | 7 PRINT "N FROM 1 THROUGH 7" 4 | 8 PRINT 5 | 10 FOR N = 1 TO 7 6 | 15 PRINT "N = "N 7 | 20 FOR I = 1 TO N 8 | 30 PRINT I^N, 9 | 40 NEXT I 10 | 50 PRINT 11 | 60 PRINT 12 | 70 NEXT N 13 | 80 END 14 | -------------------------------------------------------------------------------- /ply/ply-3.4/example/BASIC/rand.bas: -------------------------------------------------------------------------------- 1 | 10 FOR I = 1 TO 20 2 | 20 PRINT INT(10*RND(0)) 3 | 30 NEXT I 4 | 40 END 5 | -------------------------------------------------------------------------------- /ply/ply-3.4/example/BASIC/sales.bas: -------------------------------------------------------------------------------- 1 | 10 FOR I = 1 TO 3 2 | 20 READ P(I) 3 | 30 NEXT I 4 | 40 FOR I = 1 TO 3 5 | 50 FOR J = 1 TO 5 6 | 60 READ S(I,J) 7 | 70 NEXT J 8 | 80 NEXT I 9 | 90 FOR J = 1 TO 5 10 | 100 LET S = 0 11 | 110 FOR I = 1 TO 3 12 | 120 LET S = S + P(I) * S(I,J) 13 | 130 NEXT I 14 | 140 PRINT "TOTAL SALES FOR SALESMAN"J, "$"S 15 | 150 NEXT J 16 | 200 DATA 1.25, 4.30, 2.50 17 | 210 DATA 40, 20, 37, 29, 42 18 | 220 DATA 10, 16, 3, 21, 8 19 | 230 DATA 35, 47, 29, 16, 33 20 | 300 END 21 | -------------------------------------------------------------------------------- /ply/ply-3.4/example/BASIC/sears.bas: -------------------------------------------------------------------------------- 1 | 1 REM :: THIS PROGRAM COMPUTES HOW MANY TIMES YOU HAVE TO FOLD 2 | 2 REM :: A PIECE OF PAPER SO THAT IT IS TALLER THAN THE 3 | 3 REM :: SEARS TOWER. 4 | 4 REM :: S = HEIGHT OF TOWER (METERS) 5 | 5 REM :: T = THICKNESS OF PAPER (MILLIMETERS) 6 | 10 LET S = 442 7 | 20 LET T = 0.1 8 | 30 REM CONVERT T TO METERS 9 | 40 LET T = T * .001 10 | 50 LET F = 1 11 | 60 LET H = T 12 | 100 IF H > S THEN 200 13 | 120 LET H = 2 * H 14 | 125 LET F = F + 1 15 | 130 GOTO 100 16 | 200 PRINT "NUMBER OF FOLDS ="F 17 | 220 PRINT "FINAL HEIGHT ="H 18 | 999 END 19 | -------------------------------------------------------------------------------- /ply/ply-3.4/example/BASIC/sqrt1.bas: -------------------------------------------------------------------------------- 1 | 10 LET X = 0 2 | 20 LET X = X + 1 3 | 30 PRINT X, SQR(X) 4 | 40 IF X < 100 THEN 20 5 | 50 END 6 | -------------------------------------------------------------------------------- /ply/ply-3.4/example/BASIC/sqrt2.bas: -------------------------------------------------------------------------------- 1 | 10 FOR X = 1 TO 100 2 | 20 PRINT X, SQR(X) 3 | 30 NEXT X 4 | 40 END 5 | -------------------------------------------------------------------------------- /ply/ply-3.4/example/GardenSnake/README: -------------------------------------------------------------------------------- 1 | This example is Andrew Dalke's GardenSnake language. It shows how to process an 2 | indentation-like language like Python. Further details can be found here: 3 | 4 | http://dalkescientific.com/writings/diary/archive/2006/08/30/gardensnake_language.html 5 | 6 | -------------------------------------------------------------------------------- /ply/ply-3.4/example/README: -------------------------------------------------------------------------------- 1 | Simple examples: 2 | calc - Simple calculator 3 | classcalc - Simple calculate defined as a class 4 | 5 | Complex examples 6 | ansic - ANSI C grammar from K&R 7 | BASIC - A small BASIC interpreter 8 | GardenSnake - A simple python-like language 9 | yply - Converts Unix yacc files to PLY programs. 10 | 11 | -------------------------------------------------------------------------------- /ply/ply-3.4/example/ansic/README: -------------------------------------------------------------------------------- 1 | This example is incomplete. Was going to specify an ANSI C parser. 2 | This is part of it. 3 | -------------------------------------------------------------------------------- /ply/ply-3.4/example/cleanup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | rm -f */*.pyc */parsetab.py */parser.out */*~ */*.class 3 | -------------------------------------------------------------------------------- /ply/ply-3.4/example/hedit/hedit.py: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------------------------------- 2 | # hedit.py 3 | # 4 | # Paring of Fortran H Edit descriptions (Contributed by Pearu Peterson) 5 | # 6 | # These tokens can't be easily tokenized because they are of the following 7 | # form: 8 | # 9 | # nHc1...cn 10 | # 11 | # where n is a positive integer and c1 ... cn are characters. 12 | # 13 | # This example shows how to modify the state of the lexer to parse 14 | # such tokens 15 | # ----------------------------------------------------------------------------- 16 | 17 | import sys 18 | sys.path.insert(0,"../..") 19 | 20 | 21 | tokens = ( 22 | 'H_EDIT_DESCRIPTOR', 23 | ) 24 | 25 | # Tokens 26 | t_ignore = " \t\n" 27 | 28 | def t_H_EDIT_DESCRIPTOR(t): 29 | r"\d+H.*" # This grabs all of the remaining text 30 | i = t.value.index('H') 31 | n = eval(t.value[:i]) 32 | 33 | # Adjust the tokenizing position 34 | t.lexer.lexpos -= len(t.value) - (i+1+n) 35 | 36 | t.value = t.value[i+1:i+1+n] 37 | return t 38 | 39 | def t_error(t): 40 | print("Illegal character '%s'" % t.value[0]) 41 | t.lexer.skip(1) 42 | 43 | # Build the lexer 44 | import ply.lex as lex 45 | lex.lex() 46 | lex.runmain() 47 | 48 | 49 | -------------------------------------------------------------------------------- /ply/ply-3.4/example/optcalc/README: -------------------------------------------------------------------------------- 1 | An example showing how to use Python optimized mode. 2 | To run: 3 | 4 | - First run 'python calc.py' 5 | 6 | - Then run 'python -OO calc.py' 7 | 8 | If working correctly, the second version should run the 9 | same way. 10 | -------------------------------------------------------------------------------- /ply/ply-3.4/ply/__init__.py: -------------------------------------------------------------------------------- 1 | # PLY package 2 | # Author: David Beazley (dave@dabeaz.com) 3 | 4 | __all__ = ['lex','yacc'] 5 | -------------------------------------------------------------------------------- /ply/ply-3.4/setup.py: -------------------------------------------------------------------------------- 1 | try: 2 | from setuptools import setup 3 | except ImportError: 4 | from distutils.core import setup 5 | 6 | setup(name = "ply", 7 | description="Python Lex & Yacc", 8 | long_description = """ 9 | PLY is yet another implementation of lex and yacc for Python. Some notable 10 | features include the fact that its implemented entirely in Python and it 11 | uses LALR(1) parsing which is efficient and well suited for larger grammars. 12 | 13 | PLY provides most of the standard lex/yacc features including support for empty 14 | productions, precedence rules, error recovery, and support for ambiguous grammars. 15 | 16 | PLY is extremely easy to use and provides very extensive error checking. 17 | It is compatible with both Python 2 and Python 3. 18 | """, 19 | license="""BSD""", 20 | version = "3.4", 21 | author = "David Beazley", 22 | author_email = "dave@dabeaz.com", 23 | maintainer = "David Beazley", 24 | maintainer_email = "dave@dabeaz.com", 25 | url = "http://www.dabeaz.com/ply/", 26 | packages = ['ply'], 27 | classifiers = [ 28 | 'Programming Language :: Python :: 3', 29 | 'Programming Language :: Python :: 2', 30 | ] 31 | ) 32 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/README: -------------------------------------------------------------------------------- 1 | This directory mostly contains tests for various types of error 2 | conditions. To run: 3 | 4 | $ python testlex.py . 5 | $ python testyacc.py . 6 | 7 | The script 'cleanup.sh' cleans up this directory to its original state. 8 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/calclex.py: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------------------------------- 2 | # calclex.py 3 | # ----------------------------------------------------------------------------- 4 | import sys 5 | 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | import ply.lex as lex 8 | 9 | tokens = ( 10 | 'NAME','NUMBER', 11 | 'PLUS','MINUS','TIMES','DIVIDE','EQUALS', 12 | 'LPAREN','RPAREN', 13 | ) 14 | 15 | # Tokens 16 | 17 | t_PLUS = r'\+' 18 | t_MINUS = r'-' 19 | t_TIMES = r'\*' 20 | t_DIVIDE = r'/' 21 | t_EQUALS = r'=' 22 | t_LPAREN = r'\(' 23 | t_RPAREN = r'\)' 24 | t_NAME = r'[a-zA-Z_][a-zA-Z0-9_]*' 25 | 26 | def t_NUMBER(t): 27 | r'\d+' 28 | try: 29 | t.value = int(t.value) 30 | except ValueError: 31 | print("Integer value too large %s" % t.value) 32 | t.value = 0 33 | return t 34 | 35 | t_ignore = " \t" 36 | 37 | def t_newline(t): 38 | r'\n+' 39 | t.lineno += t.value.count("\n") 40 | 41 | def t_error(t): 42 | print("Illegal character '%s'" % t.value[0]) 43 | t.lexer.skip(1) 44 | 45 | # Build the lexer 46 | lex.lex() 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/cleanup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | rm -rf *~ *.pyc *.pyo *.dif *.out __pycache__ 4 | 5 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_closure.py: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------------------------------- 2 | # lex_closure.py 3 | # ----------------------------------------------------------------------------- 4 | import sys 5 | 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | import ply.lex as lex 8 | 9 | tokens = ( 10 | 'NAME','NUMBER', 11 | 'PLUS','MINUS','TIMES','DIVIDE','EQUALS', 12 | 'LPAREN','RPAREN', 13 | ) 14 | 15 | def make_calc(): 16 | 17 | # Tokens 18 | 19 | t_PLUS = r'\+' 20 | t_MINUS = r'-' 21 | t_TIMES = r'\*' 22 | t_DIVIDE = r'/' 23 | t_EQUALS = r'=' 24 | t_LPAREN = r'\(' 25 | t_RPAREN = r'\)' 26 | t_NAME = r'[a-zA-Z_][a-zA-Z0-9_]*' 27 | 28 | def t_NUMBER(t): 29 | r'\d+' 30 | try: 31 | t.value = int(t.value) 32 | except ValueError: 33 | print("Integer value too large %s" % t.value) 34 | t.value = 0 35 | return t 36 | 37 | t_ignore = " \t" 38 | 39 | def t_newline(t): 40 | r'\n+' 41 | t.lineno += t.value.count("\n") 42 | 43 | def t_error(t): 44 | print("Illegal character '%s'" % t.value[0]) 45 | t.lexer.skip(1) 46 | 47 | # Build the lexer 48 | return lex.lex() 49 | 50 | make_calc() 51 | lex.runmain(data="3+4") 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_doc1.py: -------------------------------------------------------------------------------- 1 | # lex_doc1.py 2 | # 3 | # Missing documentation string 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | t_PLUS = r'\+' 17 | t_MINUS = r'-' 18 | def t_NUMBER(t): 19 | pass 20 | 21 | def t_error(t): 22 | pass 23 | 24 | lex.lex() 25 | 26 | 27 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_dup1.py: -------------------------------------------------------------------------------- 1 | # lex_dup1.py 2 | # 3 | # Duplicated rule specifiers 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | t_PLUS = r'\+' 17 | t_MINUS = r'-' 18 | t_NUMBER = r'\d+' 19 | 20 | t_NUMBER = r'\d+' 21 | 22 | def t_error(t): 23 | pass 24 | 25 | 26 | 27 | lex.lex() 28 | 29 | 30 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_dup2.py: -------------------------------------------------------------------------------- 1 | # lex_dup2.py 2 | # 3 | # Duplicated rule specifiers 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | t_PLUS = r'\+' 17 | t_MINUS = r'-' 18 | def t_NUMBER(t): 19 | r'\d+' 20 | pass 21 | 22 | def t_NUMBER(t): 23 | r'\d+' 24 | pass 25 | 26 | def t_error(t): 27 | pass 28 | 29 | 30 | 31 | lex.lex() 32 | 33 | 34 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_dup3.py: -------------------------------------------------------------------------------- 1 | # lex_dup3.py 2 | # 3 | # Duplicated rule specifiers 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | t_PLUS = r'\+' 17 | t_MINUS = r'-' 18 | t_NUMBER = r'\d+' 19 | 20 | def t_NUMBER(t): 21 | r'\d+' 22 | pass 23 | 24 | def t_error(t): 25 | pass 26 | 27 | 28 | 29 | lex.lex() 30 | 31 | 32 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_empty.py: -------------------------------------------------------------------------------- 1 | # lex_empty.py 2 | # 3 | # No rules defined 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | 17 | 18 | lex.lex() 19 | 20 | 21 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_error1.py: -------------------------------------------------------------------------------- 1 | # lex_error1.py 2 | # 3 | # Missing t_error() rule 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | t_PLUS = r'\+' 17 | t_MINUS = r'-' 18 | t_NUMBER = r'\d+' 19 | 20 | 21 | 22 | lex.lex() 23 | 24 | 25 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_error2.py: -------------------------------------------------------------------------------- 1 | # lex_error2.py 2 | # 3 | # t_error defined, but not function 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | t_PLUS = r'\+' 17 | t_MINUS = r'-' 18 | t_NUMBER = r'\d+' 19 | 20 | t_error = "foo" 21 | 22 | 23 | 24 | lex.lex() 25 | 26 | 27 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_error3.py: -------------------------------------------------------------------------------- 1 | # lex_error3.py 2 | # 3 | # t_error defined as function, but with wrong # args 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | t_PLUS = r'\+' 17 | t_MINUS = r'-' 18 | t_NUMBER = r'\d+' 19 | 20 | def t_error(): 21 | pass 22 | 23 | 24 | 25 | lex.lex() 26 | 27 | 28 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_error4.py: -------------------------------------------------------------------------------- 1 | # lex_error4.py 2 | # 3 | # t_error defined as function, but too many args 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | t_PLUS = r'\+' 17 | t_MINUS = r'-' 18 | t_NUMBER = r'\d+' 19 | 20 | def t_error(t,s): 21 | pass 22 | 23 | 24 | 25 | lex.lex() 26 | 27 | 28 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_hedit.py: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------------------------------- 2 | # hedit.py 3 | # 4 | # Paring of Fortran H Edit descriptions (Contributed by Pearu Peterson) 5 | # 6 | # These tokens can't be easily tokenized because they are of the following 7 | # form: 8 | # 9 | # nHc1...cn 10 | # 11 | # where n is a positive integer and c1 ... cn are characters. 12 | # 13 | # This example shows how to modify the state of the lexer to parse 14 | # such tokens 15 | # ----------------------------------------------------------------------------- 16 | import sys 17 | if ".." not in sys.path: sys.path.insert(0,"..") 18 | 19 | import ply.lex as lex 20 | 21 | tokens = ( 22 | 'H_EDIT_DESCRIPTOR', 23 | ) 24 | 25 | # Tokens 26 | t_ignore = " \t\n" 27 | 28 | def t_H_EDIT_DESCRIPTOR(t): 29 | r"\d+H.*" # This grabs all of the remaining text 30 | i = t.value.index('H') 31 | n = eval(t.value[:i]) 32 | 33 | # Adjust the tokenizing position 34 | t.lexer.lexpos -= len(t.value) - (i+1+n) 35 | t.value = t.value[i+1:i+1+n] 36 | return t 37 | 38 | def t_error(t): 39 | print("Illegal character '%s'" % t.value[0]) 40 | t.lexer.skip(1) 41 | 42 | # Build the lexer 43 | lex.lex() 44 | lex.runmain(data="3Habc 10Habcdefghij 2Hxy") 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_ignore.py: -------------------------------------------------------------------------------- 1 | # lex_ignore.py 2 | # 3 | # Improperly specific ignore declaration 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | t_PLUS = r'\+' 17 | t_MINUS = r'-' 18 | t_NUMBER = r'\d+' 19 | 20 | def t_ignore(t): 21 | ' \t' 22 | pass 23 | 24 | def t_error(t): 25 | pass 26 | 27 | import sys 28 | 29 | lex.lex() 30 | 31 | 32 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_ignore2.py: -------------------------------------------------------------------------------- 1 | # lex_ignore2.py 2 | # 3 | # ignore declaration as a raw string 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | t_PLUS = r'\+' 17 | t_MINUS = r'-' 18 | t_NUMBER = r'\d+' 19 | 20 | t_ignore = r' \t' 21 | 22 | def t_error(t): 23 | pass 24 | 25 | 26 | 27 | lex.lex() 28 | 29 | 30 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_literal1.py: -------------------------------------------------------------------------------- 1 | # lex_literal1.py 2 | # 3 | # Bad literal specification 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "NUMBER", 12 | ] 13 | 14 | literals = ["+","-","**"] 15 | 16 | def t_NUMBER(t): 17 | r'\d+' 18 | return t 19 | 20 | def t_error(t): 21 | pass 22 | 23 | lex.lex() 24 | 25 | 26 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_literal2.py: -------------------------------------------------------------------------------- 1 | # lex_literal2.py 2 | # 3 | # Bad literal specification 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "NUMBER", 12 | ] 13 | 14 | literals = 23 15 | 16 | def t_NUMBER(t): 17 | r'\d+' 18 | return t 19 | 20 | def t_error(t): 21 | pass 22 | 23 | lex.lex() 24 | 25 | 26 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_many_tokens.py: -------------------------------------------------------------------------------- 1 | # lex_many_tokens.py 2 | # 3 | # Test lex's ability to handle a large number of tokens (beyond the 4 | # 100-group limit of the re module) 5 | 6 | import sys 7 | if ".." not in sys.path: sys.path.insert(0,"..") 8 | 9 | import ply.lex as lex 10 | 11 | tokens = ["TOK%d" % i for i in range(1000)] 12 | 13 | for tok in tokens: 14 | if sys.version_info[0] < 3: 15 | exec("t_%s = '%s:'" % (tok,tok)) 16 | else: 17 | exec("t_%s = '%s:'" % (tok,tok), globals()) 18 | 19 | t_ignore = " \t" 20 | 21 | def t_error(t): 22 | pass 23 | 24 | lex.lex(optimize=1,lextab="manytab") 25 | lex.runmain(data="TOK34: TOK143: TOK269: TOK372: TOK452: TOK561: TOK999:") 26 | 27 | 28 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_module.py: -------------------------------------------------------------------------------- 1 | # lex_module.py 2 | # 3 | 4 | import sys 5 | if ".." not in sys.path: sys.path.insert(0,"..") 6 | 7 | import ply.lex as lex 8 | import lex_module_import 9 | lex.lex(module=lex_module_import) 10 | lex.runmain(data="3+4") 11 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_module_import.py: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------------------------------- 2 | # lex_module_import.py 3 | # 4 | # A lexer defined in a module, but built in lex_module.py 5 | # ----------------------------------------------------------------------------- 6 | 7 | tokens = ( 8 | 'NAME','NUMBER', 9 | 'PLUS','MINUS','TIMES','DIVIDE','EQUALS', 10 | 'LPAREN','RPAREN', 11 | ) 12 | 13 | # Tokens 14 | 15 | t_PLUS = r'\+' 16 | t_MINUS = r'-' 17 | t_TIMES = r'\*' 18 | t_DIVIDE = r'/' 19 | t_EQUALS = r'=' 20 | t_LPAREN = r'\(' 21 | t_RPAREN = r'\)' 22 | t_NAME = r'[a-zA-Z_][a-zA-Z0-9_]*' 23 | 24 | def t_NUMBER(t): 25 | r'\d+' 26 | try: 27 | t.value = int(t.value) 28 | except ValueError: 29 | print("Integer value too large %s" % t.value) 30 | t.value = 0 31 | return t 32 | 33 | t_ignore = " \t" 34 | 35 | def t_newline(t): 36 | r'\n+' 37 | t.lineno += t.value.count("\n") 38 | 39 | def t_error(t): 40 | print("Illegal character '%s'" % t.value[0]) 41 | t.lexer.skip(1) 42 | 43 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_object.py: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------------------------------- 2 | # lex_object.py 3 | # ----------------------------------------------------------------------------- 4 | import sys 5 | 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | import ply.lex as lex 8 | 9 | class CalcLexer: 10 | tokens = ( 11 | 'NAME','NUMBER', 12 | 'PLUS','MINUS','TIMES','DIVIDE','EQUALS', 13 | 'LPAREN','RPAREN', 14 | ) 15 | 16 | # Tokens 17 | 18 | t_PLUS = r'\+' 19 | t_MINUS = r'-' 20 | t_TIMES = r'\*' 21 | t_DIVIDE = r'/' 22 | t_EQUALS = r'=' 23 | t_LPAREN = r'\(' 24 | t_RPAREN = r'\)' 25 | t_NAME = r'[a-zA-Z_][a-zA-Z0-9_]*' 26 | 27 | def t_NUMBER(self,t): 28 | r'\d+' 29 | try: 30 | t.value = int(t.value) 31 | except ValueError: 32 | print("Integer value too large %s" % t.value) 33 | t.value = 0 34 | return t 35 | 36 | t_ignore = " \t" 37 | 38 | def t_newline(self,t): 39 | r'\n+' 40 | t.lineno += t.value.count("\n") 41 | 42 | def t_error(self,t): 43 | print("Illegal character '%s'" % t.value[0]) 44 | t.lexer.skip(1) 45 | 46 | 47 | calc = CalcLexer() 48 | 49 | # Build the lexer 50 | lex.lex(object=calc) 51 | lex.runmain(data="3+4") 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_opt_alias.py: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------------------------------- 2 | # lex_opt_alias.py 3 | # 4 | # Tests ability to match up functions with states, aliases, and 5 | # lexing tables. 6 | # ----------------------------------------------------------------------------- 7 | 8 | import sys 9 | if ".." not in sys.path: sys.path.insert(0,"..") 10 | 11 | tokens = ( 12 | 'NAME','NUMBER', 13 | ) 14 | 15 | states = (('instdef','inclusive'),('spam','exclusive')) 16 | 17 | literals = ['=','+','-','*','/', '(',')'] 18 | 19 | # Tokens 20 | 21 | def t_instdef_spam_BITS(t): 22 | r'[01-]+' 23 | return t 24 | 25 | t_NAME = r'[a-zA-Z_][a-zA-Z0-9_]*' 26 | 27 | def NUMBER(t): 28 | r'\d+' 29 | try: 30 | t.value = int(t.value) 31 | except ValueError: 32 | print("Integer value too large %s" % t.value) 33 | t.value = 0 34 | return t 35 | 36 | t_ANY_NUMBER = NUMBER 37 | 38 | t_ignore = " \t" 39 | t_spam_ignore = t_ignore 40 | 41 | def t_newline(t): 42 | r'\n+' 43 | t.lexer.lineno += t.value.count("\n") 44 | 45 | def t_error(t): 46 | print("Illegal character '%s'" % t.value[0]) 47 | t.lexer.skip(1) 48 | 49 | t_spam_error = t_error 50 | 51 | # Build the lexer 52 | import ply.lex as lex 53 | lex.lex(optimize=1,lextab="aliastab") 54 | lex.runmain(data="3+4") 55 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_optimize.py: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------------------------------- 2 | # lex_optimize.py 3 | # ----------------------------------------------------------------------------- 4 | import sys 5 | 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | import ply.lex as lex 8 | 9 | tokens = ( 10 | 'NAME','NUMBER', 11 | 'PLUS','MINUS','TIMES','DIVIDE','EQUALS', 12 | 'LPAREN','RPAREN', 13 | ) 14 | 15 | # Tokens 16 | 17 | t_PLUS = r'\+' 18 | t_MINUS = r'-' 19 | t_TIMES = r'\*' 20 | t_DIVIDE = r'/' 21 | t_EQUALS = r'=' 22 | t_LPAREN = r'\(' 23 | t_RPAREN = r'\)' 24 | t_NAME = r'[a-zA-Z_][a-zA-Z0-9_]*' 25 | 26 | def t_NUMBER(t): 27 | r'\d+' 28 | try: 29 | t.value = int(t.value) 30 | except ValueError: 31 | print("Integer value too large %s" % t.value) 32 | t.value = 0 33 | return t 34 | 35 | t_ignore = " \t" 36 | 37 | def t_newline(t): 38 | r'\n+' 39 | t.lineno += t.value.count("\n") 40 | 41 | def t_error(t): 42 | print("Illegal character '%s'" % t.value[0]) 43 | t.lexer.skip(1) 44 | 45 | # Build the lexer 46 | lex.lex(optimize=1) 47 | lex.runmain(data="3+4") 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_optimize2.py: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------------------------------- 2 | # lex_optimize2.py 3 | # ----------------------------------------------------------------------------- 4 | import sys 5 | 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | import ply.lex as lex 8 | 9 | tokens = ( 10 | 'NAME','NUMBER', 11 | 'PLUS','MINUS','TIMES','DIVIDE','EQUALS', 12 | 'LPAREN','RPAREN', 13 | ) 14 | 15 | # Tokens 16 | 17 | t_PLUS = r'\+' 18 | t_MINUS = r'-' 19 | t_TIMES = r'\*' 20 | t_DIVIDE = r'/' 21 | t_EQUALS = r'=' 22 | t_LPAREN = r'\(' 23 | t_RPAREN = r'\)' 24 | t_NAME = r'[a-zA-Z_][a-zA-Z0-9_]*' 25 | 26 | def t_NUMBER(t): 27 | r'\d+' 28 | try: 29 | t.value = int(t.value) 30 | except ValueError: 31 | print("Integer value too large %s" % t.value) 32 | t.value = 0 33 | return t 34 | 35 | t_ignore = " \t" 36 | 37 | def t_newline(t): 38 | r'\n+' 39 | t.lineno += t.value.count("\n") 40 | 41 | def t_error(t): 42 | print("Illegal character '%s'" % t.value[0]) 43 | t.lexer.skip(1) 44 | 45 | # Build the lexer 46 | lex.lex(optimize=1,lextab="opt2tab") 47 | lex.runmain(data="3+4") 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_optimize3.py: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------------------------------- 2 | # lex_optimize3.py 3 | # 4 | # Writes table in a subdirectory structure. 5 | # ----------------------------------------------------------------------------- 6 | import sys 7 | 8 | if ".." not in sys.path: sys.path.insert(0,"..") 9 | import ply.lex as lex 10 | 11 | tokens = ( 12 | 'NAME','NUMBER', 13 | 'PLUS','MINUS','TIMES','DIVIDE','EQUALS', 14 | 'LPAREN','RPAREN', 15 | ) 16 | 17 | # Tokens 18 | 19 | t_PLUS = r'\+' 20 | t_MINUS = r'-' 21 | t_TIMES = r'\*' 22 | t_DIVIDE = r'/' 23 | t_EQUALS = r'=' 24 | t_LPAREN = r'\(' 25 | t_RPAREN = r'\)' 26 | t_NAME = r'[a-zA-Z_][a-zA-Z0-9_]*' 27 | 28 | def t_NUMBER(t): 29 | r'\d+' 30 | try: 31 | t.value = int(t.value) 32 | except ValueError: 33 | print("Integer value too large %s" % t.value) 34 | t.value = 0 35 | return t 36 | 37 | t_ignore = " \t" 38 | 39 | def t_newline(t): 40 | r'\n+' 41 | t.lineno += t.value.count("\n") 42 | 43 | def t_error(t): 44 | print("Illegal character '%s'" % t.value[0]) 45 | t.lexer.skip(1) 46 | 47 | # Build the lexer 48 | lex.lex(optimize=1,lextab="lexdir.sub.calctab",outputdir="lexdir/sub") 49 | lex.runmain(data="3+4") 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_re1.py: -------------------------------------------------------------------------------- 1 | # lex_re1.py 2 | # 3 | # Bad regular expression in a string 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | t_PLUS = r'\+' 17 | t_MINUS = r'-' 18 | t_NUMBER = r'(\d+' 19 | 20 | def t_error(t): 21 | pass 22 | 23 | 24 | 25 | lex.lex() 26 | 27 | 28 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_re2.py: -------------------------------------------------------------------------------- 1 | # lex_re2.py 2 | # 3 | # Regular expression rule matches empty string 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | t_PLUS = r'\+?' 17 | t_MINUS = r'-' 18 | t_NUMBER = r'(\d+)' 19 | 20 | def t_error(t): 21 | pass 22 | 23 | 24 | 25 | lex.lex() 26 | 27 | 28 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_re3.py: -------------------------------------------------------------------------------- 1 | # lex_re3.py 2 | # 3 | # Regular expression rule matches empty string 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | "POUND", 15 | ] 16 | 17 | t_PLUS = r'\+' 18 | t_MINUS = r'-' 19 | t_NUMBER = r'(\d+)' 20 | t_POUND = r'#' 21 | 22 | def t_error(t): 23 | pass 24 | 25 | 26 | 27 | lex.lex() 28 | 29 | 30 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_rule1.py: -------------------------------------------------------------------------------- 1 | # lex_rule1.py 2 | # 3 | # Rule function with incorrect number of arguments 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | t_PLUS = r'\+' 17 | t_MINUS = r'-' 18 | t_NUMBER = 1 19 | 20 | def t_error(t): 21 | pass 22 | 23 | 24 | 25 | lex.lex() 26 | 27 | 28 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_rule2.py: -------------------------------------------------------------------------------- 1 | # lex_rule2.py 2 | # 3 | # Rule function with incorrect number of arguments 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | t_PLUS = r'\+' 17 | t_MINUS = r'-' 18 | def t_NUMBER(): 19 | r'\d+' 20 | return t 21 | 22 | def t_error(t): 23 | pass 24 | 25 | 26 | 27 | lex.lex() 28 | 29 | 30 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_rule3.py: -------------------------------------------------------------------------------- 1 | # lex_rule3.py 2 | # 3 | # Rule function with incorrect number of arguments 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | t_PLUS = r'\+' 17 | t_MINUS = r'-' 18 | def t_NUMBER(t,s): 19 | r'\d+' 20 | return t 21 | 22 | def t_error(t): 23 | pass 24 | 25 | lex.lex() 26 | 27 | 28 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_state1.py: -------------------------------------------------------------------------------- 1 | # lex_state1.py 2 | # 3 | # Bad state declaration 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | states = 'comment' 17 | 18 | t_PLUS = r'\+' 19 | t_MINUS = r'-' 20 | t_NUMBER = r'\d+' 21 | 22 | # Comments 23 | def t_comment(t): 24 | r'/\*' 25 | t.lexer.begin('comment') 26 | print("Entering comment state") 27 | 28 | def t_comment_body_part(t): 29 | r'(.|\n)*\*/' 30 | print("comment body %s" % t) 31 | t.lexer.begin('INITIAL') 32 | 33 | def t_error(t): 34 | pass 35 | 36 | 37 | 38 | lex.lex() 39 | 40 | 41 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_state2.py: -------------------------------------------------------------------------------- 1 | # lex_state2.py 2 | # 3 | # Bad state declaration 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | states = ('comment','example') 17 | 18 | t_PLUS = r'\+' 19 | t_MINUS = r'-' 20 | t_NUMBER = r'\d+' 21 | 22 | # Comments 23 | def t_comment(t): 24 | r'/\*' 25 | t.lexer.begin('comment') 26 | print("Entering comment state") 27 | 28 | def t_comment_body_part(t): 29 | r'(.|\n)*\*/' 30 | print("comment body %s" % t) 31 | t.lexer.begin('INITIAL') 32 | 33 | def t_error(t): 34 | pass 35 | 36 | 37 | 38 | lex.lex() 39 | 40 | 41 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_state3.py: -------------------------------------------------------------------------------- 1 | # lex_state3.py 2 | # 3 | # Bad state declaration 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | comment = 1 17 | states = ((comment, 'inclusive'), 18 | ('example', 'exclusive')) 19 | 20 | t_PLUS = r'\+' 21 | t_MINUS = r'-' 22 | t_NUMBER = r'\d+' 23 | 24 | # Comments 25 | def t_comment(t): 26 | r'/\*' 27 | t.lexer.begin('comment') 28 | print("Entering comment state") 29 | 30 | def t_comment_body_part(t): 31 | r'(.|\n)*\*/' 32 | print("comment body %s" % t) 33 | t.lexer.begin('INITIAL') 34 | 35 | def t_error(t): 36 | pass 37 | 38 | 39 | 40 | lex.lex() 41 | 42 | 43 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_state4.py: -------------------------------------------------------------------------------- 1 | # lex_state4.py 2 | # 3 | # Bad state declaration 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | 17 | states = (('comment', 'exclsive'),) 18 | 19 | t_PLUS = r'\+' 20 | t_MINUS = r'-' 21 | t_NUMBER = r'\d+' 22 | 23 | # Comments 24 | def t_comment(t): 25 | r'/\*' 26 | t.lexer.begin('comment') 27 | print("Entering comment state") 28 | 29 | def t_comment_body_part(t): 30 | r'(.|\n)*\*/' 31 | print("comment body %s" % t) 32 | t.lexer.begin('INITIAL') 33 | 34 | def t_error(t): 35 | pass 36 | 37 | 38 | 39 | lex.lex() 40 | 41 | 42 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_state5.py: -------------------------------------------------------------------------------- 1 | # lex_state5.py 2 | # 3 | # Bad state declaration 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | states = (('comment', 'exclusive'), 17 | ('comment', 'exclusive')) 18 | 19 | t_PLUS = r'\+' 20 | t_MINUS = r'-' 21 | t_NUMBER = r'\d+' 22 | 23 | # Comments 24 | def t_comment(t): 25 | r'/\*' 26 | t.lexer.begin('comment') 27 | print("Entering comment state") 28 | 29 | def t_comment_body_part(t): 30 | r'(.|\n)*\*/' 31 | print("comment body %s" % t) 32 | t.lexer.begin('INITIAL') 33 | 34 | def t_error(t): 35 | pass 36 | 37 | 38 | lex.lex() 39 | 40 | 41 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_state_noerror.py: -------------------------------------------------------------------------------- 1 | # lex_state_noerror.py 2 | # 3 | # Declaration of a state for which no rules are defined 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | states = (('comment', 'exclusive'),) 17 | 18 | t_PLUS = r'\+' 19 | t_MINUS = r'-' 20 | t_NUMBER = r'\d+' 21 | 22 | # Comments 23 | def t_comment(t): 24 | r'/\*' 25 | t.lexer.begin('comment') 26 | print("Entering comment state") 27 | 28 | def t_comment_body_part(t): 29 | r'(.|\n)*\*/' 30 | print("comment body %s" % t) 31 | t.lexer.begin('INITIAL') 32 | 33 | def t_error(t): 34 | pass 35 | 36 | 37 | lex.lex() 38 | 39 | 40 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_state_norule.py: -------------------------------------------------------------------------------- 1 | # lex_state_norule.py 2 | # 3 | # Declaration of a state for which no rules are defined 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | states = (('comment', 'exclusive'), 17 | ('example', 'exclusive')) 18 | 19 | t_PLUS = r'\+' 20 | t_MINUS = r'-' 21 | t_NUMBER = r'\d+' 22 | 23 | # Comments 24 | def t_comment(t): 25 | r'/\*' 26 | t.lexer.begin('comment') 27 | print("Entering comment state") 28 | 29 | def t_comment_body_part(t): 30 | r'(.|\n)*\*/' 31 | print("comment body %s" % t) 32 | t.lexer.begin('INITIAL') 33 | 34 | def t_error(t): 35 | pass 36 | 37 | 38 | lex.lex() 39 | 40 | 41 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_state_try.py: -------------------------------------------------------------------------------- 1 | # lex_state_try.py 2 | # 3 | # Declaration of a state for which no rules are defined 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | states = (('comment', 'exclusive'),) 17 | 18 | t_PLUS = r'\+' 19 | t_MINUS = r'-' 20 | t_NUMBER = r'\d+' 21 | 22 | t_ignore = " \t" 23 | 24 | # Comments 25 | def t_comment(t): 26 | r'/\*' 27 | t.lexer.begin('comment') 28 | print("Entering comment state") 29 | 30 | def t_comment_body_part(t): 31 | r'(.|\n)*\*/' 32 | print("comment body %s" % t) 33 | t.lexer.begin('INITIAL') 34 | 35 | def t_error(t): 36 | pass 37 | 38 | t_comment_error = t_error 39 | t_comment_ignore = t_ignore 40 | 41 | lex.lex() 42 | 43 | data = "3 + 4 /* This is a comment */ + 10" 44 | 45 | lex.runmain(data=data) 46 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_token1.py: -------------------------------------------------------------------------------- 1 | # lex_token1.py 2 | # 3 | # Tests for absence of tokens variable 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | t_PLUS = r'\+' 11 | t_MINUS = r'-' 12 | t_NUMBER = r'\d+' 13 | 14 | def t_error(t): 15 | pass 16 | 17 | lex.lex() 18 | 19 | 20 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_token2.py: -------------------------------------------------------------------------------- 1 | # lex_token2.py 2 | # 3 | # Tests for tokens of wrong type 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = "PLUS MINUS NUMBER" 11 | 12 | t_PLUS = r'\+' 13 | t_MINUS = r'-' 14 | t_NUMBER = r'\d+' 15 | 16 | def t_error(t): 17 | pass 18 | 19 | 20 | lex.lex() 21 | 22 | 23 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_token3.py: -------------------------------------------------------------------------------- 1 | # lex_token3.py 2 | # 3 | # tokens is right type, but is missing a token for one rule 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "NUMBER", 13 | ] 14 | 15 | t_PLUS = r'\+' 16 | t_MINUS = r'-' 17 | t_NUMBER = r'\d+' 18 | 19 | def t_error(t): 20 | pass 21 | 22 | lex.lex() 23 | 24 | 25 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_token4.py: -------------------------------------------------------------------------------- 1 | # lex_token4.py 2 | # 3 | # Bad token name 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "-", 14 | "NUMBER", 15 | ] 16 | 17 | t_PLUS = r'\+' 18 | t_MINUS = r'-' 19 | t_NUMBER = r'\d+' 20 | 21 | def t_error(t): 22 | pass 23 | 24 | lex.lex() 25 | 26 | 27 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_token5.py: -------------------------------------------------------------------------------- 1 | # lex_token5.py 2 | # 3 | # Return a bad token name 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | ] 15 | 16 | t_PLUS = r'\+' 17 | t_MINUS = r'-' 18 | 19 | def t_NUMBER(t): 20 | r'\d+' 21 | t.type = "NUM" 22 | return t 23 | 24 | def t_error(t): 25 | pass 26 | 27 | lex.lex() 28 | lex.input("1234") 29 | t = lex.token() 30 | 31 | 32 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/lex_token_dup.py: -------------------------------------------------------------------------------- 1 | # lex_token_dup.py 2 | # 3 | # Duplicate token name in tokens 4 | 5 | import sys 6 | if ".." not in sys.path: sys.path.insert(0,"..") 7 | 8 | import ply.lex as lex 9 | 10 | tokens = [ 11 | "PLUS", 12 | "MINUS", 13 | "NUMBER", 14 | "MINUS" 15 | ] 16 | 17 | t_PLUS = r'\+' 18 | t_MINUS = r'-' 19 | 20 | def t_NUMBER(t): 21 | r'\d+' 22 | return t 23 | 24 | def t_error(t): 25 | pass 26 | 27 | lex.lex() 28 | 29 | 30 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/yacc_nested.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | if ".." not in sys.path: sys.path.insert(0,"..") 4 | 5 | from ply import lex, yacc 6 | 7 | t_A = 'A' 8 | t_B = 'B' 9 | t_C = 'C' 10 | 11 | tokens = ('A', 'B', 'C') 12 | 13 | the_lexer = lex.lex() 14 | 15 | def t_error(t): 16 | pass 17 | 18 | def p_error(p): 19 | pass 20 | 21 | def p_start(t): 22 | '''start : A nest C''' 23 | pass 24 | 25 | def p_nest(t): 26 | '''nest : B''' 27 | print(t[-1]) 28 | 29 | the_parser = yacc.yacc(debug = False, write_tables = False) 30 | 31 | the_parser.parse('ABC', the_lexer) 32 | the_parser.parse('ABC', the_lexer, tracking=True) 33 | the_parser.parse('ABC', the_lexer, tracking=True, debug=1) 34 | -------------------------------------------------------------------------------- /ply/ply-3.4/test/yacc_rr_unused.py: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------------------------------- 2 | # yacc_rr_unused.py 3 | # 4 | # A grammar with reduce/reduce conflicts and a rule that never 5 | # gets reduced. 6 | # ----------------------------------------------------------------------------- 7 | import sys 8 | 9 | if ".." not in sys.path: sys.path.insert(0,"..") 10 | import ply.yacc as yacc 11 | 12 | tokens = ('A', 'B', 'C') 13 | 14 | def p_grammar(p): 15 | ''' 16 | rule1 : rule2 B 17 | | rule2 C 18 | 19 | rule2 : rule3 B 20 | | rule4 21 | | rule5 22 | 23 | rule3 : A 24 | 25 | rule4 : A 26 | 27 | rule5 : A 28 | ''' 29 | 30 | yacc.yacc() 31 | -------------------------------------------------------------------------------- /pull.sh: -------------------------------------------------------------------------------- 1 | git pull ssh://gnachman@themcnachmans.com/~/iterm2.git newprefs 2 | -------------------------------------------------------------------------------- /release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Run this before uploading. 3 | COMPACTDATE=$(date +"%Y%m%d") 4 | VERSION=$(cat version.txt | sed -e "s/%(extra)s/$COMPACTDATE/") 5 | NAME=$(echo $VERSION | sed -e "s/\\./_/g") 6 | cd build/Deployment 7 | zip -r iTerm2-${NAME}.zip iTerm.app 8 | vi ../../appcasts/testing_changes.html 9 | LENGTH=$(ls -l iTerm2-${NAME}.zip | awk '{print $5}') 10 | ruby "/Users/georgen/Downloads/Sparkle 1.5b6/Extras/Signing Tools/sign_update.rb" iTerm2-${NAME}.zip $PRIVKEY > /tmp/sig.txt 11 | SIG=$(cat /tmp/sig.txt) 12 | DATE=$(date +"%a, %d %b %Y %H:%M:%S %z") 13 | cp ../../appcasts/template.xml /tmp 14 | cat /tmp/template.xml | \ 15 | sed -e "s/%VER%/${VERSION}/" | \ 16 | sed -e "s/%DATE%/${DATE}/" | \ 17 | sed -e "s/%NAME%/${NAME}/" | \ 18 | sed -e "s/%LENGTH%/$LENGTH/" | 19 | sed -e "s,%SIG%,${SIG}," > ../../appcasts/testing.xml 20 | cp ../../appcasts/testing.xml ../../appcasts/canary.xml 21 | echo "Go upload the iTerm2-${NAME}.zip, then run:" 22 | echo "git tag v${VERSION}" 23 | echo "git push --tags" 24 | echo "svn commit -m ${VERSION} appcasts/testing.xml appcasts/canary.xml appcasts/testing_changes.html" 25 | echo "git commit -am ${VERSION}" 26 | echo "git push origin master" 27 | -------------------------------------------------------------------------------- /release2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | NAME=$1 3 | export EDITOR=vi 4 | svn copy -m $NAME trunk https://iterm2.googlecode.com/svn/tags/$NAME 5 | cp trunk/appcasts/* fork/appcasts/ 6 | echo Run this: 7 | echo cd trunk 8 | echo svn commit -m \"$NAME trunk\" 9 | echo cd ../fork 10 | echo svn commit -m \"$NAME fork\" 11 | -------------------------------------------------------------------------------- /tests/a-harpoon.txt: -------------------------------------------------------------------------------- 1 | a⃑ 2 | -------------------------------------------------------------------------------- /tests/acid.txt: -------------------------------------------------------------------------------- 1 | ̶̨̻̰̗͓͖̞͂̀ͣ͋ͨ̀̍ͯ͛͌͐̚͡͡ͅT̴̡̨̩̮͇̺̦̠̥̹̬̩̘͙̮̖̲̬̼̎ͤͫ̚͘͞h̷̒̓̉͌̎͒ͬ̈́ͦ̋̐͠҉͚̫̺͕̙͇̲̯̟̺̥̗̯͕̝͞e̸̢͔̭̜̦̦͕͇̘͚̟̥̮̯͉̝ͮͮ̾̃͐̚̚͘̕͜ ̵̓̾̈́̃̀̅̌̍҉҉̣͓̠͈N̄͗ͮ̄ͤ̀ͪ͐̇ͭ̃ͮ͂̀͜͡͏͔̲͙͙̬̙͙͓͇̯̰̭͝ȇ̡̢̱̱͎͈̹̳̩̫̲̳͕ͭ̇̈̋̓ͥ͌z̸̧͆̑̈́̒̐̀ͬͭ̍͛͌̈́ͫ̆͋͊͘͟͏̯̲̙͉͉p̮̤̫̰͎͈͈̻̯͛̏̃̊̈́ͮ̿̐̀͞e̵̯͖̤̙̻̱͚̹̳͉̫̟̳͈̞ͭ̊͐͑͐͛̉͠ṛ̡̗̥̙͔̠̦̽ͨ̈́̋͆̀̑ͨ͊̚͘͜d̶̡͚͖̼̞̺̗̹͔̤̪̭͉̳̫̪͎̘̳̻͊̎ͤ̆ͮ́̾͐̾̉̒͒ͪ̓́į͊̎̋̿̐̌ͧ͐ͦ́ͤ̔̉̈̚͜͏̛͓̘̳̣̠̰͖͙̞͚̣͎̬̭͇͇̬̀ͅą̸̵̤͚̹̠̫͖̥̰̟͍͉̥̻͍̜̯͉̼́̀̓̾̾̾̉ͣ̂̃̔̒̐̌̓͂͊̀͢ņ̵̗̟̬̭̤̭̲̜̯̐̈́̀ͩͣͅ ̸͍͚̲̜̹͕̤̳̭̯̖̬͉̻ͣ̓ͯ̓̃h̷̶̶̉̇̓ͭ̐ͬ͐̈͐ͬ̓̀͏̟͉̤̥̰̭̣͇̮i̧̧̛̻̘̯͕͖͙͙̱͌̏̈́̊̍̇̈ͥ̈̉̓̓͘͟v̷̴̨͎͎̙͕̥̩̝̪̝̝̲̪̥̯͇̼̬́ͬ̈́ͮ̀̎́̚ȩ̧͓̳͕̲̭̖͙̹̲̳̤͉͙̣͔͙͌̌ͭ̆͐ͩ͑͡ͅ-̛̭̼͉̹͛͐̊̐ͨ́͢m̶̛̛͚̱̦̝̳̩̟̓́̽́̒̂̿ͭ̆ͫ͂͝ī̧̢̧̥̫̻̰ͥ͌̉̅ͧ̈́͂̾ͧ̅͒͢n̶̨͇͓͉̹͇̳̯͇̮̹͓̟͔̈́̓̎ͨ͊̍ͥ͊͌͑̓͑ͪ́̀͠d̡̪̬̭͕̘̭̻̣̃̓̌ͦ̓͊̍̊̀ ̴̡̬̪̯̠͉͖͎̜̝̫̬͍̩̙̳͕̪̠̟̈́̓ͬͤ͐͌̓ͣͧ̚͡o̵͛̽̃̃̊̋͋̌̓ͪ҉͉͓͙̜͉̭̲̬̣̣f̅̽̐̽̒̀ͪ̌̑ͯͩ̓̎ͤ̐̓̋̀҉̴̗̘͔̩̹̠̹̯̹̟̺̜̻̗͔̻ ̶̛̗̥̠͓̠̼̩̯͎͇̱̘̰̙ͧͮ̔͐̾͘͞c̡͕̭̲̞̔͂̎͋̿ͭ̒̇̈́͂̔ͪ̇̔͌̈̎̀̕͝h͊ͣͣ͌̄̊ͪ̑̈́ͭ̀̿ͯ̏͆ͮ̾̃͏̨͔͕̟̬̺a̛̾̅͐͌͒̏͑ͨ̓ͪ̃͛͂͜͏̫̳̭͍͚̳̩͘ò̶̡͎̖̣͎̪͖̲̠̳̥̘̻͚͕̦̯̱ͫ͂̿͌ͣ̕ͅs̆̒͌ͧ͐͒̀ͩͥ͆̍ͣ̚҉̳̲̣̳͖̟͓̫̥͔͡.̸̢͛̏̿̎̓̏͛ͧ̆̽ͣͨ̂ͫ̐̚͟҉̷̦̞̙͈͉̩̭̮͙̯͚̯̼ͅ ͗̄̌̿ͦ͂ͨ̓͢͡҉̶̨̹̩͈̮̮̱Zͯͮ̌̏̎ͨ҉͇͚̖̩͔͉̖̠̕͝a̴̼̭̮̪̹̼̯͈̳̳̬͓̦͖͗͛͌̈ͣ̇̔̾̿̂͗̑̍͌͂̓̀͝ͅļ̴̨͖͚̥̞̮̩̩͍̲͕̳͚̦̆̽̐ͩ͆̅̍ͦ̊͛ͥ̃̏͐͋̎̃̕͜ġ̡̛̱͉͕̩͎̮͈̤͍̋͋͑̍ͪ͗ͨ̾ͤ̇ͪͣ̓̐ͨͅo̠̭͔̣̲̲̰̻̦͈̼̠͉̗̰ͮ͐͌͂ͤ̀̉́ͭ̅͐ͬ̒͊̚͢͡͡ͅ.̛̙̜̗͔̳͎̰̯̥̟̞̘͔̘̤̻̾ͨ̆̓͋̌̚͟ ̩̥͉̩̹͍̥̅ͮ̏̐ͭ̒͢ 2 | 3 | -------------------------------------------------------------------------------- /tests/apple.txt: -------------------------------------------------------------------------------- 1 |  2 | -------------------------------------------------------------------------------- /tests/bogusutf8.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/tests/bogusutf8.txt -------------------------------------------------------------------------------- /tests/bold-complex.txt: -------------------------------------------------------------------------------- 1 | q́rst 2 | -------------------------------------------------------------------------------- /tests/bug439.applescript: -------------------------------------------------------------------------------- 1 | tell application "iTerm" 2 | activate 3 | tell the first terminal 4 | launch session "Default Session" 5 | tell the last session 6 | write text "top" 7 | end tell 8 | end tell 9 | end tell 10 | -------------------------------------------------------------------------------- /tests/chinese.txt: -------------------------------------------------------------------------------- 1 | 正體字 2 | -------------------------------------------------------------------------------- /tests/cjk_insertmode.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx01234567890xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx9* 4 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx01234567890xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx99 5 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx01234567890xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx9 6 | -------------------------------------------------------------------------------- /tests/cjk_move_cursor.txt: -------------------------------------------------------------------------------- 1 | 0123456789 2 | 0123456789 3 | *! 4 | 5 | -------------------------------------------------------------------------------- /tests/cjk_nowrap.txt: -------------------------------------------------------------------------------- 1 | [?7l0123456789 The quick brown fox jumps over the lazy dog. 2 | [?7h 3 | [?7lxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxabcdefqhixxxxxxxxxxxxxxxyyyyyyyyyyyy4 4 | [?7h 5 | -------------------------------------------------------------------------------- /tests/cjk_quick_brown.txt: -------------------------------------------------------------------------------- 1 | 00112233445566778899 TThhee qquuiicckk bbrroowwnn ffooxx jjuummppss oovveerr tthhee llaazzyy ddoogg. 2 | 0123456789 The quick brown fox jumps over the lazy dog. 3 | 4 | LLoorreemm iippssuumm ddoolloorr ssiitt aammeett, ccoonnsseecctteettuurr aaddiippiissiicciinngg eelliitt, sseedd ddoo eeiiuussmmoodd tteemmppoorr iinncciiddiidduunntt uutt llaabboorree eett ddoolloorree mmaaggnnaa aalliiqquuaa. UUtt eenniimm aadd mmiinniimm vveenniiaamm, qquuiiss nnoossttrruudd eexxeerrcciittaattiioonn uullllaammccoo llaabboorriiss nniissii uutt aalliiqquuiipp eexx eeaa ccoommmmooddoo ccoonnsseeqquuaatt. 5 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. 6 | -------------------------------------------------------------------------------- /tests/colors.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # This file echoes a bunch of color codes to the 4 | # terminal to demonstrate what's available. Each 5 | # line is the color code of one forground color, 6 | # out of 17 (default + 16 escapes), followed by a 7 | # test use of that color on all nine background 8 | # colors (default + 8 escapes). 9 | # 10 | 11 | T='gYw' # The test text 12 | 13 | echo -e "\n 40m 41m 42m 43m\ 14 | 44m 45m 46m 47m"; 15 | 16 | for FGs in ' m' ' 1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' \ 17 | '1;32m' ' 33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' \ 18 | ' 36m' '1;36m' ' 37m' '1;37m'; 19 | do FG=${FGs// /} 20 | echo -en " $FGs \033[$FG $T " 21 | for BG in 40m 41m 42m 43m 44m 45m 46m 47m; 22 | do echo -en "$EINS \033[$FG\033[$BG $T \033[0m"; 23 | done 24 | echo; 25 | done 26 | echo -------------------------------------------------------------------------------- /tests/combiningmark.txt: -------------------------------------------------------------------------------- 1 | This is a thai character with a latin acute accent: 2 | ะ́ 3 | ะ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́ 4 | Here it is in a table. The columns should line up in vi with LC_CTYPE=UTF-8 5 | Mark UTF-8 UTF-16 CODES 6 | ́ | CC 81 | 0301 | COMBINING ACCUTE ACCENT 7 | ะ | E0 B8 B0 | 0E30 | THAI CHARACTER SARA A 8 | ะ́ | E0 B8 B0 CC 81 | 0E30 0301 | THAI CHARACTER SARA A + COMBINING ACUTE ACCENT 9 | A | 41 | 0041 | LATIN CAPITAL LETTER A 10 | -------------------------------------------------------------------------------- /tests/diamond.txt: -------------------------------------------------------------------------------- 1 | ♢ 2 | -------------------------------------------------------------------------------- /tests/double_width.txt: -------------------------------------------------------------------------------- 1 | Always double width: 2 | 汉字 3 | 4 | Ambiguous width: 5 | αα 6 | -------------------------------------------------------------------------------- /tests/dw_sip.txt: -------------------------------------------------------------------------------- 1 | 𠁟 2 | -------------------------------------------------------------------------------- /tests/enclosing-mark.txt: -------------------------------------------------------------------------------- 1 | q⃝ 2 | -------------------------------------------------------------------------------- /tests/english_and_chinese.txt: -------------------------------------------------------------------------------- 1 | m 黑體-繁 2 | -------------------------------------------------------------------------------- /tests/greek.txt: -------------------------------------------------------------------------------- 1 | ͰͱͲͳʹ͵Ͷͷͺͻͼͽ; 2 | ΄΅Ά·ΈΉΊΌΎΏ 3 | ΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟ 4 | A0ΠΡΣΤΥΦΧΨΩΪΫάέήί 5 | B0ΰαβγδεζηθικλμνξο 6 | C0πρςστυφχψωϊϋόύώϏ 7 | D0ϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟ 8 | E0Ϡϡ 9 | F0ϰϱϲϳϴϵ϶ϷϸϹϺϻϼϽϾϿ 10 | -------------------------------------------------------------------------------- /tests/harpoon.txt: -------------------------------------------------------------------------------- 1 | ⃑ -------------------------------------------------------------------------------- /tests/low-surrogate.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chendo/iTerm2/7850ab1a5753770055498fb441b4857854120fde/tests/low-surrogate.txt -------------------------------------------------------------------------------- /tests/no-scroll-spam.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | void setline(char* s, int n) { 5 | int l = random() % n; 6 | int j; 7 | for (j = 0; j < l; ++j) { 8 | s[j] = 'A' + (random() % 60); 9 | } 10 | s[j] = 0; 11 | } 12 | 13 | int main(int argc, char*argv[]) { 14 | int n; 15 | if (argc == 1) { 16 | n = 1000000; 17 | } else { 18 | n = atoi(argv[1]); 19 | } 20 | for (int i = 0; i < n; ++i) { 21 | char buffer[100]; 22 | setline(buffer, sizeof(buffer)-1); 23 | printf("%s\n", buffer); 24 | //usleep(100000); 25 | if (i % 10 == 0) { 26 | printf("%c[H", 27); 27 | } 28 | } 29 | printf("%c[2J\n", 27); 30 | return 0; 31 | } 32 | 33 | -------------------------------------------------------------------------------- /tests/radical.txt: -------------------------------------------------------------------------------- 1 | ⎷ 2 | -------------------------------------------------------------------------------- /tests/ranges.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python2.4 2 | # Converts a file containing a list of hex values into C code representing the 3 | # ranges compactly. 4 | l1 = "" 5 | l2 = "" 6 | 7 | # length of the shortest allowed range 8 | threshold=7 9 | def p(a, b): 10 | global l1 11 | global l2 12 | if abs(a-b) < threshold: 13 | l = min(a,b) 14 | for i in range(abs(a-b)+1): 15 | l1 += "%s,\n" % hex(l + i) 16 | else: 17 | # l2 += "{ %s, %s },\n" % (hex(a), hex(b)) 18 | l2 += "(unicode >= %s && unicode <= %s) ||\n" % (hex(a), hex(b)) 19 | 20 | values = [] 21 | 22 | # put your filename here: 23 | f = open("ambiguous.txt", "r") 24 | linenum=0 25 | for line in f: 26 | linenum += 1 27 | line = line.strip() 28 | parts = line.split("..") 29 | if len(parts) > 1: 30 | p1 = int(parts[0],16) 31 | p2 = int(parts[1],16) 32 | for i in range(p2-p1+1): 33 | n = p1 + i 34 | assert n >= p1 and n <= p2 35 | values.append(n) 36 | else: 37 | n = int(line, 16) 38 | values.append(n) 39 | 40 | values = list(set(values)) 41 | values.sort() 42 | 43 | prev = -1 44 | first = None 45 | for i in values: 46 | if first is None: 47 | first = i 48 | prev = i 49 | continue 50 | 51 | if i != prev + 1: 52 | p(first, prev) 53 | first = i 54 | prev = i 55 | 56 | p(first, prev) 57 | # prints single values first 58 | print l1 59 | # then prints ranges 60 | print l2 61 | -------------------------------------------------------------------------------- /tests/register_bonjour_host: -------------------------------------------------------------------------------- 1 | dns-sd -R MyTestHost _ssh._tcp . 22 2 | -------------------------------------------------------------------------------- /tests/reverse_mode.txt: -------------------------------------------------------------------------------- 1 | [?5h 2 | -------------------------------------------------------------------------------- /tests/searchtext: -------------------------------------------------------------------------------- 1 | abc456xะ́yz ́ ́ ́ะ́ะ́ะ́he quick browdef𐅐𐅐𐅐𐅐g𐅐h𐅐i𐅐jklmabc456xะ́yz ́ ́ ́ะ́ะ́ะ́he quick browdef𐅐𐅐𐅐𐅐g𐅐h𐅐i𐅐jklm 2 | -------------------------------------------------------------------------------- /tests/set_icon_title.txt: -------------------------------------------------------------------------------- 1 | ]1;icon 2 | 3 | -------------------------------------------------------------------------------- /tests/set_icon_window_title.txt: -------------------------------------------------------------------------------- 1 | ]0;icon+window 2 | 3 | -------------------------------------------------------------------------------- /tests/set_window_title.txt: -------------------------------------------------------------------------------- 1 | ]2;window 2 | 3 | -------------------------------------------------------------------------------- /tests/setbg-blue: -------------------------------------------------------------------------------- 1 | ]6;1;bg;red;brightness;128 2 | ]6;1;bg;green;brightness;128 3 | ]6;1;bg;blue;brightness;255 4 | -------------------------------------------------------------------------------- /tests/setbg-yellow: -------------------------------------------------------------------------------- 1 | ]6;1;bg;red;brightness;256 2 | ]6;1;bg;green;brightness;256 3 | ]6;1;bg;blue;brightness;128 4 | -------------------------------------------------------------------------------- /tests/setpal: -------------------------------------------------------------------------------- 1 | ]Pgff00ff\ 2 | ]Ph00ff00\ 3 | ]Piff0000\ 4 | ]Pjffff00\ 5 | ]Pk008000\ 6 | ]Pl0000ff\ 7 | ]Pm800000\ 8 | -------------------------------------------------------------------------------- /tests/sgrbug: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo 'Exhibit A: foo Expected: cyan text from 16-bit palette' 3 | echo 'Exhibit B: foo Expected: bold cyan text from 16-bit palette' 4 | echo 'Exhibit C: foo Expected: cyan text from 256-bit palette' 5 | echo 'Exhibit D: foo Expected: bold cyan text from 256-bit palette' 6 | 7 | echo 'Exhibit C: foo Expected: cyan background from 256-bit palette' 8 | echo 'Exhibit D: foo Expected: bold cyan background from 256-bit palette' 9 | 10 | -------------------------------------------------------------------------------- /tests/spaces.txt: -------------------------------------------------------------------------------- 1 | U+0020 SPACE " " 2 | U+00A0 NO-BREAK SPACE " " 3 | U+1680 OGHAM SPACE MARK " " 4 | U+180E MONGOLIAN VOWEL SEPARATOR "᠎" 5 | U+2000 EN QUAD   " " 6 | U+2001 EM QUAD   " " 7 | U+2002 EN SPACE   " " 8 | U+2003 EM SPACE   " " 9 | U+2004 THREE-PER-EM SPACE   " " 10 | U+2005 FOUR-PER-EM SPACE   " " 11 | U+2006 SIX-PER-EM SPACE   " " 12 | U+2007 FIGURE SPACE   " " 13 | U+2008 PUNCTUATION SPACE   " " 14 | U+2009 THIN SPACE   " " 15 | U+200A HAIR SPACE   " " 16 | U+202F NARROW NO-BREAK SPACE   " " 17 | U+205F MEDIUM MATHEMATICAL SPACE " " 18 | U+3000 IDEOGRAPHIC SPACE   " " 19 | All the spaces together: "   ᠎              " 20 | -------------------------------------------------------------------------------- /tests/spacing-combining-mark.txt: -------------------------------------------------------------------------------- 1 | rिq -------------------------------------------------------------------------------- /tests/spam-tabs.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | int cm; 4 | 5 | void setline(char* s, int n) { 6 | int l = random() % n; 7 | if (cm) l *= 3; 8 | int j; 9 | for (j = 0; j < l; ++j) { 10 | int r = random(); 11 | if (cm && (r % 20)==0) { 12 | r = random() % 5 + 1; 13 | for (int k = 0; k < r; k++) { 14 | s[j++] = '\t'; 15 | } 16 | } else { 17 | s[j] = 'A' + (random() % 60); 18 | } 19 | } 20 | s[j] = 0; 21 | } 22 | 23 | int main(int argc, char*argv[]) { 24 | int n; 25 | if (argc == 1) { 26 | n = 1000000; 27 | } else { 28 | n = atoi(argv[1]); 29 | } 30 | cm = argc==3; 31 | for (int i = 0; i < n; ++i) { 32 | char buffer[100]; 33 | setline(buffer, sizeof(buffer)-1); 34 | printf("%s\n", buffer); 35 | } 36 | return 0; 37 | } 38 | 39 | -------------------------------------------------------------------------------- /tests/spam.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | int cm; 4 | 5 | void setline(char* s, int n) { 6 | int l = random() % n; 7 | if (cm) l *= 3; 8 | int j; 9 | for (j = 0; j < l; ++j) { 10 | if (cm) { 11 | int r = random() %30 + 1; 12 | s[j++] = 0xe0; 13 | s[j++] = 0xb8; 14 | s[j++] = 0x80 | r; 15 | s[j++] = 0xcc; 16 | s[j] = 0x80; 17 | } else { 18 | s[j] = 'A' + (random() % 60); 19 | } 20 | } 21 | s[j] = 0; 22 | } 23 | 24 | int main(int argc, char*argv[]) { 25 | int n; 26 | if (argc == 1) { 27 | n = 1000000; 28 | } else { 29 | n = atoi(argv[1]); 30 | } 31 | cm = argc==3; 32 | for (int i = 0; n < 0 || i < n; ++i) { 33 | char buffer[100]; 34 | setline(buffer, sizeof(buffer)-1); 35 | printf("%s\n", buffer); 36 | } 37 | return 0; 38 | } 39 | 40 | -------------------------------------------------------------------------------- /tests/suits.txt: -------------------------------------------------------------------------------- 1 | Many of these characters are wider than EastAsianWidth says they ought to be: 2 | ♠♡♢♣♤♥♦♧ 3 | -------------------------------------------------------------------------------- /tests/surrogatepair.txt: -------------------------------------------------------------------------------- 1 | This is an ancient greek numeral that looks like a christmas tree: 2 | 𐅐 3 | -------------------------------------------------------------------------------- /tests/too_many_parts.txt: -------------------------------------------------------------------------------- 1 | ะ́́́́́́́́́́́́́́́́́́́́́́́́ 2 | -------------------------------------------------------------------------------- /tests/u2000b.txt: -------------------------------------------------------------------------------- 1 | Here is a Chinese character from plane 2: 2 | 𠀋 3 | -------------------------------------------------------------------------------- /tests/zeta.txt: -------------------------------------------------------------------------------- 1 | ζ 2 | -------------------------------------------------------------------------------- /updateVersion.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import commands 4 | import os 5 | import sys 6 | import time 7 | 8 | try: 9 | del os.environ["MACOSX_DEPLOYMENT_TARGET"] 10 | except KeyError: 11 | pass 12 | from Foundation import NSMutableDictionary 13 | 14 | if os.environ["CONFIGURATION"] == "Development": 15 | status, output = commands.getstatusoutput("bash -l -c 'LANGUAGE=C svn info'") 16 | if status != 0: 17 | sys.exit(status) 18 | 19 | for line in output.split("\n"): 20 | if len(line.strip()) == 0 or ":" not in line: 21 | continue 22 | key, value = [x.lower().strip() for x in line.split(":", 1)] 23 | if key == "revision": 24 | revision = "svn" + value 25 | break 26 | else: 27 | revision = time.strftime("%Y%m%d") 28 | 29 | buildDir = os.environ["BUILT_PRODUCTS_DIR"] 30 | infoFile = os.environ["INFOPLIST_PATH"] 31 | path = os.path.join(buildDir, infoFile) 32 | plist = NSMutableDictionary.dictionaryWithContentsOfFile_(path) 33 | version = open("version.txt").read().strip() % {"extra": revision} 34 | print "Updating versions:", infoFile, version 35 | plist["CFBundleShortVersionString"] = version 36 | plist["CFBundleGetInfoString"] = version 37 | plist["CFBundleVersion"] = version 38 | plist.writeToFile_atomically_(path, 1) 39 | 40 | -------------------------------------------------------------------------------- /valgrind.sh: -------------------------------------------------------------------------------- 1 | cd build/Development && ~/valgrind/bin/valgrind --suppressions=supp iTerm.app/Contents/MacOS/iTerm 2 | -------------------------------------------------------------------------------- /version.txt: -------------------------------------------------------------------------------- 1 | 1.0.0.%(extra)s 2 | --------------------------------------------------------------------------------