NYAGOS - The Nihongo Yet Another GOing Shell
English / Japanese
Since 4.1
NYAGOS 4.0 has the problem that a panic sometimes occurs because multi-goroutines call only one Lua-instance.
On NYAGOS 4.1, I tryied to prevent from panic and to make stable by creating Lua-instances for each lua-call and not allowing multi-goroutines use same one.
But, it has the new problem that the functions assigned to nyagos[] , can not see variables set on .nyagos including themselves. Because Lua-instances have their own variable-areas not seen by other instances.
To share data between the different Lua-instance, On 4.1, the values assigned on the global table nyagos[] and share[] are linked to Go's memory. They are able to be accessed by all Lua-instance.
It breaks the compatibility on Lua scripts. To let Lua scripts for 4.0 run on 4.1, these modifing are required.
- Value assigned to global variable should be assigned to
share[].- Values and functions in
share[]are able to be access from all lua-instances. - nyagos.exe can find modifying the member of share[] and nyagos[] only.
- OK:
share.foo = { '1','2','3' } - NG:
share.foo[1] = 'x' - OK:
local t=share.foo ; t[1] = 'x' ; share.foo = t
- OK:
- Do not assign closure to
nyagos.alias[]! The code in the function can not access the bind variables.
- Values and functions in
NYAGOS 4.1.9_3
on May 13,2017
- Fix #214: warned as
main/lua_cmd.go: cmdExec: not found interpreter object
NYAGOS 4.1.9_2
on Apr 3,2017
- Fix #191 the option
-cprintedoption parse error. - A new Lua function:
nyagos.elevated()which returns true on elevated mode. - The default title bar prints
(admin)on elevated mode.
NYAGOS 4.1.9_1
on Mar 28,2017
- Fix: sometimes cursor disappears on readline on some environment on 4.1.9_0.
- Be able to use the escape sequence
\033]0;(title)\007to change the title of the command-prompt by the new go-colorable's feature.
NYAGOS 4.1.9_0
on Mar 27,2017
- Fix:
open http(s)://...did not work. - Support
cd file:///... - ALT-y: if string on clipboard has space, paste it with double-quatations.
- Listing filenames to completion, cut dirname of the fullpath
- Fix:
history-command did not display ID to use !-mark - Command-name on %NYAGOSPATH% are completed with TAB.
- Not expand environment variables on filename-completion.
- Not enclose ~/ & ~\ with double-quotations.
- At completion, ignore the string before
;,=(for set command) - Speedup print working directory on Prompt by not to fix filename case.
cd C:\Program Filesworks without double-quotations.(#182)cd /Dworks. ignore /D option for compatibility with CMD.EXE.(#182)- Sort
history's output by time. - Remove file existance check on
opentoopen regedit clone,su,sudo: ShellExecute with the destinate paths of the symbolic links not to fail on network folders.(#122)- set: be compatible with CMD.EXE's (set FOO=A B is same FOO="A B")
- Fix #184 Backquotation does not work in
_nyagos _nyagos: supportbindkey KEYNAME FUNCNAME- Support %ENVNAME:FROM=TO% like CMD.EXE
- On incremental search, bind ESCAPE-KEY to quit search-mode.
- New completions by new built-in command
box- Ctrl-O : Insert filename to select by Cursor (box.lua)
- Ctrl-XR , Alt-R : Insert history to select by Cursor (box.lua)
- Ctrl-XG , Alt-G : Insert Git-revision to select by Cursor (box.lua)
- Ctrl-XH , Alt-H : Insert
CDed directory to select by Cursor (box.lua)
- Support
lua_e "nyagos.key = function(this) end"
NYAGOS 4.1.8_0
on Feb 15,2017
- Add new customizing file
_nyagos(command.com-batchlike) - Fix #173 could not stop
lsand built-in commands with Ctrl-C - ls -h: display size with COMMA not Kilo,Mega or Giga
- Support nyagos.lines(FILENAME,"n") but value is not float but int #147
- Add %NYAGOSPATH% which works like %PATH% only in nyagos.exe not childprocess
- Support SET VAR+=VALUE , VAR^=VALUE like vim
- Fix #176 Bug on
gawk "BEGIN{ print substr(""%01"",2) }" - Use github.com/josephspurrier/goversioninfo instead of windres.exe to attach icon
- Support
ifcompatible with command.com's one (==,not,errorlevel,/I) - New alias macro
$~1$~2...$~*which remove double quotations. - Record current directories, times and process-id as history (#112)
- ls -l: change timestamp format to 'Jan 2 15:04:05' or 'Jan 2 2006'
- When lua53.dll is not found, display not a stacktrace but a readable error.
- '#' became a comment mark.
- open,clone,su,sudo : rewrite with Go (from Lua)
NYAGOS 4.1.7_0
on Nov 29,2016
- Abolished nyagos.lua, which role nyagos.exe do itself.
- Caching ~/.nyagos with
%APPDATA%\NYAOS_ORG/dotnyagos.luac nyagos.d/*are bundled with nyagos.exe self.- Fix #167 Could not call executable symbolic-linked to relative path
- Fix
ls -lcould not display@and linked path for symbolic-linked-executables - Fix su.lua: clone/su displayed broken path.
- Fix #168
ls RELATIVE-SYMLINKED-FILEPATHoccured error. - Fix Widths for filesize in
ls -lhwere broken - Set default alias ls="ls -oFh" (add -h)
historyoutputs history lines all when stdout is not a terminal.openprints a prompt for each files if more than one parameters are given.use "cho"-> powered by cho * C-r: History * C-o: Filename completion * M-h: Directory history * M-g: Git-revision- Fix: brace expansion "{a,b,c}" worked even in quotated strings
NYAGOS 4.1.6_1
on Sep 7,2016
- Fix: the package zip did not have lua53.dll
NYAGOS 4.1.6_0
on Sep 7,2016
- Use "\x1B[0K" as ERASELINE instead of " " & Backspace
- Use "\x1B[mC as m-times of Backspace
- Fix #159: Stop to print prompt again when terminal window resized
- Fix #164:
cd --historychanged the current directory to home. - copy and move always regard the desitinate path matching with
[\\/:]\.{0,2}$as a directory wheter it fails or not to stat the path.
NYAGOS 4.1.5_1
on Jul 31,2016
- Fix #157++: Overflow line on the text appended after screen resized.
- Error when it the upvalue named as 'prompter' is used on closures(nyagos.prompt) for invalid ~/.nyagos of 4.0.x on default for #155,#158
NYAGOS 4.1.5_0
on Jul 31,2016
cd --historyoutputs the current directory at first to prevent peco(M-h) fro m hangup with no cd histories.- On lua,
nyagos.option.glob = trueenables the wildcard expansion on external commands also.(#150) - Tried to improve the compatibility of
source - Support nyagos.lines(FILENAME,X) X='a','l','L',Number for #147
- Fix #156: %U+0000% causes panic
- Fix #152 ls -ld Downloads\ -> Downloads/ printed.
- Fix #157 Reset the readline-width on the console window resized.
- Moved some packages to the other repositories.
NYAGOS 4.1.4_1
on Jun 12,2016
- Fix #151
&&and||work same as; - Add nyagos.d/catalog/autocd.lua & autols.lua (#149 Thx @DeaR)
NYAGOS 4.1.4_0
on May 29,2016
- Implemented built-in tiny OLE interface and nyole.dll is not necessary now.
- Define default-prompt function as
nyagos.default_promptand it can change console-title(second parameter) - Fix: nyagos.lines() did not remove CRLF #144
- Fix: Lua's default file handles(STDIN/STDOUT) were opened by binary-mode. #146
- nyagos.d/catalog/peco.lua: C-r: revert order of display and improved speed.
NYAGOS 4.1.3_1
on May 8,2016
- Fix: %APPDATA%\nyaos.org\nyagos.history was not updated (#138)
- Fix: when nyagos.history was deleted, warnings are displayed until
exitwas typed. - Fix: nyagos.d/catalog/peco.lua: when nyagos.history does not exist, peco hangs
NYAGOS 4.1.3_0
on May 5,2016
- Add:
nyagos.open(PATH,MODE)whichPATHis in UTF8 and compatible withio.open. - Add:
nyagos.loadfile(PATH)whichPATHis in UTF8 and compatible withloadfile. - Add:
nyagos.lines(PATH)whichPATHis in UTF8 and compatible withio.lines. (Be careful that it returns bytearray-string not always UTF8!) - Built-in
echouses CRLF not LF as the end of line.(#124) - Lua's default file handles follow nyagos's redirect and pipeline
- Implemented touch's -r and -t option
touchdo tiny validation for timestamp format.make installmakes log and closes installing window after 3sec(#107)nyagos < TEXTFILEis available.(#125)- lua.exe & findstr.exe is no longer needed to make {conio,dos}/const.go.
- Fix: alias
suffixdit not work. - When the current working drive is a network drive,
sustarts new nyagos.exe as administrator on the same directory with UNC-Path. - On
nyagos -c "CMD", CMD is executed after executingnyagos.lua. nyagos -[cfe] "..."&nyagos < TEXTFILEdo not display copyrights.- Fix:
make install DIRdid not save DIR to Misc/version.cmd - Fix: nyagos.exe could not load nyagos.lua when nyagos.exe exists on non-ascii-path (#133)
- Fix: nyagos.d/catalog/subcomplete.lua does not work after 4.1 (#135)
- Switch escape sequence emulater to github.com/mattn/go-colorable (#137)
- Fix:
ls -ltr *was not sorted by modified time. (#136) - Support: nyagos -f NOT-Lua-Script(COMMANDS-Script)
(Add forgotten change on May 17,2016)
- Not to confuse whether the encoding is ANSI or UTF8 string , stop to print('UTF8-String with ESCAPE-SEQUENCE'). Now print remains to be the bundled one of lua53.dll. ( #129 )
NYAGOS 4.1.2_0
on Mar 29,2016
- Made scripts-catalog system
- Moved
catalog.d\*.luatonyagos.d\catalog\. - We can import cataloged functions with
use "NAME"in.nyagosuse "dollar"-> Expand the environment variable like$PATHuse "peco"-> powered by peco- C-r: History
- C-o: Filename completion
- M-h: Directory history
- M-g: Git-revision
- Moved
- ls
- not stop listing even if broken symbolic file exists.
- Support:
ls -d
- .nyagos can be put on the same directory with nyagos.exe
- Add:
cd --history: print all the directory stayed with no decorations. - Implemented built-in command tiny
touch - Fix:
>> barfails whenbardoes not exist(#121) - Add the field
rawargsto lua-command's parameter table, which contains parameters not removed quotations from user-typed ones. - Add the method
replacefromto bindkey-function's parameter table.
NYAGOS 4.1.1_2
on Feb 17,2016
- Fix the miss to convert filename UTF8 to ANSI for loadfile() of Lua (#110,Thx Mr.HABATA)
NYAGOS 4.1.1_1
on Feb 16,2016
- Force to insert a line feed when prompt is too wide (#104)
- Fix the error message when no files matches with a given wildcard (#108)
- Fix the environment variable like %ProgramFiles(x86)% were not expanded. (#109 Thx @hattya)
NYAGOS 4.1.1_0
on Jan 15,2016
- Support UTF-16 surrogate pair on getkey
mkdirsuppports /p: make parent directories as needed.
NYAGOS 4.1.0_0
on Jan 3,2016
- Add build-in
ln. - Add lua-command
lnswhich shows UAC and doln -s ls -lshows the destination of the symbolic-link.- Query continue or not when copy/move failed on one of parameters.
- New variable:
nyagos.histchar: a character for history-substitution (default:!)- To disable history-substitution, do
nyagos.histchar = nil
- To disable history-substitution, do
- New variable:
nyagos.antihistquot: characters to disable for history-substitution (default:'")- Be careful that
"!!"is not substituted by DEFAULT. - To be compatible with 4.0, do
nyagos.antihistquot = [[']]
- Be careful that
- New variable:
nyagos.quotation: characters for the completion (default:"').- The first character of
nyagos.quotationis the default quotation-mark. - The others characters are used when an user typed before completion.
- When
nyagos.quotation=[["']]C:\Prog[TAB]is completed to"C:\Program Files\("inserted)'C:\Prog[TAB]is completed to'C:\Program Files\('remains)"C:\Prog[TAB]is completed to"C:\Program Files\("remains)
- The first character of
NYAGOS 4.1-beta
on Dec 13,2015
- All Lua-callback function have thier own Lua-instances to avoid crash.
- Create the Lua-table
share[]to share values between callback functions and.nyagos. *.wsfis associated with cscript- Warn on illeagal assign to nyagos[]