manifest.c: ensure realloc_if_full() returns 1 or 0
This fixes an MSVC 2008 warning that I don't see with gcc 4.6.3-2:
warning C4047: 'return' :
'bool' differs in levels of indirection from 'line *'
More importantly, the truncation from pointer to 'unsigned char' would have
returned 0 if self->lines pointed to an address divisible by 0xFF, which causes
find_lines() to return MANIFEST_OOM. I was able to cause this to happen in a
trivial program with the gcc compiler.
$ for i in aaa zzz; do
> hg init t
> cd t
>
> echo
> echo "-- With $i"
>
> touch file
> hg add file
> hg ci -m "Add"
>
> hg cp file $i
> hg ci -m "a -> $i"
>
> hg cp $i other-file
> echo "different" >> $i
> hg ci -m "$i -> other-file"
>
> hg cp other-file somename
>
> echo "Status":
> hg st -C
> echo
> echo "Diff:"
> hg diff -g
>
> cd ..
> rm -rf t
> done
-- With aaa
Status:
A somename
other-file
Diff:
diff --git a/other-file b/somename
copy from other-file
copy to somename
-- With zzz
Status:
A somename
other-file
Diff:
diff --git a/other-file b/somename
copy from other-file
copy to somename