mirror of
https://github.com/ksherlock/TwoTerm.git
synced 2026-01-24 03:16:09 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
38dad13969 | ||
|
|
a6408fc242 | ||
|
|
de8810b8e2 | ||
|
|
57021b2cba |
@@ -1,7 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11762" systemVersion="16C67" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="13529" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11762"/>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="13529"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
|
||||
@@ -10,13 +11,13 @@
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<menu title="AMainMenu" systemMenu="main" id="29">
|
||||
<items>
|
||||
<menuItem title="2Term" id="56">
|
||||
<menu key="submenu" title="2Term" systemMenu="apple" id="57">
|
||||
<menuItem title="TwoTerm" id="56" userLabel="TwoTerm">
|
||||
<menu key="submenu" title="TwoTerm" systemMenu="apple" id="57">
|
||||
<items>
|
||||
<menuItem title="About 2Term" id="58">
|
||||
<menuItem title="About TwoTerm" id="58">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="orderFrontStandardAboutPanel:" target="-2" id="142"/>
|
||||
@@ -35,7 +36,7 @@
|
||||
<menuItem isSeparatorItem="YES" id="144">
|
||||
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
||||
</menuItem>
|
||||
<menuItem title="Hide 2Term" keyEquivalent="h" id="134">
|
||||
<menuItem title="Hide TwoTerm" keyEquivalent="h" id="134">
|
||||
<connections>
|
||||
<action selector="hide:" target="-1" id="367"/>
|
||||
</connections>
|
||||
@@ -54,7 +55,7 @@
|
||||
<menuItem isSeparatorItem="YES" id="149">
|
||||
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
||||
</menuItem>
|
||||
<menuItem title="Quit 2Term" keyEquivalent="q" id="136">
|
||||
<menuItem title="Quit TwoTerm" keyEquivalent="q" id="136">
|
||||
<connections>
|
||||
<action selector="terminate:" target="-3" id="449"/>
|
||||
</connections>
|
||||
@@ -648,7 +649,7 @@
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Help" systemMenu="help" id="491">
|
||||
<items>
|
||||
<menuItem title="2Term Help" keyEquivalent="?" id="492">
|
||||
<menuItem title="TwoTerm Help" keyEquivalent="?" id="492">
|
||||
<connections>
|
||||
<action selector="showHelp:" target="-1" id="493"/>
|
||||
</connections>
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
std::string s;
|
||||
|
||||
|
||||
s.append("TERM_PROGRAM=2Term");
|
||||
s.append("TERM_PROGRAM=TwoTerm");
|
||||
s.append(1, (char)0);
|
||||
|
||||
s.append("LANG=C");
|
||||
@@ -226,7 +226,33 @@
|
||||
dispatch_resume(_wait_source);
|
||||
}
|
||||
|
||||
#if 0
|
||||
dispatch_io_t io = dispatch_io_create(DISPATCH_IO_STREAM, fd, queue, ^(int error){
|
||||
close(fd);
|
||||
NSLog(@"dispatch_io_create: %d", error);
|
||||
});
|
||||
|
||||
dispatch_io_read(io, 0, SIZE_MAX, queue, ^(bool done, dispatch_data_t data, int error){
|
||||
if (error) {
|
||||
NSLog(@"dispatch_io_read: %d", error);
|
||||
dispatch_io_close(io, DISPATCH_IO_STOP);
|
||||
return;
|
||||
}
|
||||
|
||||
dispatch_data_apply(data, ^(dispatch_data_t, size_t, const void *buffer, size_t size){
|
||||
[_emulatorView processData: (uint8_t *)buffer size: size];
|
||||
return true;
|
||||
} );
|
||||
|
||||
if (done) {
|
||||
NSLog(@"closing fd");
|
||||
dispatch_io_close(io, DISPATCH_IO_STOP);
|
||||
return;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
#else
|
||||
_read_source = dispatch_source_create(DISPATCH_SOURCE_TYPE_READ,
|
||||
fd, 0, queue);
|
||||
if (_read_source)
|
||||
@@ -236,7 +262,7 @@
|
||||
|
||||
static uint8_t sbuffer[1024];
|
||||
size_t estimated = dispatch_source_get_data(_read_source);
|
||||
|
||||
estimated = std::max(estimated, sizeof(sbuffer));
|
||||
|
||||
uint8_t *buffer = estimated > sizeof(sbuffer) ? (uint8_t *)malloc(estimated) : sbuffer;
|
||||
if (buffer)
|
||||
@@ -244,7 +270,8 @@
|
||||
ssize_t actual;
|
||||
|
||||
for (;;) {
|
||||
actual = read(fd, buffer, (estimated));
|
||||
actual = read(fd, buffer, estimated);
|
||||
//fprintf(stderr, "read: %ld\n", actual);
|
||||
if (actual < 0) {
|
||||
if (errno == EINTR) continue;
|
||||
|
||||
@@ -266,7 +293,6 @@
|
||||
if (buffer != sbuffer) free(buffer);
|
||||
|
||||
if (actual == 0) {
|
||||
NSLog(@"closing fd");
|
||||
dispatch_source_cancel(_read_source);
|
||||
dispatch_release(_read_source);
|
||||
_read_source = nullptr;
|
||||
@@ -276,6 +302,7 @@
|
||||
|
||||
|
||||
dispatch_source_set_cancel_handler(_read_source, ^{
|
||||
NSLog(@"closing fd");
|
||||
_fd = -1;
|
||||
[_emulatorView setFd: -1];
|
||||
close(fd);
|
||||
@@ -283,6 +310,7 @@
|
||||
|
||||
dispatch_resume(_read_source);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
|
||||
@@ -62,6 +62,7 @@
|
||||
isEditable = 1;
|
||||
outputFiles = (
|
||||
);
|
||||
script = "";
|
||||
};
|
||||
B6C173931D32A8840024E360 /* PBXBuildRule */ = {
|
||||
isa = PBXBuildRule;
|
||||
|
||||
Reference in New Issue
Block a user