(toppers-users 2748) jspカーネルのcfgディレクトリのソースについて
Mitsuyasu Ichimura
mitsuyasu @ stellae.jp
2008年 5月 7日 (水) 17:02:15 JST
こんにちは、市村と申します。
cfgディレクトリのソースをgcc4にてコンパイルするとワーニングが出るので
少々調べてみました。
その結果、long* を int* に変換している箇所があり、これだと正しい値が変
数に入らないのでは?と思い、次のとおりソースを改変しました。
diff -cr jsp.orig/cfg/Makefile jsp/cfg/Makefile
*** jsp.orig/cfg/Makefile Sat Dec 6 17:46:43 2003
--- jsp/cfg/Makefile Fri May 2 21:00:15 2008
***************
*** 104,109 ****
--- 104,110 ----
rm -f cfg chk
rm -f container.txt container.xml kernel_cfg.c kernel_id.h
rm -f settings.dat settings.txt
+ rm -f Makefile.depend
rm -f cfg.exe chk.exe
cleandep:
diff -cr jsp.orig/cfg/base/directorymap.cpp jsp/cfg/base/directorymap.cpp
*** jsp.orig/cfg/base/directorymap.cpp Mon Dec 15 16:32:13 2003
--- jsp/cfg/base/directorymap.cpp Fri May 2 20:58:17 2008
***************
*** 805,821 ****
str ++;
if(*str == 'x' || *str == 'X')
{
! if(sscanf(str+1, "%ux", (int *)&work) == 0)
return default_value;
}else
if(*str != '\x0')
{
! if(sscanf(str, "%o", (int *)&work) == 0)
return default_value;
}else
return 0;
}else
! if(sscanf(str, "%d", (int *)&work) == 0)
return default_value;
if(minus)
--- 805,821 ----
str ++;
if(*str == 'x' || *str == 'X')
{
! if(sscanf(str+1, "%lx", &work) == 0)
return default_value;
}else
if(*str != '\x0')
{
! if(sscanf(str, "%lo", &work) == 0)
return default_value;
}else
return 0;
}else
! if(sscanf(str, "%ld", &work) == 0)
return default_value;
if(minus)
この改変で不都合が出るでしょうか?詳しい方のご教示をお願いいたしたく、
メールしました。よろしくお願いいたします。
-=-=-=-=-=-=-=-=-=-=-=-=-
Mitsuyasu Ichimura
mitsuyasu @ stellae.jp
-=-=-=-=-=-=-=-=-=-=-=-=-