Merge commit '39cf063480f6a378dadc802c174e96112c38c0c0'
This commit is contained in:
commit
21df7db2b2
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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));
|
||||
|
|
Loading…
Reference in New Issue