Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/17/84; site godot.UUCP Path: utzoo!watmath!clyde!cbosgd!ihnp4!godot!massar From: massar@godot.UUCP (J.P. Massar) Newsgroups: net.emacs Subject: CCA Emacs Elisp bug fix Message-ID: <1135@godot.UUCP> Date: Sun, 3-Mar-85 13:48:58 EST Article-I.D.: godot.1135 Posted: Sun Mar 3 13:48:58 1985 Date-Received: Mon, 4-Mar-85 20:41:29 EST Distribution: net Organization: Thinking Machines, Cambridge, MA Lines: 56 Problem: Doubly (or more) nested MAP calls do not work. (just MAP, not MAPCAR, MAPCAN, etc). Fix: In the file/elisp/seq.c: *** oldseq.c Sun Mar 3 13:26:30 1985 --- seq.c Sun Mar 3 13:27:41 1985 *************** *** 822,827 } else if (is_null) { min_len = 0; continue; } else { --- 822,828 ----- } else if (is_null) { min_len = 0; + ui[j-3] = -1; continue; } else { *************** *** 888,894 rval = basic_function(BF_NREVERSE,1); } ! abe_all_free_seq(); Pop_Elisp_Val; /* pop the function object */ --- 889,896 ----- rval = basic_function(BF_NREVERSE,1); } ! for (i = 0; i < nsequences; i++) ! if (ui[i] >= 0) abd_free_seq(ui[i]); Pop_Elisp_Val; /* pop the function object */ Also, the defined constant MAXSEQ in the file seq.h should be changed from 4 to something more reasonable, like 10. --------------------------------------------------------------------------- Actually, the entire iteration mechanism over sequences should be rewritten, but the above fix at least fixes the most obvious problem with it. -- -- JP Massar, Thinking Machines Corporation, Cambridge, MA -- ihnp4!godot!massar -- massar@cca-unix