namazu-dev(ring)


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

vsnprintf.c (Re: AC_REPLACE_FUNCS)



Satoru Takabayashi <satoru-t@xxxxxxxxxxxxxxxxxx> wrote:

>  memmove strcasecmp strncasecmp strchr strstr strdup vsnprintf
>
>あたりをもらってこようと思います。いかがでしょう?
>
># 野首さんが vsnprintf を導入したのをきっかけに気づきました。
># (IRIX 6.3 で make が通らなかった)

Ruby の missing/vsnprintf.c は BSD License なので

|  * 3. All advertising materials mentioning features or use of this software
|  *    must display the following acknowledgement:
|  *      This product includes software developed by the University of
|  *      California, Berkeley and its contributors.

という部分が気になります。

# そもそも advertising materials はどこまでを指すのだろう?

ほかに vsnprintf.c は存在しないかと探してみたところ、
gnome-1.0.40/gnome-libs-1.0.40/support/vsnprintf.c がありま
した。こちらは advertising materials うんぬんはありません。

ただ、mprotect() というめずらしい (?) 関数を使っているのが気
になります。手近のマシンで調べてみたところ、

  Linux + libc5.4.44
  SunOS 4.1.4-JL 2
  SunOS 5.5.1

には存在しました。 gnome でも使っているんだし、こちらの
vsnprintf.c を使おうかな?

あるいは (今はとりあえずそうしているんだけど)

    va_start(args, fmt);
  #ifdef HAVE_VSPRINTF
  #ifdef HAVE_VSNPRINTF
      vsnprintf(Dyingmessage, BUFSIZE, fmt, args);
  #else /* not HAVE_VSNPRINTF */
      vsprintf(Dyingmessage, fmt, args);
  #endif /* not HAVE_VSNPRINTF */
      strcpy(Dyingmessage, "Your system has no vsnprintf/vsprintf. ;-)\n");
  #endif /* not HAVE_VSPRINTF */
      va_end(args);

のようにしてお茶を濁すか。ご意見をくださいませ。

# C言語で portable な code を書くのは難しい…

   ...

ところで、File-MMagic/COPYING には

| * 3. All advertising materials mentioning features or use of this
| *    software must display the following acknowledgment:
| *    "This product includes software developed by the Apache Group
| *    for use in the Apache HTTP server project (http://www.apache.org/)."

とありますね。こういうのは好きじゃないなあ…。

  * BSD License Problem - GNU Project - Free Software Foundation (FSF)
    <http://www.gnu.org/philosophy/bsd.html>

-- Satoru Takabayashi