mirror of
https://github.com/ksherlock/TwoTerm.git
synced 2026-01-28 00:16:10 +00:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
43cb3c9e4f | ||
|
|
6cb2b91ac0 | ||
|
|
8a5f5a9e61 | ||
|
|
b1340d2a56 | ||
|
|
5a971ac08c | ||
|
|
254dfd548e | ||
|
|
bd6d13e51b | ||
|
|
54335e2e3b | ||
|
|
98dc438fa5 | ||
|
|
ceb1349199 | ||
|
|
22266914ed | ||
|
|
542dddd335 |
21
.github/workflows/xcodebuild.yml
vendored
Normal file
21
.github/workflows/xcodebuild.yml
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
name: xcodebuild
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: macos-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
- name: brew
|
||||||
|
run: brew install ragel
|
||||||
|
- name: xcodebuild
|
||||||
|
run: xcodebuild -target TwoTerm | xcpretty
|
||||||
33
Emulators/Apple3.h
Normal file
33
Emulators/Apple3.h
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
//
|
||||||
|
// Apple3.h
|
||||||
|
// 2Term
|
||||||
|
//
|
||||||
|
// Created by Kelvin Sherlock on 12/24/2018.
|
||||||
|
// Copyright 2018 __MyCompanyName__. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
|
#import "Emulator.h"
|
||||||
|
#include "iGeometry.h"
|
||||||
|
#include "Screen.h"
|
||||||
|
|
||||||
|
|
||||||
|
struct iii_context : public context {
|
||||||
|
unsigned cursor_control = 0b1101;
|
||||||
|
unsigned fg_color = 0;
|
||||||
|
unsigned bg_color = 0;
|
||||||
|
unsigned mode = 2;
|
||||||
|
};
|
||||||
|
|
||||||
|
@interface Apple3 : NSObject <Emulator>
|
||||||
|
{
|
||||||
|
unsigned cs;
|
||||||
|
iii_context _context;
|
||||||
|
iii_context _saved_context;
|
||||||
|
Screen::CursorType _cursorType;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@end
|
||||||
466
Emulators/Apple3.mm.ragel
Normal file
466
Emulators/Apple3.mm.ragel
Normal file
@@ -0,0 +1,466 @@
|
|||||||
|
//
|
||||||
|
// Apple3.mm
|
||||||
|
// 2Term
|
||||||
|
//
|
||||||
|
// Created by Kelvin Sherlock on 12/24/2018.
|
||||||
|
// Copyright 2010 __MyCompanyName__. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
/*
|
||||||
|
* See Apple III Standard Device Drivers Manual (ch 3, The Console Driver)
|
||||||
|
* Also implemented via AppleWorks (which started life as III EZ Pieces)
|
||||||
|
*
|
||||||
|
* Apple III console can be 24 x 40 (BW), 24 x 40 (16 color), or 24 x 80 (BW).
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#import "Apple3.h"
|
||||||
|
|
||||||
|
#include <sys/ttydefaults.h>
|
||||||
|
|
||||||
|
#include "OutputChannel.h"
|
||||||
|
#include "Screen.h"
|
||||||
|
#include "algorithm.h"
|
||||||
|
|
||||||
|
#import "CharacterGenerator.h"
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kAdvance = 1 << 0,
|
||||||
|
kLineFeed = 1 << 1,
|
||||||
|
kWrap = 1 << 2,
|
||||||
|
kScroll = 1 << 3,
|
||||||
|
};
|
||||||
|
|
||||||
|
%%{
|
||||||
|
machine console;
|
||||||
|
alphtype unsigned int;
|
||||||
|
|
||||||
|
action nop {}
|
||||||
|
|
||||||
|
action advance {
|
||||||
|
// advance cursor
|
||||||
|
if (_context.cursor_control & kAdvance) {
|
||||||
|
|
||||||
|
|
||||||
|
switch (_context.cursor_control & (kWrap | kScroll)) {
|
||||||
|
default:
|
||||||
|
if (cursor.x < window.maxX() - 1) ++cursor.x;
|
||||||
|
break;
|
||||||
|
case kWrap:
|
||||||
|
if (cursor.x < window.maxX() - 1) ++cursor.x;
|
||||||
|
else {
|
||||||
|
cursor.x = window.minX();
|
||||||
|
if (cursor.y < window.maxY() - 1) ++cursor.y;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case kWrap | kScroll:
|
||||||
|
if (cursor.x < window.maxX() - 1) ++cursor.x;
|
||||||
|
else {
|
||||||
|
cursor.x = window.minX();
|
||||||
|
if (cursor.y < window.maxY() - 1) ++cursor.y;
|
||||||
|
else screen->scrollUp(window);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
action setx {
|
||||||
|
/* horizontal position */
|
||||||
|
int x = (unsigned)fc;
|
||||||
|
x += window.minX();
|
||||||
|
cursor.x = std::min(x, window.maxX() - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
action sety {
|
||||||
|
/* vertical position */
|
||||||
|
int y = (unsigned)fc;
|
||||||
|
y += window.minY();
|
||||||
|
cursor.y = std::min(y, window.maxY() - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
# arg1 = any ${ _scratch[0] = fc; };
|
||||||
|
# arg2 = any ${ _scratch[1] = fc; };
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
main := (
|
||||||
|
0x00 $nop
|
||||||
|
| 0x01 ${
|
||||||
|
/* save viewport and reset */
|
||||||
|
_saved_context = _context;
|
||||||
|
window = iRect(0, 0, 80, 24);
|
||||||
|
/* currently ignores mode */
|
||||||
|
}
|
||||||
|
| 0x02 ${
|
||||||
|
/* set viewport top */
|
||||||
|
iPoint tl = cursor;
|
||||||
|
iPoint br = window.bottomRight();
|
||||||
|
_context.window = iRect(tl, br);
|
||||||
|
}
|
||||||
|
| 0x03 ${
|
||||||
|
/* set viewport bottom */
|
||||||
|
iPoint tl = _context.window.topLeft();
|
||||||
|
iPoint br = _context.cursor.offset(1,1);
|
||||||
|
_context.window = iRect(tl, br);
|
||||||
|
}
|
||||||
|
| 0x04 ${
|
||||||
|
/* restore viewport */
|
||||||
|
_context = _saved_context;
|
||||||
|
}
|
||||||
|
|
||||||
|
| 0x05 ${
|
||||||
|
/* E - $05 - Turns cursor on (enables cursor display) */
|
||||||
|
screen->setCursorType(Screen::CursorTypeUnderscore);
|
||||||
|
}
|
||||||
|
|
||||||
|
| 0x06 ${
|
||||||
|
/* F - $06 - Turns cursor off (disables cursor display) */
|
||||||
|
screen->setCursorType(Screen::CursorTypeNone);
|
||||||
|
}
|
||||||
|
|
||||||
|
| 0x07 ${
|
||||||
|
/* Beep */
|
||||||
|
NSBeep();
|
||||||
|
}
|
||||||
|
|
||||||
|
| 0x08 ${
|
||||||
|
/* Moves cursor left */
|
||||||
|
|
||||||
|
if (cursor.x > window.minX()) --cursor.x;
|
||||||
|
else if (_context.cursor_control & kWrap) {
|
||||||
|
cursor.x = window.maxX() - 1;
|
||||||
|
|
||||||
|
if (cursor.y > window.minY()) --cursor.y;
|
||||||
|
else if (_context.cursor_control & kScroll) {
|
||||||
|
screen->scrollDown(window);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
| 0x09 ${
|
||||||
|
/* move cursor right */
|
||||||
|
|
||||||
|
if (cursor.x < window.maxX()-1) ++cursor.x;
|
||||||
|
else if (_context.cursor_control & kWrap) {
|
||||||
|
cursor.x = window.minX();
|
||||||
|
|
||||||
|
if (cursor.y < window.maxY()-1) ++cursor.y;
|
||||||
|
else if (_context.cursor_control & kScroll) {
|
||||||
|
screen->scrollUp(window);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
| 0x0a ${
|
||||||
|
/* move cursor down */
|
||||||
|
if (cursor.y < window.maxY() - 1) ++cursor.y;
|
||||||
|
else if (_context.cursor_control & kScroll) {
|
||||||
|
screen->scrollUp(window);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
| 0x0b ${
|
||||||
|
/* move cursor up */
|
||||||
|
if (cursor.y > window.minY()) --cursor.y;
|
||||||
|
else if (_context.cursor_control & kScroll) {
|
||||||
|
screen->scrollDown(window);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
| 0x0c ${
|
||||||
|
/* home */
|
||||||
|
cursor = iPoint(window.topLeft());
|
||||||
|
}
|
||||||
|
|
||||||
|
| 0x0d ${
|
||||||
|
/* carriage return */
|
||||||
|
/* also LF depending on cursor motion */
|
||||||
|
cursor.x = window.minX();
|
||||||
|
if (_context.cursor_control & kLineFeed) {
|
||||||
|
|
||||||
|
if (cursor.y < window.maxY() - 1) ++cursor.y;
|
||||||
|
else if (_context.cursor_control & kScroll) {
|
||||||
|
screen->scrollUp(window);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
| 0x0e ${
|
||||||
|
/* turn screen off ... */
|
||||||
|
}
|
||||||
|
|
||||||
|
| 0x0f ${
|
||||||
|
/* turn screen on ... */
|
||||||
|
}
|
||||||
|
|
||||||
|
| 0x10 any ${
|
||||||
|
/* set text mode (40 vs 80, color vs bw) */
|
||||||
|
_context.mode = fc & 0x03;
|
||||||
|
}
|
||||||
|
|
||||||
|
| 0x11 ${
|
||||||
|
/* normal text */
|
||||||
|
_context.clearFlagBit(Screen::FlagInverse);
|
||||||
|
}
|
||||||
|
| 0x12 ${
|
||||||
|
/* invert text */
|
||||||
|
_context.setFlagBit(Screen::FlagInverse);
|
||||||
|
}
|
||||||
|
|
||||||
|
| 0x13 any ${
|
||||||
|
/* set foreground text color */
|
||||||
|
_context.fg_color = fc & 0x0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
| 0x14 any ${
|
||||||
|
/* set background text color */
|
||||||
|
_context.bg_color = fc & 0x0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
| 0x15 any ${
|
||||||
|
/* set cursor motion control */
|
||||||
|
_context.cursor_control = fc & 0x0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
# sync
|
||||||
|
| 0x16 $nop
|
||||||
|
|
||||||
|
| 0x17 any ${
|
||||||
|
/* horizontal shift */
|
||||||
|
int count = (int8_t)fc;
|
||||||
|
/* if > 0, shift right */
|
||||||
|
if (count > 0) screen->scrollRight(window, count);
|
||||||
|
/* if < 0, shift left */
|
||||||
|
if (count < 0) screen->scrollLeft(window, -count);
|
||||||
|
}
|
||||||
|
|
||||||
|
# horizontal position
|
||||||
|
| 0x18 any $setx
|
||||||
|
# vertical position
|
||||||
|
| 0x19 any $sety
|
||||||
|
# horizontal + vertical position
|
||||||
|
| 0x1a any $setx any $sety
|
||||||
|
|
||||||
|
# esc - reserved
|
||||||
|
| 0x1b $nop
|
||||||
|
|
||||||
|
| 0x1c ${
|
||||||
|
/* HOME + clear viewport */
|
||||||
|
cursor = window.topLeft();
|
||||||
|
screen->eraseRect(window);
|
||||||
|
}
|
||||||
|
|
||||||
|
| 0x1d ${
|
||||||
|
/* clear to end of viewport */
|
||||||
|
iRect r(cursor, window.bottomRight());
|
||||||
|
r.size.height = 1;
|
||||||
|
screen->eraseRect(r);
|
||||||
|
|
||||||
|
r = iRect(window.minX(), cursor.y + 1, window.width(), window.maxY() - cursor.y - 1);
|
||||||
|
screen->eraseRect(r);
|
||||||
|
}
|
||||||
|
|
||||||
|
| 0x1e ${
|
||||||
|
/* move to left edge of viewport, clear line */
|
||||||
|
cursor.y = window.minY();
|
||||||
|
iRect r(cursor, window.bottomRight());
|
||||||
|
r.size.height = 1;
|
||||||
|
screen->eraseRect(r);
|
||||||
|
}
|
||||||
|
|
||||||
|
| 0x1f ${
|
||||||
|
/* clear to end of line */
|
||||||
|
iRect r(cursor, window.bottomRight());
|
||||||
|
r.size.height = 1;
|
||||||
|
screen->eraseRect(r);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
| 0x20 .. 0x7f ${
|
||||||
|
screen->putc(fc, _context);
|
||||||
|
} $advance
|
||||||
|
|
||||||
|
| 0x80 .. 0x9f ${
|
||||||
|
/* display control char? */
|
||||||
|
}
|
||||||
|
| 0xa0 .. 0xff ${
|
||||||
|
screen->putc(fc & 0x7f, _context);
|
||||||
|
} $advance
|
||||||
|
|
||||||
|
|
||||||
|
)* $err{ fgoto main; };
|
||||||
|
|
||||||
|
write data;
|
||||||
|
}%%
|
||||||
|
|
||||||
|
@implementation Apple3
|
||||||
|
|
||||||
|
+(void)load {
|
||||||
|
[EmulatorManager registerClass: self];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSString *)name {
|
||||||
|
return @"Apple III";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
+ (NSString *)name {
|
||||||
|
return @"Apple III";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
- (const char *)termName {
|
||||||
|
return "appleIII";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-(void)reset: (BOOL)hard
|
||||||
|
{
|
||||||
|
|
||||||
|
%%write init;
|
||||||
|
_context.flags = 0;
|
||||||
|
_cursorType = Screen::CursorTypeUnderscore;
|
||||||
|
|
||||||
|
_context.fg_color = 15; /* white */
|
||||||
|
_context.bg_color = 0; /* black */
|
||||||
|
_context.cursor_control = kScroll | kWrap | kAdvance;
|
||||||
|
|
||||||
|
if (hard) {
|
||||||
|
_context.window = iRect(0, 0, 80, 24);
|
||||||
|
_context.cursor = iPoint(0,0);
|
||||||
|
_context.mode = 2;
|
||||||
|
|
||||||
|
_saved_context = iii_context();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-(BOOL)resizable
|
||||||
|
{
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
-(struct winsize)defaultSize
|
||||||
|
{
|
||||||
|
struct winsize ws = { 24, 80, 0, 0 };
|
||||||
|
|
||||||
|
return ws;
|
||||||
|
}
|
||||||
|
|
||||||
|
-(void)initTerm: (struct termios *)term
|
||||||
|
{
|
||||||
|
// Control-U is used by the up-arrow key.
|
||||||
|
term->c_cc[VKILL] = CTRL('X');
|
||||||
|
// tab is right arrow, so expand to spaces.
|
||||||
|
term->c_oflag |= OXTABS;
|
||||||
|
}
|
||||||
|
|
||||||
|
-(id)init
|
||||||
|
{
|
||||||
|
if ((self = [super init]))
|
||||||
|
{
|
||||||
|
[self reset: YES];
|
||||||
|
}
|
||||||
|
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
-(void)processData:(uint8_t *)data length: (size_t)length screen:(Screen *)screen output:(OutputChannel *)output
|
||||||
|
{
|
||||||
|
|
||||||
|
const uint8_t *eof = nullptr;
|
||||||
|
const uint8_t *p = data;
|
||||||
|
const uint8_t *pe = data + length;
|
||||||
|
|
||||||
|
auto &cursor = _context.cursor;
|
||||||
|
auto &window = _context.window;
|
||||||
|
auto &cursor_control = _context.cursor_control;
|
||||||
|
|
||||||
|
%%write exec;
|
||||||
|
|
||||||
|
screen->setCursor(cursor);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-(void)keyDown:(NSEvent *)event screen:(Screen *)screen output:(OutputChannel *)output
|
||||||
|
{
|
||||||
|
NSEventModifierFlags flags = [event modifierFlags];
|
||||||
|
NSString *chars = [event charactersIgnoringModifiers];
|
||||||
|
|
||||||
|
NSUInteger length = [chars length];
|
||||||
|
|
||||||
|
for (unsigned i = 0; i < length; ++i)
|
||||||
|
{
|
||||||
|
unichar uc = [chars characterAtIndex: i];
|
||||||
|
|
||||||
|
switch (uc)
|
||||||
|
{
|
||||||
|
case NSEnterCharacter:
|
||||||
|
output->write(CTRL('M'));
|
||||||
|
break;
|
||||||
|
/*
|
||||||
|
case NSDeleteCharacter:
|
||||||
|
output->write(0x7f);
|
||||||
|
break;
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
// the Apple II keyboard had a delete where the backspace key was.
|
||||||
|
// it functions as a backspace key.
|
||||||
|
case NSBackspaceCharacter:
|
||||||
|
output->write(0x7f);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NSLeftArrowFunctionKey:
|
||||||
|
output->write(CTRL('H'));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NSRightArrowFunctionKey:
|
||||||
|
output->write(CTRL('U'));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NSUpArrowFunctionKey:
|
||||||
|
output->write(CTRL('K'));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NSDownArrowFunctionKey:
|
||||||
|
output->write(CTRL('J'));
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
default:
|
||||||
|
if (uc <= 0x7f)
|
||||||
|
{
|
||||||
|
char c = uc;
|
||||||
|
|
||||||
|
//NSLog(@"%@", event);
|
||||||
|
|
||||||
|
if (flags & NSAlphaShiftKeyMask)
|
||||||
|
{
|
||||||
|
c = flags & NSShiftKeyMask ? tolower(c) : toupper(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (flags & NSControlKeyMask)
|
||||||
|
c = CTRL(c);
|
||||||
|
|
||||||
|
output->write(c);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
action answerback {
|
action answerback {
|
||||||
output->write(ESC "[?1;0c");
|
/* no answerback string */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -84,7 +84,7 @@
|
|||||||
#
|
#
|
||||||
action cursor_up {
|
action cursor_up {
|
||||||
/* cursor up */
|
/* cursor up */
|
||||||
unsigned count = _flags.DECANM ? std::min(1u, _args.front()) : 1;
|
unsigned count = _flags.DECANM ? std::max(1u, _args.front()) : 1;
|
||||||
|
|
||||||
if (cursor_in_region()) {
|
if (cursor_in_region()) {
|
||||||
cursor.y = clamp(cursor.y - count, region_y.first, region_y.second);
|
cursor.y = clamp(cursor.y - count, region_y.first, region_y.second);
|
||||||
@@ -94,7 +94,7 @@
|
|||||||
}
|
}
|
||||||
action cursor_down {
|
action cursor_down {
|
||||||
/* cursor down */
|
/* cursor down */
|
||||||
unsigned count = _flags.DECANM ? std::min(1u, _args.front()) : 1;
|
unsigned count = _flags.DECANM ? std::max(1u, _args.front()) : 1;
|
||||||
|
|
||||||
if (cursor_in_region()) {
|
if (cursor_in_region()) {
|
||||||
cursor.y = clamp(cursor.y + count, region_y.first, region_y.second);
|
cursor.y = clamp(cursor.y + count, region_y.first, region_y.second);
|
||||||
@@ -105,13 +105,13 @@
|
|||||||
|
|
||||||
action cursor_left {
|
action cursor_left {
|
||||||
/* cursor left */
|
/* cursor left */
|
||||||
unsigned count = _flags.DECANM ? std::min(1u, _args.front()) : 1;
|
unsigned count = _flags.DECANM ? std::max(1u, _args.front()) : 1;
|
||||||
cursor.x = clamp(cursor.x - count, window_x.first, window_x.second);
|
cursor.x = clamp(cursor.x - count, window_x.first, window_x.second);
|
||||||
}
|
}
|
||||||
|
|
||||||
action cursor_right {
|
action cursor_right {
|
||||||
/* cursor right */
|
/* cursor right */
|
||||||
unsigned count = _flags.DECANM ? std::min(1u, _args.front()) : 1;
|
unsigned count = _flags.DECANM ? std::max(1u, _args.front()) : 1;
|
||||||
cursor.x = clamp(cursor.x + count, window_x.first, window_x.second);
|
cursor.x = clamp(cursor.x + count, window_x.first, window_x.second);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -297,6 +297,7 @@
|
|||||||
|
|
||||||
iRect tmp(0, cursor.y + 1, 80, 24 - cursor.y - 1);
|
iRect tmp(0, cursor.y + 1, 80, 24 - cursor.y - 1);
|
||||||
screen->eraseRect(tmp);
|
screen->eraseRect(tmp);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
case 1: {
|
case 1: {
|
||||||
// 0 ... x
|
// 0 ... x
|
||||||
|
|||||||
@@ -55,6 +55,7 @@
|
|||||||
B69E32A920221C9E0086D7B1 /* ChildMonitor.mm in Sources */ = {isa = PBXBuildFile; fileRef = B69E32A820221C9E0086D7B1 /* ChildMonitor.mm */; };
|
B69E32A920221C9E0086D7B1 /* ChildMonitor.mm in Sources */ = {isa = PBXBuildFile; fileRef = B69E32A820221C9E0086D7B1 /* ChildMonitor.mm */; };
|
||||||
B6ACA2AD1E614E38000E774B /* VT52.mm in Sources */ = {isa = PBXBuildFile; fileRef = B612F46312DD5DF1005D1B77 /* VT52.mm */; };
|
B6ACA2AD1E614E38000E774B /* VT52.mm in Sources */ = {isa = PBXBuildFile; fileRef = B612F46312DD5DF1005D1B77 /* VT52.mm */; };
|
||||||
B6ACA2AF1E635CEC000E774B /* vt52-charset.png in Resources */ = {isa = PBXBuildFile; fileRef = B6ACA2AE1E635CEC000E774B /* vt52-charset.png */; };
|
B6ACA2AF1E635CEC000E774B /* vt52-charset.png in Resources */ = {isa = PBXBuildFile; fileRef = B6ACA2AE1E635CEC000E774B /* vt52-charset.png */; };
|
||||||
|
B6C0909021D292E20067F7A4 /* Apple3.mm.ragel in Sources */ = {isa = PBXBuildFile; fileRef = B6C0908D21D1BBE70067F7A4 /* Apple3.mm.ragel */; };
|
||||||
B6C21CCE2033382B00671774 /* TabClose_Busy.tiff in Resources */ = {isa = PBXBuildFile; fileRef = B6C21CC82033382A00671774 /* TabClose_Busy.tiff */; };
|
B6C21CCE2033382B00671774 /* TabClose_Busy.tiff in Resources */ = {isa = PBXBuildFile; fileRef = B6C21CC82033382A00671774 /* TabClose_Busy.tiff */; };
|
||||||
B6C21CCF2033382B00671774 /* TabClose_Busy_Pressed.tiff in Resources */ = {isa = PBXBuildFile; fileRef = B6C21CC92033382A00671774 /* TabClose_Busy_Pressed.tiff */; };
|
B6C21CCF2033382B00671774 /* TabClose_Busy_Pressed.tiff in Resources */ = {isa = PBXBuildFile; fileRef = B6C21CC92033382A00671774 /* TabClose_Busy_Pressed.tiff */; };
|
||||||
B6C21CD02033382B00671774 /* TabClose.tiff in Resources */ = {isa = PBXBuildFile; fileRef = B6C21CCA2033382A00671774 /* TabClose.tiff */; };
|
B6C21CD02033382B00671774 /* TabClose.tiff in Resources */ = {isa = PBXBuildFile; fileRef = B6C21CCA2033382A00671774 /* TabClose.tiff */; };
|
||||||
@@ -77,6 +78,8 @@
|
|||||||
isa = PBXBuildRule;
|
isa = PBXBuildRule;
|
||||||
compilerSpec = "com.apple.build-tasks.copy-strings-file";
|
compilerSpec = "com.apple.build-tasks.copy-strings-file";
|
||||||
fileType = sourcecode.glsl;
|
fileType = sourcecode.glsl;
|
||||||
|
inputFiles = (
|
||||||
|
);
|
||||||
isEditable = 1;
|
isEditable = 1;
|
||||||
outputFiles = (
|
outputFiles = (
|
||||||
);
|
);
|
||||||
@@ -87,6 +90,8 @@
|
|||||||
compilerSpec = com.apple.compilers.proxy.script;
|
compilerSpec = com.apple.compilers.proxy.script;
|
||||||
filePatterns = "*.mm.ragel";
|
filePatterns = "*.mm.ragel";
|
||||||
fileType = pattern.proxy;
|
fileType = pattern.proxy;
|
||||||
|
inputFiles = (
|
||||||
|
);
|
||||||
isEditable = 1;
|
isEditable = 1;
|
||||||
outputFiles = (
|
outputFiles = (
|
||||||
"$(DERIVED_SOURCES_DIR)/$(INPUT_FILE_BASE)",
|
"$(DERIVED_SOURCES_DIR)/$(INPUT_FILE_BASE)",
|
||||||
@@ -108,10 +113,8 @@
|
|||||||
/* End PBXCopyFilesBuildPhase section */
|
/* End PBXCopyFilesBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
|
||||||
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
|
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
|
||||||
13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
|
13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
|
||||||
1DDD58150DA1D0A300B32029 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
|
||||||
256AC3D80F4B6AC300CF3369 /* TwoTermAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TwoTermAppDelegate.h; sourceTree = "<group>"; };
|
256AC3D80F4B6AC300CF3369 /* TwoTermAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TwoTermAppDelegate.h; sourceTree = "<group>"; };
|
||||||
256AC3D90F4B6AC300CF3369 /* TwoTermAppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = TwoTermAppDelegate.mm; sourceTree = "<group>"; };
|
256AC3D90F4B6AC300CF3369 /* TwoTermAppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = TwoTermAppDelegate.mm; sourceTree = "<group>"; };
|
||||||
256AC3F00F4B6AF500CF3369 /* TwoTerm_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TwoTerm_Prefix.pch; sourceTree = "<group>"; };
|
256AC3F00F4B6AF500CF3369 /* TwoTerm_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TwoTerm_Prefix.pch; sourceTree = "<group>"; };
|
||||||
@@ -163,10 +166,8 @@
|
|||||||
B61D0D68125B8E06001C713B /* Defaults.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Defaults.m; sourceTree = "<group>"; };
|
B61D0D68125B8E06001C713B /* Defaults.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Defaults.m; sourceTree = "<group>"; };
|
||||||
B61EF7C31481561E008C1891 /* titlebar-corner.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "titlebar-corner.png"; sourceTree = "<group>"; };
|
B61EF7C31481561E008C1891 /* titlebar-corner.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "titlebar-corner.png"; sourceTree = "<group>"; };
|
||||||
B61EF7C41481561E008C1891 /* titlebar-middle.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "titlebar-middle.png"; sourceTree = "<group>"; };
|
B61EF7C41481561E008C1891 /* titlebar-middle.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "titlebar-middle.png"; sourceTree = "<group>"; };
|
||||||
B61EF7C814815AF8008C1891 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/NewTerminal.xib; sourceTree = "<group>"; };
|
|
||||||
B61EF7CA14815E07008C1891 /* TitleBarView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TitleBarView.h; sourceTree = "<group>"; };
|
B61EF7CA14815E07008C1891 /* TitleBarView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TitleBarView.h; sourceTree = "<group>"; };
|
||||||
B61EF7CB14815E07008C1891 /* TitleBarView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TitleBarView.m; sourceTree = "<group>"; };
|
B61EF7CB14815E07008C1891 /* TitleBarView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TitleBarView.m; sourceTree = "<group>"; };
|
||||||
B61EF7CE148163E7008C1891 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/TitleBarView.xib; sourceTree = "<group>"; };
|
|
||||||
B61EF7D41482FB6D008C1891 /* titlebar-center.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "titlebar-center.png"; sourceTree = "<group>"; };
|
B61EF7D41482FB6D008C1891 /* titlebar-center.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "titlebar-center.png"; sourceTree = "<group>"; };
|
||||||
B61EF7D51482FB6D008C1891 /* titlebar-left.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "titlebar-left.png"; sourceTree = "<group>"; };
|
B61EF7D51482FB6D008C1891 /* titlebar-left.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "titlebar-left.png"; sourceTree = "<group>"; };
|
||||||
B61EF7D61482FB6D008C1891 /* titlebar-right.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "titlebar-right.png"; sourceTree = "<group>"; };
|
B61EF7D61482FB6D008C1891 /* titlebar-right.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "titlebar-right.png"; sourceTree = "<group>"; };
|
||||||
@@ -176,20 +177,27 @@
|
|||||||
B66412381480A070003BC8D3 /* EmulatorWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EmulatorWindow.m; sourceTree = "<group>"; };
|
B66412381480A070003BC8D3 /* EmulatorWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EmulatorWindow.m; sourceTree = "<group>"; };
|
||||||
B676063911DEAD3500D6B66C /* TermWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TermWindowController.h; sourceTree = "<group>"; };
|
B676063911DEAD3500D6B66C /* TermWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TermWindowController.h; sourceTree = "<group>"; };
|
||||||
B676063A11DEAD3500D6B66C /* TermWindowController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = TermWindowController.mm; sourceTree = "<group>"; };
|
B676063A11DEAD3500D6B66C /* TermWindowController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = TermWindowController.mm; sourceTree = "<group>"; };
|
||||||
B676064D11DEBAE300D6B66C /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/TermWindow.xib; sourceTree = "<group>"; };
|
|
||||||
B67B3CE312B6FA040033AE07 /* a2-charset-40.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "a2-charset-40.png"; sourceTree = "<group>"; };
|
B67B3CE312B6FA040033AE07 /* a2-charset-40.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "a2-charset-40.png"; sourceTree = "<group>"; };
|
||||||
B67B3CE412B6FA040033AE07 /* a2-charset-80.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "a2-charset-80.png"; sourceTree = "<group>"; };
|
B67B3CE412B6FA040033AE07 /* a2-charset-80.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "a2-charset-80.png"; sourceTree = "<group>"; };
|
||||||
B6801BD812EB549300B22E9E /* vt100-charset.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "vt100-charset.png"; sourceTree = "<group>"; };
|
B6801BD812EB549300B22E9E /* vt100-charset.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "vt100-charset.png"; sourceTree = "<group>"; };
|
||||||
B683F70E2049E7B000470B99 /* VT50.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VT50.h; sourceTree = "<group>"; };
|
B683F70E2049E7B000470B99 /* VT50.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VT50.h; sourceTree = "<group>"; };
|
||||||
B683F70F2049E7B000470B99 /* VT50.mm.ragel */ = {isa = PBXFileReference; lastKnownFileType = text; path = VT50.mm.ragel; sourceTree = "<group>"; };
|
B683F70F2049E7B000470B99 /* VT50.mm.ragel */ = {isa = PBXFileReference; lastKnownFileType = text; path = VT50.mm.ragel; sourceTree = "<group>"; };
|
||||||
B683F711204AE32900470B99 /* VT05.mm.ragel */ = {isa = PBXFileReference; lastKnownFileType = text; path = VT05.mm.ragel; sourceTree = "<group>"; };
|
B683F711204AE32900470B99 /* VT05.mm.ragel */ = {isa = PBXFileReference; lastKnownFileType = text; path = VT05.mm.ragel; sourceTree = "<group>"; };
|
||||||
|
B6887810235CD76A00407374 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||||
|
B6887811235CD76A00407374 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/TermWindow.xib; sourceTree = "<group>"; };
|
||||||
|
B6887812235CD76A00407374 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/NewTerminal.xib; sourceTree = "<group>"; };
|
||||||
|
B6887813235CD76B00407374 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/TermConfig.xib; sourceTree = "<group>"; };
|
||||||
|
B6887814235CD76B00407374 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/TitleBarView.xib; sourceTree = "<group>"; };
|
||||||
|
B6887815235CD77600407374 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
|
B68A37D621A9D45A004CBDE4 /* TwoTerm.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = TwoTerm.entitlements; path = TwoTerm/TwoTerm.entitlements; sourceTree = "<group>"; };
|
||||||
B68E632812FF909C00EAFF5F /* ExampleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExampleView.h; sourceTree = "<group>"; };
|
B68E632812FF909C00EAFF5F /* ExampleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExampleView.h; sourceTree = "<group>"; };
|
||||||
B68E632912FF909C00EAFF5F /* ExampleView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ExampleView.m; sourceTree = "<group>"; };
|
B68E632912FF909C00EAFF5F /* ExampleView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ExampleView.m; sourceTree = "<group>"; };
|
||||||
B69D0FB9202799B10073CCB7 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/TermConfig.xib; sourceTree = "<group>"; };
|
|
||||||
B69E32A820221C9E0086D7B1 /* ChildMonitor.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = ChildMonitor.mm; sourceTree = "<group>"; };
|
B69E32A820221C9E0086D7B1 /* ChildMonitor.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = ChildMonitor.mm; sourceTree = "<group>"; };
|
||||||
B69E32AA20221CCA0086D7B1 /* ChildMonitor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChildMonitor.h; sourceTree = "<group>"; };
|
B69E32AA20221CCA0086D7B1 /* ChildMonitor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChildMonitor.h; sourceTree = "<group>"; };
|
||||||
B6ACA2AB1E5C8BEC000E774B /* GNOConsole.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = GNOConsole.mm; sourceTree = "<group>"; };
|
B6ACA2AB1E5C8BEC000E774B /* GNOConsole.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = GNOConsole.mm; sourceTree = "<group>"; };
|
||||||
B6ACA2AE1E635CEC000E774B /* vt52-charset.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "vt52-charset.png"; sourceTree = "<group>"; };
|
B6ACA2AE1E635CEC000E774B /* vt52-charset.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "vt52-charset.png"; sourceTree = "<group>"; };
|
||||||
|
B6C0908D21D1BBE70067F7A4 /* Apple3.mm.ragel */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Apple3.mm.ragel; sourceTree = "<group>"; };
|
||||||
|
B6C0908F21D1D2070067F7A4 /* Apple3.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Apple3.h; sourceTree = "<group>"; };
|
||||||
B6C173901D31D2B80024E360 /* GSOSConsole.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GSOSConsole.h; sourceTree = "<group>"; };
|
B6C173901D31D2B80024E360 /* GSOSConsole.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GSOSConsole.h; sourceTree = "<group>"; };
|
||||||
B6C173911D31D2B80024E360 /* GSOSConsole.mm.ragel */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = GSOSConsole.mm.ragel; sourceTree = "<group>"; };
|
B6C173911D31D2B80024E360 /* GSOSConsole.mm.ragel */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = GSOSConsole.mm.ragel; sourceTree = "<group>"; };
|
||||||
B6C173941D35546A0024E360 /* algorithm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = algorithm.h; sourceTree = "<group>"; };
|
B6C173941D35546A0024E360 /* algorithm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = algorithm.h; sourceTree = "<group>"; };
|
||||||
@@ -279,6 +287,7 @@
|
|||||||
29B97314FDCFA39411CA2CEA /* 2Term */ = {
|
29B97314FDCFA39411CA2CEA /* 2Term */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
B68A37D621A9D45A004CBDE4 /* TwoTerm.entitlements */,
|
||||||
B612F46B12DD5E02005D1B77 /* Views */,
|
B612F46B12DD5E02005D1B77 /* Views */,
|
||||||
B612F45512DD5DF1005D1B77 /* Emulators */,
|
B612F45512DD5DF1005D1B77 /* Emulators */,
|
||||||
B612F44612DD5DAD005D1B77 /* cpp */,
|
B612F44612DD5DAD005D1B77 /* cpp */,
|
||||||
@@ -365,7 +374,9 @@
|
|||||||
B612F45912DD5DF1005D1B77 /* EmulatorManager.mm */,
|
B612F45912DD5DF1005D1B77 /* EmulatorManager.mm */,
|
||||||
B612F45612DD5DF1005D1B77 /* Apple80.h */,
|
B612F45612DD5DF1005D1B77 /* Apple80.h */,
|
||||||
B612F45712DD5DF1005D1B77 /* Apple80.mm.ragel */,
|
B612F45712DD5DF1005D1B77 /* Apple80.mm.ragel */,
|
||||||
|
B6C0908D21D1BBE70067F7A4 /* Apple3.mm.ragel */,
|
||||||
B612F45A12DD5DF1005D1B77 /* GNOConsole.h */,
|
B612F45A12DD5DF1005D1B77 /* GNOConsole.h */,
|
||||||
|
B6C0908F21D1D2070067F7A4 /* Apple3.h */,
|
||||||
B612F45B12DD5DF1005D1B77 /* GNOConsole.mm.ragel */,
|
B612F45B12DD5DF1005D1B77 /* GNOConsole.mm.ragel */,
|
||||||
B6ACA2AB1E5C8BEC000E774B /* GNOConsole.mm */,
|
B6ACA2AB1E5C8BEC000E774B /* GNOConsole.mm */,
|
||||||
B6C173901D31D2B80024E360 /* GSOSConsole.h */,
|
B6C173901D31D2B80024E360 /* GSOSConsole.h */,
|
||||||
@@ -471,15 +482,25 @@
|
|||||||
29B97313FDCFA39411CA2CEA /* Project object */ = {
|
29B97313FDCFA39411CA2CEA /* Project object */ = {
|
||||||
isa = PBXProject;
|
isa = PBXProject;
|
||||||
attributes = {
|
attributes = {
|
||||||
LastUpgradeCheck = 0930;
|
LastUpgradeCheck = 1110;
|
||||||
|
TargetAttributes = {
|
||||||
|
8D1107260486CEB800E47090 = {
|
||||||
|
ProvisioningStyle = Automatic;
|
||||||
|
SystemCapabilities = {
|
||||||
|
com.apple.HardenedRuntime = {
|
||||||
|
enabled = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "TwoTerm" */;
|
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "TwoTerm" */;
|
||||||
compatibilityVersion = "Xcode 3.2";
|
compatibilityVersion = "Xcode 3.2";
|
||||||
developmentRegion = English;
|
developmentRegion = en;
|
||||||
hasScannedForEncodings = 1;
|
hasScannedForEncodings = 1;
|
||||||
knownRegions = (
|
knownRegions = (
|
||||||
en,
|
en,
|
||||||
English,
|
Base,
|
||||||
);
|
);
|
||||||
mainGroup = 29B97314FDCFA39411CA2CEA /* 2Term */;
|
mainGroup = 29B97314FDCFA39411CA2CEA /* 2Term */;
|
||||||
projectDirPath = "";
|
projectDirPath = "";
|
||||||
@@ -553,6 +574,7 @@
|
|||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
B675F4A91E561D20004B0D9C /* Apple80.mm.ragel in Sources */,
|
B675F4A91E561D20004B0D9C /* Apple80.mm.ragel in Sources */,
|
||||||
|
B6C0909021D292E20067F7A4 /* Apple3.mm.ragel in Sources */,
|
||||||
B675F4AC1E56A7F2004B0D9C /* GSOSConsole.mm.ragel in Sources */,
|
B675F4AC1E56A7F2004B0D9C /* GSOSConsole.mm.ragel in Sources */,
|
||||||
B6D1CD071E577E7D00C4A6BC /* PTSE.mm.ragel in Sources */,
|
B6D1CD071E577E7D00C4A6BC /* PTSE.mm.ragel in Sources */,
|
||||||
B683F7102049E7B000470B99 /* VT50.mm.ragel in Sources */,
|
B683F7102049E7B000470B99 /* VT50.mm.ragel in Sources */,
|
||||||
@@ -591,7 +613,7 @@
|
|||||||
089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
|
089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
|
||||||
isa = PBXVariantGroup;
|
isa = PBXVariantGroup;
|
||||||
children = (
|
children = (
|
||||||
089C165DFE840E0CC02AAC07 /* English */,
|
B6887815235CD77600407374 /* en */,
|
||||||
);
|
);
|
||||||
name = InfoPlist.strings;
|
name = InfoPlist.strings;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -599,7 +621,7 @@
|
|||||||
1DDD58140DA1D0A300B32029 /* MainMenu.xib */ = {
|
1DDD58140DA1D0A300B32029 /* MainMenu.xib */ = {
|
||||||
isa = PBXVariantGroup;
|
isa = PBXVariantGroup;
|
||||||
children = (
|
children = (
|
||||||
1DDD58150DA1D0A300B32029 /* English */,
|
B6887810235CD76A00407374 /* Base */,
|
||||||
);
|
);
|
||||||
name = MainMenu.xib;
|
name = MainMenu.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -607,7 +629,7 @@
|
|||||||
B61EF7C714815AF8008C1891 /* NewTerminal.xib */ = {
|
B61EF7C714815AF8008C1891 /* NewTerminal.xib */ = {
|
||||||
isa = PBXVariantGroup;
|
isa = PBXVariantGroup;
|
||||||
children = (
|
children = (
|
||||||
B61EF7C814815AF8008C1891 /* English */,
|
B6887812235CD76A00407374 /* Base */,
|
||||||
);
|
);
|
||||||
name = NewTerminal.xib;
|
name = NewTerminal.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -615,7 +637,7 @@
|
|||||||
B61EF7CD148163E7008C1891 /* TitleBarView.xib */ = {
|
B61EF7CD148163E7008C1891 /* TitleBarView.xib */ = {
|
||||||
isa = PBXVariantGroup;
|
isa = PBXVariantGroup;
|
||||||
children = (
|
children = (
|
||||||
B61EF7CE148163E7008C1891 /* English */,
|
B6887814235CD76B00407374 /* Base */,
|
||||||
);
|
);
|
||||||
name = TitleBarView.xib;
|
name = TitleBarView.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -623,7 +645,7 @@
|
|||||||
B676065011DEBAE900D6B66C /* TermWindow.xib */ = {
|
B676065011DEBAE900D6B66C /* TermWindow.xib */ = {
|
||||||
isa = PBXVariantGroup;
|
isa = PBXVariantGroup;
|
||||||
children = (
|
children = (
|
||||||
B676064D11DEBAE300D6B66C /* English */,
|
B6887811235CD76A00407374 /* Base */,
|
||||||
);
|
);
|
||||||
name = TermWindow.xib;
|
name = TermWindow.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -631,7 +653,7 @@
|
|||||||
B69D0FB8202799B10073CCB7 /* TermConfig.xib */ = {
|
B69D0FB8202799B10073CCB7 /* TermConfig.xib */ = {
|
||||||
isa = PBXVariantGroup;
|
isa = PBXVariantGroup;
|
||||||
children = (
|
children = (
|
||||||
B69D0FB9202799B10073CCB7 /* English */,
|
B6887813235CD76B00407374 /* Base */,
|
||||||
);
|
);
|
||||||
name = TermConfig.xib;
|
name = TermConfig.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -645,8 +667,12 @@
|
|||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||||
|
CODE_SIGN_IDENTITY = "-";
|
||||||
|
CODE_SIGN_STYLE = Automatic;
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DEVELOPMENT_TEAM = "";
|
||||||
|
ENABLE_HARDENED_RUNTIME = YES;
|
||||||
GCC_DYNAMIC_NO_PIC = NO;
|
GCC_DYNAMIC_NO_PIC = NO;
|
||||||
GCC_MODEL_TUNING = G5;
|
GCC_MODEL_TUNING = G5;
|
||||||
GCC_OPTIMIZATION_LEVEL = 0;
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
@@ -656,6 +682,7 @@
|
|||||||
INSTALL_PATH = "$(HOME)/Applications";
|
INSTALL_PATH = "$(HOME)/Applications";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "com.ksherlock.${PRODUCT_NAME:rfc1034identifier}";
|
PRODUCT_BUNDLE_IDENTIFIER = "com.ksherlock.${PRODUCT_NAME:rfc1034identifier}";
|
||||||
PRODUCT_NAME = TwoTerm;
|
PRODUCT_NAME = TwoTerm;
|
||||||
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
};
|
};
|
||||||
@@ -665,8 +692,11 @@
|
|||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||||
|
CODE_SIGN_IDENTITY = "-";
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
|
DEVELOPMENT_TEAM = "";
|
||||||
|
ENABLE_HARDENED_RUNTIME = YES;
|
||||||
GCC_MODEL_TUNING = G5;
|
GCC_MODEL_TUNING = G5;
|
||||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||||
GCC_PREFIX_HEADER = TwoTerm_Prefix.pch;
|
GCC_PREFIX_HEADER = TwoTerm_Prefix.pch;
|
||||||
|
|||||||
5
TwoTerm/TwoTerm.entitlements
Normal file
5
TwoTerm/TwoTerm.entitlements
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict/>
|
||||||
|
</plist>
|
||||||
@@ -343,9 +343,9 @@
|
|||||||
{
|
{
|
||||||
|
|
||||||
// mouse text actually requires mouse text and inverse to be on.
|
// mouse text actually requires mouse text and inverse to be on.
|
||||||
if (flag & Screen::FlagMouseText)
|
if ((flag & Screen::FlagMouseText) && c >= '@' && c <= '_')
|
||||||
{
|
{
|
||||||
if (c >= '@' && c <= '_') c |= 0x80;
|
c |= 0x80;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Submodule a2-terminfo updated: b91763ed70...c7b95dda17
Reference in New Issue
Block a user