From c7c13638ea53b869b2dc3b361c45b693115ed69c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C2=A8Rene=20Richarz?= Date: Sun, 12 May 2019 09:06:23 +0200 Subject: [PATCH] version 1.3.3, see versions.txt --- README.md | 4 ++++ apl/apltest | Bin 8224 -> 8224 bytes apl/apltest.c | 2 +- apl/install_apl | 3 ++- main.c | 6 +++--- tek4010 | Bin 45528 -> 45660 bytes tek4010.c | 6 +++--- tube.c | 31 ++++++++++++++++++++++++++++++- tube.h | 2 +- versions.txt | 5 +++++ 10 files changed, 49 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index d310ca9..f91c2af 100644 --- a/README.md +++ b/README.md @@ -265,6 +265,10 @@ directory, type cd apl sudo install_apl +You should see the following line displayed: + + /usr/share/fonts/truetype/apl385/Apl385.ttf: APL385 Unicode:style=Regular + While still being in the apl directory, you can test the APL character set using ../tek4010 -APL -noexit ./apltest diff --git a/apl/apltest b/apl/apltest index bf121aef21207afbf4d48f4a360c90572a557d22..847c41a4f7ed6fc4e8c14ea9c815c4c874a972d0 100755 GIT binary patch delta 62 zcmV-E0KxyDK%hXdpaB%6n4j>UONZc!CGkBud<8Uu6Hu_Tv;pY^5DIU0WpZ9(M(F!05!)BDv;pY^5N~#6a&vTYX=`O5 UbY*jN0JE(IFBbt#v)vs-0%U3#nE(I) diff --git a/apl/apltest.c b/apl/apltest.c index c11efab..0049a30 100644 --- a/apl/apltest.c +++ b/apl/apltest.c @@ -26,7 +26,7 @@ int main (int argc, char *argv[]) } printf("%c", ch); } - printf("\noverstrike test"); + printf("\n\noverstrike test"); putchar(62); putchar(32); putchar(79); putchar(8); putchar(63); putchar(32); putchar(76); putchar(8); putchar(43); diff --git a/apl/install_apl b/apl/install_apl index f0b7c1b..aa15bb2 100755 --- a/apl/install_apl +++ b/apl/install_apl @@ -3,4 +3,5 @@ mkdir /usr/share/fonts/truetype/apl385 cp Apl385.ttf /usr/share/fonts/truetype/apl385 -fc-cache /usr/share/fonts \ No newline at end of file +fc-cache /usr/share/fonts +fc-list 'APL385 Unicode' \ No newline at end of file diff --git a/main.c b/main.c index 0ca57f3..8877d92 100644 --- a/main.c +++ b/main.c @@ -181,12 +181,12 @@ static void on_key_press(GtkWidget *widget, GdkEventKey *event, gpointer user_da } else if (argAPL && (event->keyval == 0x006E)) { // "n" switch to alternative character set aplMode = 1; - printf("Setting APL mode to 1 from keyboard\n"); + // printf("Setting APL mode to 1 from keyboard\n"); return; } else if (argAPL && (event->keyval == 0x006F)) { // "o" switch to normalcharacter set aplMode = 0; - printf("Setting APL mode to 0 from keyboard\n"); + // printf("Setting APL mode to 0 from keyboard\n"); return; } else @@ -207,7 +207,7 @@ static void on_key_press(GtkWidget *widget, GdkEventKey *event, gpointer user_da } else if (putKeys) { - if (aplMode) printf("sending character %d to host\n", ch); + // if (aplMode) printf("sending character %d to host\n", ch); putc(ch,putKeys); // pipe key to child process, if stream open } } diff --git a/tek4010 b/tek4010 index 40f92490e3eaa6c731ecd2bfde1273f7b00e6e61..22e82fe5bc6db9abcadd0375540db4f27a199474 100755 GIT binary patch delta 17899 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 0) { + pclose(f); + return; + } + } + pclose(f); + printf("Error: APL font \'%s\' not installed. This font is required for the APL mode.\n", fontName); + printf("See github.com/rricharz/tek4010 paragraph \'APL mode\'\n"); + exit(1); +} + void tube_init(int argc, char* argv[]) // put any code here to initialize the tek4010 { char *argv2[20]; size_t bufsize = 127; int firstArg = 1; - printf("tek4010 version 1.3.2\n"); + printf("tek4010 version 1.3.3\n"); windowName = "Tektronix 4010/4014 emulator"; if ((argc<2) || (argc>19)) { printf("Error:number of arguments\n"); @@ -220,6 +248,7 @@ void tube_init(int argc, char* argv[]) else if (strcmp(argv[firstArg],"-APL") == 0) { argAPL = 1; windowName = "Tektronix 4013/4015 emulator (APL)"; + checkFont(APL_FONT); } else if (strcmp(argv[firstArg],"-ARDS") == 0) { argARDS = 1; diff --git a/tube.h b/tube.h index 974e53b..cd72615 100644 --- a/tube.h +++ b/tube.h @@ -2,7 +2,7 @@ // fonts #define STANDARD_FONT "Monospace" -#define APL_FONT "APL385 Unicode" +#define APL_FONT "APL385 Unicode" enum LineType {SOLID,DOTTED,DOTDASH,SHORTDASH,LONGDASH}; extern enum LineType ltype; diff --git a/versions.txt b/versions.txt index 754aa58..02f32c2 100644 --- a/versions.txt +++ b/versions.txt @@ -1,3 +1,8 @@ +Version 1.3.3 May 12, 2019 +========================= +New features +- APL mode with APL character set added + Version 1.3.1 May 4, 2019 ========================= Bug fixes