現代用語の基礎知識って知らん間にずいぶんコンパクトになっちゃったのねえ。
書店で見かけてちょっと驚いた。
新語・流行語を加えてページ数が増加しており、本のサイズ自体も創刊時のB5判から1960年以降はA5判に、1972年からB5判に拡大。2005年からA5判増ページとなったが、創刊65年目の 2013年版では、A5判(通常版)とB5判(拡大版)が大小並んでリリースされている。
(現代用語の基礎知識 - Wikipedia)
へー。通常版だけみたっぽいな。
長らく一社独占の状況であったが、1986年11月17日に集英社から『イミダス 1987年版』、1989年11月17日に朝日新聞社から『知恵蔵 1990年版』と同様の本が刊行されるようになった。ただし、両者とも2006年11月発行の2007年版を最後に休刊となり、一社独占に戻った。
一般書を探す | 歴史と教科書の山川出版社
最近、偶然このシリーズの存在を知ったのだけど
取り上げている人物が中々面白い。
gawk のソースコード眺めてたら意外なところが変わってた。
4.1.3
/* efwrite --- like fwrite, but with error checking */
static void
efwrite(const void *ptr,
size_t size,
size_t count,
FILE *fp,
const char *from,
struct redirect *rp,
bool flush)
{
errno = 0;
if (rp != NULL) {
if (rp->output.gawk_fwrite(ptr, size, count, fp, rp->output.opaque) != count)
goto wrerror;
} else if (fwrite(ptr, size, count, fp) != count)
goto wrerror;
if (flush
&& ((fp == stdout && output_is_tty)
|| (rp != NULL && (rp->flag & RED_NOBUF) != 0))) {
if (rp != NULL) {
rp->output.gawk_fflush(fp, rp->output.opaque);
if (rp->output.gawk_ferror(fp, rp->output.opaque))
goto wrerror;
} else {
fflush(fp);
if (ferror(fp))
goto wrerror;
}
}
return;
wrerror:
/* die silently on EPIPE to stdout */
if (fp == stdout && errno == EPIPE)
gawk_exit(EXIT_FATAL);
/* otherwise die verbosely */
fatal(_("%s to \"%s\" failed (%s)"), from,
rp ? rp->value : _("standard output"),
errno ? strerror(errno) : _("reason unknown"));
}
引数で渡されてくる redirect 構造体、4.0.0 にもあるんだけど
4.0.0
/* efwrite --- like fwrite, but with error checking */
static void
efwrite(const void *ptr,
size_t size,
size_t count,
FILE *fp,
const char *from,
struct redirect *rp,
int flush)
{
errno = 0;
if (fwrite(ptr, size, count, fp) != count)
goto wrerror;
if (flush
&& (output_is_tty
|| (rp != NULL && (rp->flag & RED_NOBUF)))) {
fflush(fp);
if (ferror(fp))
goto wrerror;
}
return;
wrerror:
fatal(_("%s to \"%s\" failed (%s)"), from,
rp ? rp->value : _("standard output"),
errno ? strerror(errno) : _("reason unknown"));
}
構造体の中身が違う。
4.0.0
/* structure used to dynamically maintain a linked-list of open files/pipes */
struct redirect {
unsigned int flag;
# define RED_FILE 1
# define RED_PIPE 2
# define RED_READ 4
# define RED_WRITE 8
# define RED_APPEND 16
# define RED_NOBUF 32
# define RED_USED 64 /* closed temporarily to reuse fd */
# define RED_EOF 128
# define RED_TWOWAY 256
# define RED_PTY 512
# define RED_SOCKET 1024
# define RED_TCP 2048
char *value;
FILE *fp;
FILE *ifp; /* input fp, needed for PIPES_SIMULATED */
IOBUF *iop;
int pid;
int status;
struct redirect *prev;
struct redirect *next;
const char *mode;
};
/* structure used to dynamically maintain a linked-list of open files/pipes */
struct redirect {
unsigned int flag;
# define RED_FILE 1
# define RED_PIPE 2
# define RED_READ 4
# define RED_WRITE 8
# define RED_APPEND 16
# define RED_NOBUF 32
# define RED_USED 64 /* closed temporarily to reuse fd */
# define RED_EOF 128
# define RED_TWOWAY 256
# define RED_PTY 512
# define RED_SOCKET 1024
# define RED_TCP 2048
char *value;
FILE *ifp; /* input fp, needed for PIPES_SIMULATED */
IOBUF *iop;
int pid;
int status;
struct redirect *prev;
struct redirect *next;
const char *mode;
awk_output_buf_t output;
};
最後の awk_output_buf_t が増えてる。
mingw の setlocale 周りわけわかんねえ○| ̄|_