diff options
author | Roman Perepelitsa <roman.perepelitsa@gmail.com> | 2020-11-24 14:32:19 +0300 |
---|---|---|
committer | Roman Perepelitsa <roman.perepelitsa@gmail.com> | 2020-11-24 14:32:19 +0300 |
commit | 21df7db2b2d51526abad93e9415ce91823c808a0 (patch) | |
tree | c51ba532154639a6945272d640b60bd24d57367c /gitstatus | |
parent | 31ede3c1d348783239dbce37ae4123ae439d99a8 (diff) | |
parent | 39cf063480f6a378dadc802c174e96112c38c0c0 (diff) |
Merge commit '39cf063480f6a378dadc802c174e96112c38c0c0'
Diffstat (limited to 'gitstatus')
-rw-r--r-- | gitstatus/Makefile | 5 | ||||
-rw-r--r-- | gitstatus/src/arena.h | 4 | ||||
-rw-r--r-- | gitstatus/src/dir.cc | 7 |
3 files changed, 11 insertions, 5 deletions
diff --git a/gitstatus/Makefile b/gitstatus/Makefile index d665af1f..b217d24b 100644 --- a/gitstatus/Makefile +++ b/gitstatus/Makefile @@ -2,6 +2,7 @@ APPNAME ?= gitstatusd OBJDIR ?= obj CXX ?= g++ +ZSH ?= $(shell command -v zsh 2> /dev/null) VERSION ?= $(shell . ./build.info && printf "%s" "$$gitstatus_version") @@ -33,4 +34,8 @@ $(OBJDIR)/%.o: src/%.cc Makefile build.info | $(OBJDIR) clean: rm -rf -- $(OBJDIR) +pkg: + GITSTATUS_DAEMON= GITSTATUS_CACHE_DIR=$(PWD)/usrbin ./install -f + $(or $(ZSH),:) -fc 'for f in *.zsh install; do zcompile -R -- $$f.zwc $$f || exit; done' + -include $(OBJS:.o=.dep) diff --git a/gitstatus/src/arena.h b/gitstatus/src/arena.h index 0bad0bfa..569833ca 100644 --- a/gitstatus/src/arena.h +++ b/gitstatus/src/arena.h @@ -37,7 +37,7 @@ namespace gitstatus { // // // Donates a block to the arena. When the time comes, it'll be freed with // // free(p, size, userdata). -// void Donate(void* p, size_t size, void* userdata, void(*free)(void*, void*)); +// void Donate(void* p, size_t size, void* userdata, void(*free)(void*, size_t, void*)); class Arena { public: struct Options { @@ -62,7 +62,7 @@ class Arena { // // void* userdata; // void (*alloc)(size_t size, size_t alignment, void* userdata); - // void (*free)(size_t size, void* userdata); + // void (*free)(void* p, size_t size, void* userdata); }; // Requires: opt.min_block_size <= opt.max_block_size. diff --git a/gitstatus/src/dir.cc b/gitstatus/src/dir.cc index 1817e1d3..e7ce7141 100644 --- a/gitstatus/src/dir.cc +++ b/gitstatus/src/dir.cc @@ -211,14 +211,15 @@ char* DirenvConvert(Arena& arena, struct dirent& ent, bool do_convert) { bool ListDir(int dir_fd, Arena& arena, std::vector<char*>& entries, bool precompose_unicode, bool case_sensitive) { - VERIFY((dir_fd = dup(dir_fd)) >= 0); + entries.clear(); + dir_fd = dup(dir_fd); + if (dir_fd < 0) return false; DIR* dir = fdopendir(dir_fd); if (!dir) { CHECK(!close(dir_fd)) << Errno(); - return -1; + return false; } ON_SCOPE_EXIT(&) { CHECK(!closedir(dir)) << Errno(); }; - entries.clear(); while (struct dirent* ent = (errno = 0, readdir(dir))) { if (Dots(ent->d_name)) continue; entries.push_back(DirenvConvert(arena, *ent, precompose_unicode)); |