src/emacs.c

モロな名前なのでこれがメインのプログラムだろうとあたりをつけて読み始める。全部で2500行ほど。構成は以下の通り。
Lisp_Objectという構造体がいたるところに散見できる。「Emacsの真骨頂はLisp拡張にある」みたいなことをどこかで聞いたことがあるので、確かにそうなのかもと思った。とりあえずsrcフォルダ内にターゲットを決めて読んでいく。grep検索できると便利なのでいっそ秀丸が使えるWindowsにソースを持ってこようかと考えたがそれも邪道だろうと思いやめた。
地道にPerlでツールを作ります。Emacsは基本的なコマンドとquery-replace-regexpしか知りません。。
ifdefの嵐を見ていると気持ちが萎えてくるのでFreeBSD環境に決めうちしてemacs.cを整理するのが吉だろうか。

ヘッダ類の定義

SIGTYPE fatal_erro_signal(sig)

static void init_cmdargs(argc, argv, skip_args)
static int argmatch(argv, argc, sstr, lstr, minlen, valptr, skipptr)
static void malloc_initialize_hook()
char * bug_reporting_address()

int main(argc, argv)

struct standard_args
struct standard_args standard_args[]

static void sort_args(argc, argv)

DEFUN("kill-emacs", Fkill_emacs, Skill_emacs, 0, 1, "P", doc)
void shut_down_emacs(sig, no_x, stuff)

DEFUN("dump-emacs-data", Fdump_emacs_data, Sdump_emacs_data, 1, 1, 0, doc)
DEFUN("dump-emacs", Fdump_emacs, Sdump_emacs, 2, 2, 0, doc)

void synchronize_system_time_locate()