From 783cf68d10436e8322550a9706bce018dc6606b4 Mon Sep 17 00:00:00 2001 From: dgames Date: Thu, 24 Dec 2020 17:48:00 -0500 Subject: [PATCH] CLink migration and clenaup --- CHANGELOG.md | 11 ++- vendor/clink_settings.default | 133 +++++++--------------------------- vendor/init.bat | 50 ++++++++++--- 3 files changed, 77 insertions(+), 117 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fff27ed..de3c1b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,18 @@ # Change Log -## [1.3.17](https://github.com/cmderdev/cmder/tree/v1.3.17) (2020-12-23) +## [1.3.18](https://github.com/cmderdev/cmder/tree/v1.3.18) (2020-12-24) ### Fixes +- Update to Clink v1.1.14 to fix #2451. + - Clink `%cmder_root%\config\settings` is migrated from a previous install if `%cmder_root%\config\clink_settings` does not exist. + - This is a best effort migration of Clink 1.x.x supported settings. + - Clink `%cmder_root%\config\.history` is migrated from a previous install if `%cmder_root%\config\clink_history` does not exist. +- `init.bat` auto migrates the history alias to use `clink history` if required. + +## [1.3.17](https://github.com/cmderdev/cmder/tree/v1.3.17) (2020-12-23) +### Fixes + - [bug] Running `alias ..=cd ..` removes other aliases #2394 - Switch to @chrisant996 [Clink](https://github.com/chrisant996/clink/) v1.1.10 to fix Clink newer Windows 10 releases. - Fix `\Git\cmd\git.exe found. was unexpected at this time.` diff --git a/vendor/clink_settings.default b/vendor/clink_settings.default index 97420e2..2520c01 100644 --- a/vendor/clink_settings.default +++ b/vendor/clink_settings.default @@ -1,116 +1,39 @@ -# name: Pressing Ctrl-D exits session -# type: bool -# Ctrl-D exits cmd.exe when it is pressed on an empty line. -ctrld_exits = 1 +# For explanation of these and other settings see: +# https://chrisant996.github.io/clink/clink.html -# name: Toggle if pressing Esc clears line -# type: bool -# Clink clears the current line when Esc is pressed (unless Readline's Vi mode -# is enabled). -esc_clears_line = 1 +# name: Shell command completions +# type: color +color.cmd = bold -# name: Match display colour -# type: int -# Colour to use when displaying matches. A value less than 0 will be the -# opposite brightness of the default colour. -match_colour = -1 +# name: Doskey completions +# type: color +color.doskey = bright cyan -# name: Executable match style -# type: enum -# 0 = PATH only -# 1 = PATH and CWD -# 2 = PATH, CWD, and directories -# Changes how Clink will match executables when there is no path separator on -# the line. 0 = PATH only, 1 = PATH and CWD, 2 = PATH, CWD, and directories. In -# all cases both executables and directories are matched when there is a path -# separator present. A value of -1 will disable executable matching completely. -exec_match_style = 2 +# name: Filtered completion color +# type: color +color.filtered = bold -# name: Whitespace prefix matches files -# type: bool -# If the line begins with whitespace then Clink bypasses executable matching and -# will match all files and directories instead. -space_prefix_match_files = 1 +# name: For user-interaction prompts +# type: color +color.interact = bold -# name: Colour of the prompt -# type: int -# Surrounds the prompt in ANSI escape codes to set the prompt's colour. Disabled -# when the value is less than 0. -prompt_colour = -1 - -# name: Auto-answer terminate prompt -# type: enum -# 0 = Disabled -# 1 = Answer 'Y' -# 2 = Answer 'N' -# Automatically answers cmd.exe's 'Terminate batch job (Y/N)?' prompts. 0 = -# disabled, 1 = answer 'Y', 2 = answer 'N'. -terminate_autoanswer = 0 - -# name: Lines of history saved to disk -# type: int -# When set to a positive integer this is the number of lines of history that -# will persist when Clink saves the command history to disk. Use 0 for infinite -# lines and <0 to disable history persistence. -history_file_lines = 10000 - -# name: Skip adding lines prefixed with whitespace -# type: bool -# Ignore lines that begin with whitespace when adding lines in to the history. -history_ignore_space = 0 - -# name: Controls how duplicate entries are handled -# type: enum -# 0 = Always add -# 1 = Ignore -# 2 = Erase previous -# If a line is a duplicate of an existing history entry Clink will erase the -# duplicate when this is set 2. A value of 1 will not add duplicates to the -# history and a value of 0 will always add lines. Note that history is not -# deduplicated when reading/writing to disk. -history_dupe_mode = 2 - -# name: Read/write history file each line edited -# type: bool -# When non-zero the history will be read from disk before editing a new line and -# written to disk afterwards. -history_io = 1 +# name: Message area color +# type: color +color.message = default # name: Sets how command history expansion is applied # type: enum -# 0 = Off -# 1 = On -# 2 = Not in single quotes -# 3 = Not in double quote -# 4 = Not in any quotes -# The '!' character in an entered line can be interpreted to introduce words -# from the history. This can be enabled and disable by setting this value to 1 -# or 0. Values or 2, 3 or 4 will skip any ! character quoted in single, double, -# or both quotes respectively. -history_expand_mode = 3 +# options: off,on,not_squoted,not_dquoted,not_quoted +history.expand_mode = not_dquoted -# name: Support Windows' Ctrl-Alt substitute for AltGr -# type: bool -# Windows provides Ctrl-Alt as a substitute for AltGr, historically to support -# keyboards with no AltGr key. This may collide with some of Readline's -# bindings. -use_altgr_substitute = 1 +# name: Skip adding lines prefixed with whitespace +# type: boolean +history.ignore_space = False -# name: Strips CR and LF chars on paste -# type: enum -# 0 = Paste unchanged -# 1 = Strip -# 2 = As space -# Setting this to a value >0 will make Clink strip CR and LF characters from -# text pasted into the current line. Set this to 1 to strip all newline -# characters and 2 to replace them with a space. -strip_crlf_on_paste = 2 - -# name: Enables basic ANSI escape code support -# type: bool -# When printing the prompt, Clink has basic built-in support for SGR ANSI escape -# codes to control the text colours. This is automatically disabled if a third -# party tool is detected that also provides this facility. It can also be -# disabled by setting this to 0. -ansi_code_support = 1 +# name: The number of history lines to save +# type: integer +history.max_lines = 10000 +# name: Share history between instances +# type: boolean +history.shared = True diff --git a/vendor/init.bat b/vendor/init.bat index cb1a8e9..928aa30 100644 --- a/vendor/init.bat +++ b/vendor/init.bat @@ -148,18 +148,39 @@ if "%CMDER_CLINK%" == "1" ( :: Run clink if defined CMDER_USER_CONFIG ( - if not exist "%CMDER_USER_CONFIG%\settings" ( + if not exist "%CMDER_USER_CONFIG%\settings" if not exist "%CMDER_USER_CONFIG%\clink_settings" ( echo Generating clink initial settings in "%CMDER_USER_CONFIG%\settings" - copy "%CMDER_ROOT%\vendor\clink_settings.default" "%CMDER_USER_CONFIG%\settings" - echo Additional *.lua files in "%CMDER_USER_CONFIG%" are loaded on startup.\ + copy "%CMDER_ROOT%\vendor\clink_settings.default" "%CMDER_USER_CONFIG%\clink_settings" + echo Additional *.lua files in "%CMDER_USER_CONFIG%" are loaded on startup. + ) + + REM Cleanup lagacy Clink Settings file + if exist "%CMDER_USER_CONFIG%\settings" if exist "%CMDER_USER_CONFIG%\clink_settings" ( + del "%CMDER_USER_CONFIG%\settings" + ) + + REM Cleanup legacy CLink history file + if exist "%CMDER_USER_CONFIG%\.history" if exist "%CMDER_USER_CONFIG%\clink_history" ( + del "%CMDER_USER_CONFIG%\.history" ) "%CMDER_ROOT%\vendor\clink\clink_%clink_architecture%.exe" inject --quiet --profile "%CMDER_USER_CONFIG%" --scripts "%CMDER_ROOT%\vendor" ) else ( - if not exist "%CMDER_ROOT%\config\settings" ( - echo Generating clink initial settings in "%CMDER_ROOT%\config\settings" - copy "%CMDER_ROOT%\vendor\clink_settings.default" "%CMDER_ROOT%\config\settings" + if not exist "%CMDER_ROOT%\config\settings" if not exist "%CMDER_ROOT%\config\clink_settings" ( + echo Generating clink initial settings in "%CMDER_ROOT%\config\clink_settings" + copy "%CMDER_ROOT%\vendor\clink_settings.default" "%CMDER_ROOT%\config\clink_settings" echo Additional *.lua files in "%CMDER_ROOT%\config" are loaded on startup. ) + + REM Cleanup lagacy Clink Settings file + if exist "%CMDER_ROOT%\config\settings" if exist "%CMDER_ROOT%\config\clink_settings" ( + del "%CMDER_ROOT%\config\settings" + ) + + REM Cleanup legacy Clink history file + if exist "%CMDER_ROOT%\config\.history" if exist "%CMDER_ROOT%\config\clink_history" ( + del "%CMDER_ROOT%\config\.history" + ) + "%CMDER_ROOT%\vendor\clink\clink_%clink_architecture%.exe" inject --quiet --profile "%CMDER_ROOT%\config" --scripts "%CMDER_ROOT%\vendor" ) ) else ( @@ -345,6 +366,13 @@ if "%CMDER_ALIASES%" == "1" ( ) :: Add aliases to the environment +type "%user_aliases%" | findstr /b /l /i "history=cat " >nul +if "%ERRORLEVEL%" == "0" ( + echo Migrating alias 'history' to new Clink 1.x.x... + call "%CMDER_ROOT%\vendor\bin\alias.cmd" /d history + echo Restart the session to activate changes! +) + call "%user_aliases%" if "%CMDER_CONFIGURED%" gtr "1" goto CMDER_CONFIGURED @@ -397,11 +425,11 @@ if "%CMDER_ALIASES%" == "1" if exist "%CMDER_ROOT%\bin\alias.bat" if exist "%CMD echo * Search for 'user-aliases' and replace it with 'user_aliases'. ) -alias history |find /i "cat" >nul -if "%ERRORLEVEL%" == "0" ( - echo Migrating alias 'history' to new Clink 1.x.x... - "%CMDER_ROOT%\vendor\bin\alias.cmd" history="^%%CMDER_ROOT^%%\vendor\clink\clink.bat" history -) +:: alias history |find /i "cat" >nul +:: if "%ERRORLEVEL%" == "0" ( +:: echo Migrating alias 'history' to new Clink 1.x.x... +:: "%CMDER_ROOT%\vendor\bin\alias.cmd" history="^%%CMDER_ROOT^%%\vendor\clink\clink.bat" history +:: ) set initialConfig=