+
diff --git a/scripts/sync-dev.sh b/scripts/sync-dev.sh
index 098630f7..23612122 100755
--- a/scripts/sync-dev.sh
+++ b/scripts/sync-dev.sh
@@ -2,6 +2,6 @@
. ./scripts/env.sh
DESTPATH=$RSYNC_PATH/dev/
-git ls-files -z | rsync --stats --exclude '.*' --exclude 'scripts/*' --exclude=node_modules -ril -e "ssh -p 2222" --files-from - -0 . $DESTPATH
+git ls-files -z | rsync --stats --exclude '.*' --exclude 'scripts/*' --exclude=node_modules -ril --chmod=a+rx -e "ssh -p 2222" --files-from - -0 . $DESTPATH
git archive --format tar.gz --prefix 8bitworkshop- HEAD tools/ > release/8bitworkshop-tools.tgz
-rsync --stats -rilvz -e "ssh -p 2222" ./gen ./mame $DESTPATH/
+rsync --stats -rpilvz --chmod=a+rx -e "ssh -p 2222" ./gen ./mame $DESTPATH/
diff --git a/scripts/sync-version-prod.sh b/scripts/sync-version-prod.sh
index 56de4697..91090ac1 100755
--- a/scripts/sync-version-prod.sh
+++ b/scripts/sync-version-prod.sh
@@ -20,7 +20,7 @@ rm -fr $TMPDIR
mkdir -p $TMPDIR
git archive $VERSION | tar x -C $TMPDIR
echo "Copying to $DESTPATH..."
-rsync --stats --exclude '.*' --exclude 'scripts/*' --exclude=node_modules --copy-dest=$DEVPATH -rilz -e "ssh -p 2222" $TMPDIR/ $SUBMODS $DESTPATH
+rsync --stats --exclude '.*' --exclude 'scripts/*' --exclude=node_modules --copy-dest=$DEVPATH -rilz --chmod=a+rx -e "ssh -p 2222" $TMPDIR/ $SUBMODS $DESTPATH
git archive --format tar.gz --prefix 8bitworkshop- HEAD tools/ > release/8bitworkshop-tools-$VERSION.tgz
-#rsync --stats -arilvz -e "ssh -p 2222" ./mame $DESTPATH/
+rsync --stats -rpilvz --chmod=a+rx -e "ssh -p 2222" ./gen ./mame $DESTPATH/
echo "Done."
diff --git a/src/platform/apple2.js b/src/platform/apple2.js
index 45f2d09b..f8c9b756 100644
--- a/src/platform/apple2.js
+++ b/src/platform/apple2.js
@@ -1,10 +1,10 @@
"use strict";
var APPLE2_PRESETS = [
- {id:'sieve.c', name:'Sieve'},
- {id:'mandel.c', name:'Mandelbrot'},
- {id:'tgidemo.c', name:'TGI Graphics Demo'},
- {id:'siegegame.c', name:'Siege Game'},
+ {id:'sieve.c', name:'Sieve (C)'},
+ {id:'mandel.c', name:'Mandelbrot (C)'},
+ {id:'tgidemo.c', name:'TGI Graphics Demo (C)'},
+ {id:'siegegame.c', name:'Siege Game (C)'},
{id:'hgrtest.a', name:"HGR Test (asm)"},
{id:'conway.a', name:"Conway's Game of Life (asm)"},
// {id:'tb_6502.s', name:'Tom Bombem (assembler game)'},
diff --git a/src/views.ts b/src/views.ts
index 05365a52..008b8c2b 100644
--- a/src/views.ts
+++ b/src/views.ts
@@ -14,7 +14,7 @@ export interface ProjectView {
getSourceFile?() : SourceFile;
setGutterBytes?(line:number, s:string) : void;
openBitmapEditorAtCursor?() : void;
- markErrors?(errors:WorkerError[], embedlines:boolean) : void;
+ markErrors?(errors:WorkerError[]) : void;
clearErrors?() : void;
};
@@ -55,8 +55,8 @@ export class SourceEditor implements ProjectView {
dirtylisting = true;
sourcefile : SourceFile;
currentDebugLine : number;
+ errormsgs = [];
errorwidgets = [];
- lines2errmsg = [];
createDiv(parent:HTMLElement, text:string) {
var div = document.createElement('div');
@@ -111,29 +111,33 @@ export class SourceEditor implements ProjectView {
getPath() : string { return this.path; }
- addErrorMarker(line:number, msg:string, embedlines:boolean) {
- // add line widget w/ error msg
- if (embedlines) {
- var errspan = document.createElement("span");
- errspan.setAttribute("class", "tooltiperrorline");
- errspan.appendChild(document.createTextNode(msg));
- this.errorwidgets.push(this.editor.addLineWidget(line, errspan));
- }
- // concatenate error msgs for tooltip text
+ addErrorMarker(line:number, msg:string) {
var div = document.createElement("div");
div.setAttribute("class", "tooltipbox tooltiperror");
div.appendChild(document.createTextNode("\u24cd"));
- if (this.lines2errmsg[line])
- msg = this.lines2errmsg[line] + "\n" + msg;
- this.lines2errmsg[line] = msg;
- var tooltip = document.createElement("span");
- tooltip.setAttribute("class", "tooltiptext");
- tooltip.appendChild(document.createTextNode(msg));
- div.appendChild(tooltip);
this.editor.setGutterMarker(line, "gutter-info", div);
+ this.errormsgs.push({line:line, msg:msg});
+ // expand line widgets when mousing over errors
+ $(div).mouseover((e) => {
+ this.expandErrors();
+ });
}
- markErrors(errors:WorkerError[], embedlines:boolean) {
+ addErrorLine(line:number, msg:string) {
+ var errspan = document.createElement("span");
+ errspan.setAttribute("class", "tooltiperrorline");
+ errspan.appendChild(document.createTextNode(msg));
+ this.errorwidgets.push(this.editor.addLineWidget(line, errspan));
+ }
+
+ expandErrors() {
+ var e;
+ while (e = this.errormsgs.shift()) {
+ this.addErrorLine(e.line, e.msg);
+ }
+ }
+
+ markErrors(errors:WorkerError[]) {
// TODO: move cursor to error line if offscreen?
this.clearErrors();
var numLines = this.editor.lineCount();
@@ -142,7 +146,7 @@ export class SourceEditor implements ProjectView {
if (!info.path || this.path.endsWith(info.path)) {
var line = info.line-1;
if (line < 0 || line >= numLines) line = 0;
- this.addErrorMarker(line, info.msg, embedlines);
+ this.addErrorMarker(line, info.msg);
}
}
}
@@ -150,9 +154,9 @@ export class SourceEditor implements ProjectView {
clearErrors() {
this.editor.clearGutter("gutter-info");
this.refreshDebugState();
- this.lines2errmsg = [];
this.dirtylisting = true;
// clear line widgets
+ this.errormsgs = [];
while (this.errorwidgets.length)
this.errorwidgets.shift().clear();
}
diff --git a/src/windows.ts b/src/windows.ts
index 54bea8c4..0efb48e0 100644
--- a/src/windows.ts
+++ b/src/windows.ts
@@ -74,7 +74,7 @@ export class ProjectWindows {
refreshErrors(embedlines?:boolean) {
if (this.activewnd && this.activewnd.markErrors) {
if (this.lasterrors && this.lasterrors.length)
- this.activewnd.markErrors(this.lasterrors, embedlines);
+ this.activewnd.markErrors(this.lasterrors); // TODO?, embedlines);
else
this.activewnd.clearErrors();
}