Subject: Re: git-rebase (1.5.0.6) errors

From: Jan Hudec <[email-masked]>
Date: Sun, 20 May 2007 14:43:45 +0200

On Fri, May 18, 2007 at 17:02:56 +0300, Ilpo Järvinen wrote:
> David Kastrup <[email-masked]> wrote:
> 
> > Only if size_t is a larger type than int (could be on x86-64 and alpha
> > architectures).  Other than that, this comparison would work.  Which
> > does not mean that this does not warrant fixing, but it is not
> > necessarily the cause of this problem.
> 
> ...sizeof(size_t) == sizeof(int) should hold...

Really?

$ cat test.c
#include <stdio.h>
int main(void)
{
    printf("sizeof(int) = %i\n", sizeof(int));
    printf("sizeof(long) = %i\n", sizeof(long));
    printf("sizeof(size_t) = %i\n", sizeof(size_t));
    return 0;
}
$ gcc -otest test.c
$ ./test
sizeof(int) = 4
sizeof(long) = 8
sizeof(size_t) = 8

Hm, it does not seem that sizeof(size_t) == sizeof(int).

$ uname -m
x86_64

Yes, this is a 64-bit system.

Anyway, comparing it with -1 is ALWAYS OK in spite of this!

$ cat test2.c
#include <stdio.h>
int main(void)
{
    size_t x = 0;
    --x;
    printf("x = 0x%lx\n", x);
    printf("(x == -1) = %i\n", (x == -1));
    return 0;
}
$ gcc -otest2 test2.c
$ ./test2
x = 0xffffffffffffffff
(x == -1) = 1

So at least with gcc that comparison is OK anyway. There has to be something
else that causes that problem.

> Anyway, if this has any relevance: I'm using non-utf system, and (as you 
> see) my surname has ä... The system was recently upgraded to git 1.5+ 
> which started to complain also about a missing i18n.commitencoding, 
> figured out that when I set it to utf8 (empty => defaults to it) and have 
> signed-off line (with native non-utf ä), I get that error...
> 
> ...and please, do not drop me from cc since I'm not subscribed...
> 
> -- 
>  i.
-- 
						 Jan 'Bulb' Hudec <[email-masked]>