##// END OF EJS Templates
windows: fix incorrect detection of broken pipe when writing to pager...
windows: fix incorrect detection of broken pipe when writing to pager Paging e.g. hg incoming on Windows and quitting the pager before the output is consumed will print 'abort: Invalid argument'. This is because the windows error 0xE8 (ERROR_NO_DATA) is mapped to EINVAL even though it is documented as 'The pipe is being closed'. Note that this fix assumes that Windows' last error code is still valid in the exception handler. It works correctly in all my tests. A simpler fix would be to just map EINVAL to EPIPE, like was done is flush previously, but that would be less precise. This error was not observed previously, when pager was an extension.

File last commit:

r34656:01c57eeb default
r38575:3a0f322a stable
Show More
Makefile
40 lines | 823 B | text/x-makefile | MakefileLexer
Yuya Nishihara
chg: import frontend sources...
r28060 TARGET = chg
Jun Wu
chg: add procutil.h...
r30693 SRCS = chg.c hgclient.c procutil.c util.c
Yuya Nishihara
chg: import frontend sources...
r28060 OBJS = $(SRCS:.c=.o)
CFLAGS ?= -O2 -Wall -Wextra -pedantic -g
Mathias De Maré
chg: define _GNU_SOURCE to allow CentOS 5 compilation...
r33666 CPPFLAGS ?= -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE
Yuya Nishihara
chg: import frontend sources...
r28060 override CFLAGS += -std=gnu99
Jun Wu
chg: allows default hg path to be overridden...
r28605 ifdef HGPATH
override CPPFLAGS += -DHGPATH=\"$(HGPATH)\"
endif
Yuya Nishihara
chg: import frontend sources...
r28060
DESTDIR =
PREFIX = /usr/local
MANDIR = $(PREFIX)/share/man/man1
.PHONY: all
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $(LDFLAGS) -o $@ $(OBJS)
Jun Wu
chg: add procutil.h...
r30693 chg.o: hgclient.h procutil.h util.h
Jun Wu
chg: handle pager request client-side...
r30738 hgclient.o: hgclient.h procutil.h util.h
Jun Wu
chg: add procutil.h...
r30693 procutil.o: procutil.h util.h
Yuya Nishihara
chg: import frontend sources...
r28060 util.o: util.h
.PHONY: install
install: $(TARGET)
muxator
build: chg build was failing when the base directory contained spaces
r34625 install -d "$(DESTDIR)$(PREFIX)"/bin
install -m 755 "$(TARGET)" "$(DESTDIR)$(PREFIX)"/bin
install -d "$(DESTDIR)$(MANDIR)"
install -m 644 chg.1 "$(DESTDIR)$(MANDIR)"
Yuya Nishihara
chg: import frontend sources...
r28060
.PHONY: clean
clean:
$(RM) $(OBJS)
.PHONY: distclean
distclean:
$(RM) $(OBJS) $(TARGET)