Skip to content

Instantly share code, notes, and snippets.

@gnachman
gnachman / gist:2560519
Created April 30, 2012 18:02
Extra debugging for iTerm2's fitWindowToTabSize
- (BOOL)fitWindowToTabSize:(NSSize)tabSize
{
PtyLog(@"fitWindowToTabSize %@", [NSValue valueWithSize:tabSize]);
if ([self anyFullScreen]) {
[self fitTabsToWindow];
return NO;
}
// Set the window size to be large enough to encompass that tab plus its decorations.
NSSize decorationSize = [self windowDecorationSize];
NSSize winSize = tabSize;
@gnachman
gnachman / swizzle-retain-release-autorelease
Created December 8, 2012 07:56
Swizzle retain/release/autorelease to debug busted reference counting
// Use with https://github.com/rentzsch/jrswizzle
// MIT license
// After your program dies because with a zombie, examine [theBigLog objectForKey:@"0x12345"], subbing the address of the thing that died. You can get stack traces referred to in the logs by looking up the "stack-12345" numbers in the same dict. To track a particular object, add [NSValue valueWithPointer:myobject] to debugList in a @synchronized block.
@interface ClassToDebug : NSColor
@end
@interface ClassToDebug (DebugRefs)
@end
@gnachman
gnachman / gist:6012401
Last active December 19, 2015 20:19
Dump of line block when cache is updated incorrectly after dropping lines
2013-07-16 13:26:48.122 iTerm[63794:303] Line block after dropping:
<0x1017e8aa0>
Already-dropped bytes: 2264
Start offset: 2264
is_partial: NO
Number of raw lines: 7
Cached lines: 119 at width 50
WRAPPED LINES:
Wrapped line 0: ff4e [DWC_RIGHT] 7a 72 20 6c ff45 [DWC_RIGHT] 20 20 6f 6c 70 ff49 [DWC_RIGHT] 72 ff45 [DWC_RIGHT] ff4e [DWC_RIGHT] 76 78 20 ff49 [DWC_RIGHT] ff47 [DWC_RIGHT] 6d 76 2c 20 61 75 67 6a 6a 62 ff45 [DWC_RIGHT] ff41 [DWC_RIGHT] ff55 [DWC_RIGHT] 20 20 72 67 70 ff4e [DWC_RIGHT] [EOL]
@gnachman
gnachman / gist:6180913
Created August 8, 2013 02:25
set rect dirty
- (void)setRectDirtyFromX:(int)fromX Y:(int)fromY toX:(int)toX Y:(int)toY
{
assert(fromX >= 0);
assert(fromX < WIDTH);
assert(toX >= 0);
assert(toX <= WIDTH); // <= because not inclusive of toX.
assert(fromY >= 0);
assert(fromY < HEIGHT);
assert(toY >= 0);
assert(toY < HEIGHT);
<key>LoadPrefsFromCustomFolder</key>
<true/>
<key>PrefsCustomFolder</key>
<string>path to folder with com.googlecode.iterm2.plist file, or URL of plist file</string>
@gnachman
gnachman / gist:4cbe6743baa7fe07536b
Last active April 16, 2022 23:42
Script to use Alfred with nightly build of iTerm2
on write_to_file(this_data, target_file, append_data)
try
set the target_file to the target_file as string
set the open_target_file to open for access file target_file with write permission
if append_data is false then set eof of the open_target_file to 0
write this_data to the open_target_file starting at eof
close access the open_target_file
return true
on error
try
@gnachman
gnachman / gist:1ec345a702be99497d51
Created April 28, 2015 17:25
Trivial google code project that does not import
{
"kind" : "projecthosting#user",
"id" : "@VRdVRFRUBRFGXgB6",
"projects" : [ {
"kind" : "projecthosting#project",
"name" : "testprojectgn",
"externalId" : "testprojectgn",
"htmlLink" : "/p/testprojectgn/",
"summary" : "teswt",
"description" : "test",
@gnachman
gnachman / gist:88360e91021283d3f7be
Last active April 14, 2016 20:59
Retain release debugging
- (id)retain {
if (_debug) {
NSLog(@"retain %@ rc->%d", self, (int)self.retainCount + 1);
NSLog(@"%@", [NSThread callStackSymbols]);
}
return [super retain];
}
- (oneway void)release {
if (_debug) {
#!/bin/bash
CD_CMD="cd "\\\"$(pwd)\\\"" && clear"
if echo "$SHELL" | grep -E "/fish$" &> /dev/null; then
CD_CMD="cd "\\\"$(pwd)\\\""; and clear"
fi
VERSION=$(sw_vers -productVersion)
OPEN_IN_TAB=0
while [ "$1" != "" ]; do