aboutsummaryrefslogtreecommitdiff
path: root/runtime/autoload/zip.vim
Commit message (Collapse)AuthorAge
* feat(options)!: disallow setting hidden options #28400Famiu Haque2024-11-04
| | | | | | | | | | | | | | | | | Problem: There are three different ways of marking an option as hidden, `enable_if = false`, `hidden = true` and `immutable = true`. These also have different behaviors. Options hidden with `enable_if = false` can't have their value fetched using Vim script or the API, but options hidden with `hidden = true` or `immutable = true` can. On the other hand, options with `hidden = true` do not error when trying to set their value, but options with `immutable = true` do. Solution: Remove `enable_if = false`, remove the `hidden` property for options, and use `immutable = true` to mark an option as hidden instead. Also make hidden option variable pointers always point to the default value, which allows fetching the value of every hidden option using Vim script and the API. This does also mean that trying to set a hidden option will now give an error instead of just being ignored.
* vim-patch:bc29ea6: runtime(zip): simplify condition to detect MS-Windows ↵zeertzjq2024-08-22
| | | | | | | | | (#30115) related: vim/vim#15519 https://github.com/vim/vim/commit/bc29ea62861052b35781031173a67d7d577be068 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:9.1.0686: zip-plugin has problems with special characters (#30108)zeertzjq2024-08-20
| | | | | | | | | | | | | | | | | | | | | | | | | Problem: zip-plugin has problems with special characters (user202729) Solution: escape '*?[\' on Unix and handle those chars a bit differently on MS-Windows, add a test, check before overwriting files runtime(zip): small fixes for zip plugin This does the following: - verify the unzip plugin is executable when loading the autoload plugin - handle extracting file names with '[*?\' in its name correctly by escaping those characters for the unzip command (and handle those characters a bit differently on MS-Windows, since the quoting is different) - verify, that the extract plugin is not overwriting a file (could cause a hang, because unzip asking for confirmation) - add a test zip file which contains those special file names fixes: vim/vim#15505 closes: vim/vim#15519 https://github.com/vim/vim/commit/7790ea0c680a9f951a86066e5940ec16b2333c9a Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:afea6b9: runtime(zip): use defer to restore old settingszeertzjq2024-08-07
| | | | | | | | | | Problem: RestoreOpts() plugin called too often Solution: use :defer to have the RestoreOpts() function called when the function returns automatically https://github.com/vim/vim/commit/afea6b946827e964271eb19579946a7f88d2f329 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:8d52926: runtime(zip): add a generic Message functionzeertzjq2024-08-07
| | | | | | | | | | Problem: the zip plugin duplicates a lot of code for displaying warnings/errors Solution: refactor common code into a generic Mess() function https://github.com/vim/vim/commit/8d52926857ec7f08a9bee8f96470748cecf58002 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:a336d8f: runtime(zip): increment base version of zip pluginzeertzjq2024-08-07
| | | | | | | | | Problem: the zip plugin version is still v33 Solution: increment the version to v34 https://github.com/vim/vim/commit/a336d8f21e4cce877e23d47db238801a5a406992 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:19636be: runtime(zip): refactor save and restore of optionszeertzjq2024-08-07
| | | | | | | | | | | | | Problem: zip plugin has no way to set/restore option values Solution: Add the SetSaneOpts() and RestoreOpts() functions, so options that cause issues are set to sane values and restored back to their initial values later on. (this affects the 'shellslash' option on windows, which also changes how the shellescape() function works) https://github.com/vim/vim/commit/19636be55e023cb726389107e9e7d62049b6fd58 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:33836d3: runtime(zip): remove test for fnameescapezeertzjq2024-08-07
| | | | | | | | | | Problem: zip plugin tests for fnameescape() function Solution: Remove the check, fnameescape() has been available since 7.1.299, it should nowadays always be available https://github.com/vim/vim/commit/33836d38b82aa926a2a2b3f945a0139f373f7e56 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:120c0dd: runtime(zip): use :echomsg instead of :echozeertzjq2024-08-07
| | | | | | | | | | Problem: zip plugin uses :echo which does not store messages Solution: use :echomsg instead of :echo so that messages are stored in the message history https://github.com/vim/vim/commit/120c0dd815fa3b44df0fa477f7f3313e4a69c652 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:a63f66e: runtime(zip): clean up and remove commentszeertzjq2024-08-07
| | | | | | | | | Problem: zip plugin contains a lot of comments from the decho plugin Solution: Clean up and remove un-used comments https://github.com/vim/vim/commit/a63f66e953d811bb6d044e92fe338e533ad94ff5 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:f0e9b72: runtime(zip): Fix for FreeBSD's unzip commandzeertzjq2024-08-06
| | | | | | | | | | | | | | | | | | | Problem: Cannot browse zipfiles with the unzip program found on FreeBSD. Solution: Adjust command arguments. Unzip found on FreeBSD complain about missing argument with the zipinfo modifier '-Z -1'. Joining arguments seems to work for both implementations. Also change `:sil!` to `:sil` so that error messages are properly reported (per review of Christian Brabandt). related: vim/vim#15411 https://github.com/vim/vim/commit/f0e9b72c8fdd47b9b410a11edf7479953cb2aed9 Co-authored-by: Damien <141588647+xrandomname@users.noreply.github.com>
* vim-patch:c5bdd66: runtime(zip): escape '[' on Unix as wellChristian Clason2024-08-04
| | | | | | | | | | | | | | | | | | Problem: After 6f1cbfc9ab483a09877e153ad130164875c40b1d fnameescape() is no longer called on the name of the file to be extracted. However, while spaces indeed don't need to be escaped, unzip treats '[' as a wildcard character, so it need to be escaped. Solution: Escape '[' on both MS-Windows and Unix. From the docs it seems '*' and '?' also need escaping, but they seem to actually work without escaping. fixes: neovim/neovim#29977 closes: vim/vim#15427 https://github.com/vim/vim/commit/c5bdd66558b14f04424a22d9714a9b7d0c277dac Co-authored-by: zeertzjq <zeertzjq@outlook.com>
* vim-patch:c4be066: runtime(zip): Opening a remote zipfile don't workChristian Clason2024-07-31
| | | | | | | | | | | | | | Problem: Opening a zipfile from HTTP gives an empty buffer. Solution: Ensure that the magic bytes check does not skip protocol processing. Also use readblob() and remove commented out lines. closes: vim/vim#15396 https://github.com/vim/vim/commit/c4be066817d560c870f67f1593630cfb5b39dfc8 Co-authored-by: Damien <141588647+xrandomname@users.noreply.github.com>
* vim-patch:2cad941: runtime(zip): Use delete() for deleting directoryChristian Clason2024-07-25
| | | | | | | | | | This is safer because we don't invoke the shell. closes: vim/vim#15335 https://github.com/vim/vim/commit/2cad941dc0cb57bca577160eb3a349de2e667bcd Co-authored-by: Damien <141588647+xrandomname@users.noreply.github.com>
* vim-patch:38ce71c: runtime(zip): correctly extract file from zip browserChristian Clason2024-07-24
| | | | | | | | | | | Problem: Enter 'x' in zip browser fail with E121 Solution: Fix typo in zip#Extract() closes: vim/vim#15321 https://github.com/vim/vim/commit/38ce71c1c323716cc4b130dbb3e8837a8b9a710b Co-authored-by: Damien <141588647+xrandomname@users.noreply.github.com>
* vim-patch:52f2ff0: runtime(zip): revert unintended change to zip#Write()zeertzjq2024-06-16
| | | | | | | | | This was wrongly included as of patch 1c6734291295bf8aa39577840b40bb because apparently I messed up the use of git apply :/ https://github.com/vim/vim/commit/52f2ff03636fe120f3c9d00e9b3cdc1da251bd73 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:1c67342: runtime(zip): MS-Windows: handle files with spaces properlyzeertzjq2024-06-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change does the following 3 things: 1) non need to quote the file to be extracted The zipfile plugin used to quote and fnameescape() the path to the file to be extracted. However testing with unzip showed, that while this works on Linux on Windows you shall not escape the blanks in filenames. As long as the pathname is properly quoted, this words on Linux and Windows. 2) reset shellslash (MS-Windows only) When shellslash is set, filenames to the zip archive will be forward quoted. However since the filename is eventually handed over to the unzip command, we need to make sure to use native paths so that the command will understand what file to open. Therefore, if shellslash is set (and the shell is cmd.exe), replace any forward slashes by the expected backslashes 3) style: Use tabs for the Header, remove a few comments in the s:Escape() and zip#read() functions fixes: vim/vim#14998 https://github.com/vim/vim/commit/1c6734291295bf8aa39577840b40bb21a7f27120 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:f9ca139e3aa1 (#27554)zeertzjq2024-02-21
| | | | | | | runtime(misc): announce adoption of various runtime files https://github.com/vim/vim/commit/f9ca139e3aa12dd03177ebba5eedcee4f0836f27 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:cd8a3eaf5348Christian Clason2023-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(dist): centralize safe executable check and add vim library (vim/vim#13413) Follow up to 816fbcc26 (patch 9.0.1833: [security] runtime file fixes, 2023-08-31) and f7ac0ef50 (runtime: don't execute external commands when loading ftplugins, 2023-09-06). This puts the logic for safe executable checks in a single place, by introducing a central vim library, so all filetypes benefit from consistency. Notable changes: - dist#vim because the (autoload) namespace for a new runtime support library. Supporting functions should get documentation. It might make life easier for NeoVim devs to make the documentation a new file rather than cram it into existing files, though we may want cross-references to it somewhere… - The gzip and zip plugins need to be opted into by enabling execution of those programs (or the global plugin_exec). This needs documentation or discussion. - This fixes a bug in the zig plugin: code setting s:tmp_cwd was removed in f7ac0ef50 (runtime: don't execute external commands when loading ftplugins, 2023-09-06), but the variable was still referenced. Since the new function takes care of that automatically, the variable is no longer needed. https://github.com/vim/vim/commit/cd8a3eaf5348feacfecab4b374b7ea4ce6a97422 Co-authored-by: D. Ben Knoble <ben.knoble+github@gmail.com>
* vim-patch:67c951df4c95Christian Clason2023-09-07
| | | | | | | | | | | | | | | | | runtime(ftplugin): allow to exec if curdir is in PATH In case the current directory is present as valid $PATH entry, it is OK to call the program from it, even if vim curdir is in that same directory. (Without that patch, for instance, you will not be able to open .zip files while your current directory is /bin) closes: vim/vim#13027 https://github.com/vim/vim/commit/67c951df4c95981c716eeedb1b102d9668549e65 Co-authored-by: Anton Sharonov <anton.sharonov@gmail.com>
* vim-patch:9.0.1833: [security] runtime file fixes (#24969)zeertzjq2023-09-01
| | | | | | | | | | | | | | | | | | | | | | Problem: runtime files may execute code in current dir Solution: only execute, if not run from current directory The perl, zig and ruby filetype plugins and the zip and gzip autoload plugins may try to load malicious executable files from the current working directory. This is especially a problem on windows, where the current directory is implicitly in your $PATH and windows may even run a file with the extension `.bat` because of $PATHEXT. So make sure that we are not trying to execute a file from the current directory. If this would be the case, error out (for the zip and gzip) plugins or silently do not run those commands (for the ftplugins). This assumes, that only the current working directory is bad. For all other directories, it is assumed that those directories were intentionally set to the $PATH by the user. https://github.com/vim/vim/commit/816fbcc262687b81fc46f82f7bbeb1453addfe0c Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:71badf9547e8 (#23285)Christian Clason2023-04-23
| | | | | | | Update runtime files https://github.com/vim/vim/commit/71badf9547e8f89571b9a095183671cbb333d528 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* vim-patch:519cc559b08b (#16340)Christian Clason2021-11-17
| | | | Update runtime files https://github.com/vim/vim/commit/519cc559b08b800edc429688aece7ad6a00d41eb
* vim-patch:6c391a74fe90 (#15654)Christian Clason2021-09-13
| | | | | | | | | | | Update runtime files https://github.com/vim/vim/commit/6c391a74fe90190796ca0b0c010112948a6e75d7 omit autoload/getscript.vim skip doc/eval.txt (needs 8.2.2468) skip doc/various.txt (needs 8.2.3400) (typofixes courtesy of @dundargoc)
* vim-patch:cb80aa2d53e5Jan Edmund Lazo2021-05-01
| | | | | | | | | | | Update runtime files. https://github.com/vim/vim/commit/cb80aa2d53e56d3aba3b3c439fb467f29a750c5e Omit runtime/doc/tabpage.txt. Patch v8.2.1401 is not ported yet. Port optwin.vim changes without gettext(). Patch v8.2.1544 is not ported yet.
* vim-patch:8024f9363683Jan Edmund Lazo2021-04-27
| | | | | | | Update runtime files. https://github.com/vim/vim/commit/8024f936368336241406137a2fa78ed5ee9000a6 Omit "modifyOtherKeys" changes.
* vim-patch:2963456ff2b7Jan Edmund Lazo2021-04-27
| | | | | Update runtime files. https://github.com/vim/vim/commit/2963456ff2b740244b3a064785fe681b1998d75e
* vim-patch:3e496b0ea319Justin M. Keyes2017-04-28
| | | | | | | | | | | Updated runtime files. https://github.com/vim/vim/commit/3e496b0ea31996b665824f45664dee1fdd73c4d0 NA patches: vim-patch:8.0.0015 vim-patch:8.0.0016 vim-patch:177778575148
* vim-patch:d07969093a9bJustin M. Keyes2017-04-28
| | | | | | Updated runtime files. https://github.com/vim/vim/commit/d07969093a9b3051511c478d71c36de6fc33c0d6
* re-integrate runtime/ vim-patch:0 #938Justin M. Keyes2014-07-29
Vim runtime files based on 7.4.384 / hg changeset 7090d7f160f7 Excluding: Amiga icons (*.info, icons/) doc/hangulin.txt tutor/ spell/ lang/ (only used for menu translations) macros/maze/, macros/hanoi/, macros/life/, macros/urm/ These were used to test vi compatibility. termcap "Demonstration of a termcap file (for the Amiga and Archimedes)" Helped-by: Rich Wareham <rjw57@cam.ac.uk> Helped-by: John <john.schmidt.h@gmail.com> Helped-by: Yann <yann@yann-salaun.com> Helped-by: Christophe Badoit <c.badoit@lesiteimmo.com> Helped-by: drasill <github@tof2k.com> Helped-by: Tae Sandoval Murgan <taecilla@gmail.com> Helped-by: Lowe Thiderman <lowe.thiderman@gmail.com>