1
0
mirror of https://github.com/skywind3000/z.lua synced 2026-03-22 15:49:47 +00:00

2 Commits

Author SHA1 Message Date
skywind3000
38c1741f4f prevent writing file racing 2019-03-01 14:45:03 +08:00
skywind3000
fdff5c5e1e commit new README.md 2019-02-28 12:24:20 +08:00
2 changed files with 13 additions and 6 deletions

View File

@@ -458,6 +458,7 @@ As you see, z.lua is the fastest one and requires less resource.
## History
- 1.5.10 (2019-03-01): Prevent writing file racing.
- 1.5.9 (2019-02-25): `z -b` should not match current directory (close #56).
- 1.5.8 (2019-02-21): new `$_ZL_FZF_HEIGHT` to control `--height` parameter in fzf.
- 1.5.7 (2019-02-21): rename `$_ZL_FZF_SORT` to `$_ZL_INT_SORT` it will affect both `-i` and `-I`.
@@ -492,6 +493,7 @@ As you see, z.lua is the fastest one and requires less resource.
This project needs help for the tasks below:
- [ ] Support csh/tcsh.
- [ ] Completion: Actually I got little knowledge in completion, and need help to improve it.
- [ ] Completion: Implement completion for Power Shell.
- [ ] Completion: Implement completion for different arguments.

17
z.lua
View File

@@ -4,7 +4,7 @@
-- z.lua - a cd command that learns, by skywind 2018, 2019
-- Licensed under MIT license.
--
-- Version 1.5.9, Last Modified: 2019/02/25 23:17
-- Version 1.5.10, Last Modified: 2019/03/01 13:08
--
-- * 10x faster than fasd and autojump, 3x faster than z.sh
-- * available for posix shells: bash, zsh, sh, ash, dash, busybox
@@ -960,11 +960,16 @@ function data_save(filename, M)
fp = io.open(filename, 'w')
else
math.random_init()
tmpname = filename .. '.' .. tostring(os.time())
tmpname = tmpname .. math.random_string(8)
local rnd = os.getenv('_ZL_RANDOM')
tmpname = tmpname .. '' .. (rnd and rnd or '')
-- print('tmpname: '..tmpname)
while true do
tmpname = filename .. '.' .. tostring(os.time())
tmpname = tmpname .. math.random_string(8)
local rnd = os.getenv('_ZL_RANDOM')
tmpname = tmpname .. '' .. (rnd and rnd or '')
if not os.path.exists(tmpname) then
-- print('tmpname: '..tmpname)
break
end
end
fp = io.open(tmpname, 'w')
end
if fp == nil then