[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][TOP]

Re: gnumeric patch


あかがきです。

On Thu, May 17, 2001 at 04:06:25PM +0900, Yukihiro Nakai wrote:
> gnumeric-0.61ですが、glib(1.2.9)がja.poのmsgstrの%?の順序をかえる表記を
> 理解できなくてSIGSEGVをおこすバグが発覚しています。

とりあえず、すげーバータリーに g_printf_string_upper_bound を
snprintf を使って文字数を数えるようにかえてみました...

guint
g_printf_string_upper_bound (const gchar* format,
                            va_list      args1)
{
       gchar *buffer=NULL;
       int buflen=1024;
       va_list args2;
       int retval;

       if(!format)
               return 1;

       while(TRUE){
               buffer=g_new0(char,buflen);
               G_VA_COPY (args2, args1);
               retval=vsnprintf (buffer,buflen, format, args2);
               va_end(args2);
               g_free(buffer);
               buflen+=1024;
               if(retval!=-1)
                       break;
       }
       printf("retval: %d\n",retval+1);
       return retval+1;
}

こげなかんじです。

> RHL7.1のgnumericでは列を挿入するとかならず死にます。FYIってことで。

とりあえず、死ななくはなったのですが...
まっとうな方法でなおせるかな。