encoding: improve handling of buggy getpreferredencoding() on Mac OS X
Prior to version 2.7, calling locale.getpreferredencoding() would
always return 'mac-roman' on Mac OS X. Previously, this was handled by
a call to locale.setlocale(). Unfortunately, Python 2.6.5 and older
have a bug where isspace() would incorrectly report True for 0x85 and
0xa0 after such a call.
In order to fix this, we replace the previous _encodingfixup mapping
to an _encodingfixers mapping. Rather than mapping encodings to their
replacement, it maps them to a function returning the
replacement. This allows us to provide an simplified implementation of
getpreferredencoding() which extracts the expected encoding and
restores the locale.
This fix is based on a patch originally submitted by Martijn Pieters
as well as feedback from Brodie Rao.
#!/bin/sh
"$TESTDIR/hghave" inotify || exit 80
hg init
touch a b c d e f
echo "[extensions]" >> $HGRCPATH
echo "inotify=" >> $HGRCPATH
echo inserv1
echo % inserve
hg inserve -d --pid-file=hg.pid 2>&1
cat hg.pid >> "$DAEMON_PIDS"
hg ci -Am m
# let the daemon finish its stuff
sleep 1
#Need to test all file opperations
hg rm a
rm b
echo c >> c
touch g
hg add g
hg mv e h
hg status
sleep 1
echo "Are we able to kill the service? if not, the service died on some error"
kill `cat hg.pid`