Skip to content

Commit 1d4e78a

Browse files
committed
I'm crushing your head!
1 parent 8098859 commit 1d4e78a

2 files changed

Lines changed: 34 additions & 30 deletions

File tree

apps/Terminal.js

Lines changed: 33 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1073,7 +1073,7 @@ const delete_coms = arr => {//«
10731073
let sh_opts = globals.shell_command_options;
10741074
for (let libname of arr){
10751075
if (!this.var.allLibs[libname]){
1076-
cwarn(`The command library: ${libname} is not loaded`);
1076+
//cwarn(`The command library: ${libname} is not loaded`);
10771077
continue;
10781078
}
10791079
let lib = NS.coms[libname];
@@ -6493,28 +6493,26 @@ async makeCommand({assigns=[], name, args=[]}, opts){//«
64936493
usecomword = alias;
64946494
}//»
64956495
else usecomword = comword;
6496-
if (usecomword=="exit"){//«
6497-
//log(opts);
6498-
// if (opts.isTopLevel){
6499-
//log(opts);
6496+
if (usecomword=="exit"||usecomword=="return"){//«
65006497
let code;
6501-
if (opts.isInteractive){
6502-
term.response("sh: not exiting the toplevel shell", {isWrn: true});
6503-
// return {code: lastcomcode, breakStatementLoop: true};
6504-
code = new Number(code);
6505-
code.breakStatementLoop = true;
6506-
// return {code: 1, breakStatementLoop: true};
6507-
return code;
6498+
if (usecomword=="return" && !opts.isFunc){
6499+
return make_sh_err_com(comword, "can only `return' from a function", com_env);
65086500
}
6509-
let numstr = arr.shift();
6510-
if (numstr){
6511-
if (!numstr.match(/^-?[0-9]+$/)) term.response("sh: exit: numeric argument required", {isErr: true});
6512-
else code = parseInt(numstr);
6501+
if (usecomword=="exit" && opts.isInteractive){
6502+
term.response("sh: not exiting the toplevel shell", {isWrn: true});
6503+
code = E_ERR;
65136504
}
6514-
else if (arr.length) {
6515-
term.response("sh: exit: too many arguments", {isErr: true});
6505+
else {
6506+
let numstr = arr.shift();
6507+
if (numstr && !arr.length){
6508+
if (!numstr.match(/^-?[0-9]+$/)) term.response(`sh: ${usecomword}: numeric argument required`, {isErr: true});
6509+
else code = parseInt(numstr);
6510+
}
6511+
else if (arr.length) {
6512+
term.response(`sh: ${usecomword}: too many arguments`, {isErr: true});
6513+
}
6514+
if (!Number.isFinite(code)) code = E_ERR;
65166515
}
6517-
if (!Number.isFinite(code)) code = E_ERR;
65186516
code = new Number(code);
65196517
code.breakStatementLoop = true;
65206518
return code;
@@ -6525,14 +6523,15 @@ async makeCommand({assigns=[], name, args=[]}, opts){//«
65256523
if (this.cancelled) return;
65266524
if (isStr(com)) return com;
65276525
}//»
6528-
if (term.funcs[usecomword]){
6529-
6530-
com_env.isFunc = true;
6531-
let func = term.funcs[usecomword](this, arr, opts, com_env);
6532-
func.isFunc = true;
6533-
return func;
6534-
6535-
}
6526+
if (term.funcs[usecomword]){//«
6527+
com_env.isFunc = true;
6528+
let newopts = sdup(opts);
6529+
delete newopts.isInteractive;
6530+
newopts.isFunc = true;
6531+
let func = term.funcs[usecomword](this, arr, newopts, com_env);
6532+
func.isFunc = true;
6533+
return func;
6534+
}//»
65366535
if (!com) {//Command not found!«
65376536
//If the user attempts to use, e.g. 'if', let them know that this isn't that kind of shell
65386537
//Need to do this for matching stuff
@@ -9617,9 +9616,14 @@ handleLetterPress(char_arg, no_render){//«
96179616
endch = ln[x];
96189617
if (endch) ln.pop();
96199618
this.x = 0;
9620-
this.y++;
9619+
if (this.y===this.h-1){
9620+
this.scrollNum++;
9621+
}
9622+
else{
9623+
this.y++;
9624+
}
96219625
fromy = this.y + this.scrollNum;
9622-
this.scrollIntoView({noSetY: true});
9626+
// this.scrollIntoView({noSetY: true});
96239627
}
96249628
else if (ln.length <= w){
96259629
return end();

list.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
["README.md/2548","apps",["Audio.js/4093","BinView.js/9814","Folder.js/10944","Help.js/979","MediaPlayer.js/2074","Meta.js/2279","Music.js/4844","NN.js/1136","Poker.js/41043","Something.js/32","Terminal.js/257501","TextEdit.js/5174","WorkMan.js/3808","YourApp.js/418","dev",["Ermpt.js/507","Grammar.js/15536","HTML.js/1348","Hands.js/15575","Kuhn.js/7362","Launcher.js/20502","NewShell.js/84972","Player.js/2121","Poker5.js/4891","TakePicture.js/3475","Worker.js/1195","audio",["Blah.js/3601","MakeSomeBass.js/5879","Midi.js/3953","Noise.js/2048","Vowels.js/13141","cool",["RandomWalk.js/5090"],"zsave",["Faust.js/35023","Jazzed.js/18165","Jazzed2.js/31797","Karplus.js/30845","Noisecraft.js/11936"]],"svg",["SVG1.js/12599","SVG2.js/18599"],"zold",["Poker.js/26967","Poker2.js/76136","Poker3.js/65113","Poker4.js/36503"]],"games",["Arcade.js/12599"],"hw",["MidiCtl.js/3691"],"media",["2Cameras.js/3258","Camera.js/3673","MediaPlayer.js/16115","VideoCutter.js/44729"],"template",["Basic.js/489","Template.js/396","WebAudio.js/2877"],"util",["ImageView.js/2696","Unicoder.js/16896"]],"bin",["ALLLIST/106","APPLIST/104","DIRGET/47","DOBEAUTIFY/71","DOLINKS/330","DOZIP/801","GITUP/396","MKLOTWLIST/136","MKSYMLINKS/487","PYSERV/84","SSLPYSERV.py/528","dojsbeautify/71","js",["getdir.js/665"],"vallgrep/398","vvallgrep/544"],"coms",["audio.js/1766","esprima.js/171824","extra.js/10807","fs.js/26758","mail.js/43901","shell.js/175037","template.js/336","test",["dummy.js/21"],"test.js/1982","yt.js/66863","zhold",["mail.js/22724"]],"doc",["EDITING/1847","START_HERE/2609","apis",["imap-flow.js/104043","imapflow.txt/38670"],"concepts",["DATA_IPC/4482"],"dev",["CHANGES/2853","DESK/63027","FS/7462","TERMINAL/149463","VIM/16037"]],"index.html/1184","init",["my_setup.js/1264"],"local",["_poker",["001/19229","003/23581","FLOP_EV_1.json/3312805","FLOP_EV_2.json/3389041","FLOP_EV_3.json/3719620","FLOP_EV_4.json/3503737","FLOP_EV_5.js/3470856","RIVER_EV_1.json/38068483","RIVER_EV_2.json/39745965","RIVER_EV_3.json/44070681","RIVER_EV_4.json/41514544","RIVER_EV_5.json/41100610","TURN_EV_1.json/17598825","TURN_EV_2.json/18032587","TURN_EV_3.json/19787973","TURN_EV_4.json/18622556","TURN_EV_5.json/18423232"]],"mods",["audio",["multi_freq_worklet.js/1502","random_walk_worklet.js/3039"],"games",["GBEmulator.js/9708","NESEmulator.js/222309","binjgb.wasm/87232"],"help",["shell.js/3591"],"hw",["midi.js/2323"],"term",["email.js/10406","less.js/19368","log.js/13262","vim.js/150516"],"util",["math.js/12125","nn",["snake",["worker.js/29373"]],"pretty.js/93856","walt.js/204893","wasm.js/42764","wasmparser.js/34331","webmparser.js/58730"],"workers",["poker.js/37420"]],"node",["server.js/7198","svcs",["imap.js/17772","mount.js/16553","smtp.js/1359","template.js/1831","ws.js/2156","ytdl.js/11982"]],"sys",["config.js/8812","desk.js/216683","fs.js/66130","util.js/20006"],"www",["blog.css/181","config",["bashrc.txt/692","desert.vim/2952","nano-hack.txt/2324","vimrc.txt/1443"],"desk.css/1898","docs",["blog-template.html/291","help.html/9104","what-it-is.html/4370"],"examples",["test.sh/66"],"favicon.ico/15086","lotw256.png/41075","lotw48.png/2966","stuff",["noise.html/1669"]],"zzhold",["DESK/1306","SHELL/17941","noisecraft",["audiograph.js/22588","audioview.js/5086","audioworklet.js/1319","compiler.js/15169","dialog.js/3578","editor.js/72623","eventable.js/965","knob.js/10041","midi.js/2044","model.js/57480","music.js/7887","synth.js/6652","utils.js/6876","zhold",["audioworklet.js/2980","compiler.js/37421","model.js/57645"]],"writes",["RUNTIME.js/4583","Terminal.js/80662"]]]
1+
["README.md/2548","apps",["Audio.js/4093","BinView.js/9814","Folder.js/10944","Help.js/979","MediaPlayer.js/2074","Meta.js/2279","Music.js/4844","NN.js/1136","Poker.js/41043","Something.js/32","Terminal.js/257681","TextEdit.js/5174","WorkMan.js/3808","YourApp.js/418","dev",["Ermpt.js/507","Grammar.js/15536","HTML.js/1348","Hands.js/15575","Kuhn.js/7362","Launcher.js/20502","NewShell.js/84972","Player.js/2121","Poker5.js/4891","TakePicture.js/3475","Worker.js/1195","audio",["Blah.js/3601","MakeSomeBass.js/5879","Midi.js/3953","Noise.js/2048","Vowels.js/13141","cool",["RandomWalk.js/5090"],"zsave",["Faust.js/35023","Jazzed.js/18165","Jazzed2.js/31797","Karplus.js/30845","Noisecraft.js/11936"]],"svg",["SVG1.js/12599","SVG2.js/18599"],"zold",["Poker.js/26967","Poker2.js/76136","Poker3.js/65113","Poker4.js/36503"]],"games",["Arcade.js/12599"],"hw",["MidiCtl.js/3691"],"media",["2Cameras.js/3258","Camera.js/3673","MediaPlayer.js/16115","VideoCutter.js/44729"],"template",["Basic.js/489","Template.js/396","WebAudio.js/2877"],"util",["ImageView.js/2696","Unicoder.js/16896"]],"bin",["ALLLIST/106","APPLIST/104","DIRGET/47","DOBEAUTIFY/71","DOLINKS/330","DOZIP/801","GITUP/396","MKLOTWLIST/136","MKSYMLINKS/487","PYSERV/84","SSLPYSERV.py/528","dojsbeautify/71","js",["getdir.js/665"],"vallgrep/398","vvallgrep/544"],"coms",["audio.js/1766","esprima.js/171824","extra.js/10807","fs.js/26758","mail.js/43901","shell.js/175037","template.js/336","test",["dummy.js/21"],"test.js/1982","yt.js/66863","zhold",["mail.js/22724"]],"doc",["EDITING/1847","START_HERE/2609","apis",["imap-flow.js/104043","imapflow.txt/38670"],"concepts",["DATA_IPC/4482"],"dev",["CHANGES/2853","DESK/63027","FS/7462","TERMINAL/149463","VIM/16037"]],"index.html/1184","init",["my_setup.js/1264"],"local",["_poker",["001/19229","003/23581","FLOP_EV_1.json/3312805","FLOP_EV_2.json/3389041","FLOP_EV_3.json/3719620","FLOP_EV_4.json/3503737","FLOP_EV_5.js/3470856","RIVER_EV_1.json/38068483","RIVER_EV_2.json/39745965","RIVER_EV_3.json/44070681","RIVER_EV_4.json/41514544","RIVER_EV_5.json/41100610","TURN_EV_1.json/17598825","TURN_EV_2.json/18032587","TURN_EV_3.json/19787973","TURN_EV_4.json/18622556","TURN_EV_5.json/18423232"]],"mods",["audio",["multi_freq_worklet.js/1502","random_walk_worklet.js/3039"],"games",["GBEmulator.js/9708","NESEmulator.js/222309","binjgb.wasm/87232"],"help",["shell.js/3591"],"hw",["midi.js/2323"],"term",["email.js/10406","less.js/19368","log.js/13262","vim.js/150516"],"util",["math.js/12125","nn",["snake",["worker.js/29373"]],"pretty.js/93856","walt.js/204893","wasm.js/42764","wasmparser.js/34331","webmparser.js/58730"],"workers",["poker.js/37420"]],"node",["server.js/7198","svcs",["imap.js/17772","mount.js/16553","smtp.js/1359","template.js/1831","ws.js/2156","ytdl.js/11982"]],"sys",["config.js/8812","desk.js/216683","fs.js/66130","util.js/20006"],"www",["blog.css/181","config",["bashrc.txt/692","desert.vim/2952","nano-hack.txt/2324","vimrc.txt/1443"],"desk.css/1898","docs",["blog-template.html/291","help.html/9104","what-it-is.html/4370"],"examples",["test.sh/66"],"favicon.ico/15086","lotw256.png/41075","lotw48.png/2966","stuff",["noise.html/1669"]],"zzhold",["DESK/1306","SHELL/17941","noisecraft",["audiograph.js/22588","audioview.js/5086","audioworklet.js/1319","compiler.js/15169","dialog.js/3578","editor.js/72623","eventable.js/965","knob.js/10041","midi.js/2044","model.js/57480","music.js/7887","synth.js/6652","utils.js/6876","zhold",["audioworklet.js/2980","compiler.js/37421","model.js/57645"]],"writes",["RUNTIME.js/4583","Terminal.js/80662"]]]

0 commit comments

Comments
 (0)