System: Elk version 3.0 Patch #: 1 Priority: high Description: src/type.c: o Fixed a bug that caused the generational garbage collector to crash. Thanks to Thomas DeWeese and Stephen F. May for pointing out the bug and for providing a solution. src/stab.c: o Added C++ static constructor/destructor names for SVR4.2. lib/unix/process.c: o Removed a spurious "+1000" from a call to getcwd() (I have no idea how it got there). lib/xm/scrolled-win.d: o Fixed a previous change to the `scrolled window' widget interface. (This change caused code using the scrolling-policy resource to break.) README: o Added availability information for the `unroff' program. Fix: From rn, say "| patch -p -N -d DIR", where DIR is the top of your Elk source directory tree. Outside of rn, say "cd DIR; patch -p -N *** 1.23 1995/08/15 11:41:49 --- src/type.c 1995/09/12 12:05:34 *************** *** 13,19 **** "0unbound", "0special", "0character", "1symbol", "1pair", "1environment", "1string", "1vector", "1primitive", "1compound", "1control-point", "1promise", "1port", "0end-of-file", "1autoload", ! "1macro", "1!!broken-heart!!", 0 }; Wrong_Type (x, t) Object x; register t; { --- 13,23 ---- "0unbound", "0special", "0character", "1symbol", "1pair", "1environment", "1string", "1vector", "1primitive", "1compound", "1control-point", "1promise", "1port", "0end-of-file", "1autoload", ! "1macro", "1!!broken-heart!!", ! #ifdef GENERATIONAL_GC ! "0align_8byte", "0freespace", ! #endif ! 0 }; Wrong_Type (x, t) Object x; register t; { *** 1.27 1995/08/15 11:41:49 --- src/stab.c 1995/09/19 14:30:33 *************** *** 41,46 **** --- 41,47 ---- }; static SYMPREFIX Init_Prefixes[] = { INIT_PREFIX, PR_EXTENSION, + "_GLOBAL_.I.", PR_CONSTRUCTOR, /* SVR4.2/g++ */ "__sti__", PR_CONSTRUCTOR, "_STI", PR_CONSTRUCTOR, "_GLOBAL_$I$", PR_CONSTRUCTOR, *************** *** 48,53 **** --- 49,55 ---- }; static SYMPREFIX Finit_Prefixes[] = { FINIT_PREFIX, PR_EXTENSION, + "_GLOBAL_.D.", PR_CONSTRUCTOR, "__std__", PR_CONSTRUCTOR, "_STD", PR_CONSTRUCTOR, "_GLOBAL_$D$", PR_CONSTRUCTOR, *** 1.14 1995/08/15 11:33:49 --- lib/unix/process.c 1995/08/25 10:37:41 *************** *** 288,294 **** Alloca(buf, char*, max); Disable_Interrupts; #ifdef GETCWD ! if (getcwd(buf, max+1000) == 0) { Saved_Errno = errno; Alloca_End; Enable_Interrupts; --- 288,294 ---- Alloca(buf, char*, max); Disable_Interrupts; #ifdef GETCWD ! if (getcwd(buf, max) == 0) { Saved_Errno = errno; Alloca_End; Enable_Interrupts; *** 1.2 1995/08/15 11:38:04 --- lib/xm/scrolled-win.d 1995/09/19 15:03:27 *************** *** 4,12 **** --- 4,25 ---- (prolog + ;;; Before the converter for scrollingPolicy was introduced (which wasn't + ;;; even necessary), the one provided by Xm was called and people were using + ;;; "AUTOMATIC" and "APPLICATION_DEFINED". Everything was fine. + ;;; + ;;; After the converter was introduced, code was required to use 'automatic + ;;; and 'application-defined instead. Thus the change broke existing code. + ;;; + ;;; As a temporary solution, I'm now adding AUTOMATIC etc. to the list of + ;;; legal values, but clearly some kind of concept is needed here... + "static SYMDESCR Scrolling_Syms[] = { { \"automatic\", XmAUTOMATIC }, { \"application-defined\", XmAPPLICATION_DEFINED }, + { \"AUTOMATIC\", XmAUTOMATIC }, /* see above */ + { \"APPLICATION_DEFINED\", XmAPPLICATION_DEFINED }, + { \"application_defined\", XmAPPLICATION_DEFINED }, { 0, 0} };") *************** *** 13,16 **** (define-widget-class 'scrolled-window 'xmScrolledWindowWidgetClass) (scheme->c 'scrollingPolicy ! " return (XtArgVal)Symbols_To_Bits (x, 0, Scrolling_Syms);") --- 26,30 ---- (define-widget-class 'scrolled-window 'xmScrolledWindowWidgetClass) (scheme->c 'scrollingPolicy ! " if (TYPE(x) == T_String) x = P_String_To_Symbol(x); ! return (XtArgVal)Symbols_To_Bits (x, 0, Scrolling_Syms);")