My Emacs initialization code contains
	(autoload 'super-kill "super-kill" t)
	(global-set-key "\C-k" 'super-kill)
super-kill.el and the uuencoded .elc follow.  When I type C-k, I get a
segmentation fault and core dump out of lemacs version 19.3 on a Sun 4.
GDB 4.6 says 
	(gdb) where
	#0  0xd6998 in strlen ()
	#1  0x18748 in echo_prompt () at event-stream.c:1058
	#2  0x198ec in Fread_key_sequence () at event-stream.c:1735
	#3  0x5df30 in Ffuncall () at eval.c:1708
	#4  0x6e350 in Fbyte_code () at bytecode.c:263
	#5  0x5d3fc in Feval () at eval.c:1276
	#6  0x5b07c in Fprogn () at eval.c:266
	#7  0x5e5b0 in funcall_lambda () at eval.c:1919
	#8  0x5e0b8 in Ffuncall () at eval.c:1708
	#9  0x5a930 in Fcall_interactively () at callint.c:162
	#10 0x33e24 in Fcommand_execute () at keyboard.c:654
	#11 0x19558 in dispatch_command_event_internal () at event-stream.c:1527
	#12 0x19298 in compose_command () at event-stream.c:1399
	#13 0x18400 in dispatch_event_internal () at event-stream.c:963
	#14 0x1981c in Fdispatch_event () at event-stream.c:1710
	#15 0x33bbc in command_loop_1 () at keyboard.c:457
	#16 0x5c548 in internal_condition_case () at eval.c:979
	#17 0x33840 in command_loop_2 () at keyboard.c:384
	#18 0x5bfc8 in internal_catch () at eval.c:798
	#19 0x337ec in command_loop () at keyboard.c:358
	#20 0x33320 in recursive_edit_1 () at keyboard.c:211
	#21 0x33428 in Frecursive_edit () at keyboard.c:238
	#22 0x32e04 in main () at emacs.c:420

----------------------------------------
;;; Super-kill acts as a kill prefix.  You type C-k (or whatever
;;; super-kill is bound to) followed by a command key sequence,
;;; and super-kill kills some text depending on the command.  If
;;; the key sequence is a printing character, this function acts
;;; much like 'zap-to-char.  If the key sequence represents a
;;; movement command, the text between the starting and ending
;;; points is deleted.  There are also a number of special
;;; commands.  Unfortunately, there is no way to change the
;;; "bindings" of these keys short of editing the super-kill
;;; function.

;;; Hints:
;;;   Bind 'recursive-edit to some control key such as C-\.  Then
;;; you can move to the start of an arbitrary block of text, type
;;; C-k C-\, then move to the end of the text, hit ESC C-c, and
;;; the block of text will be deleted.
;;;   Bind 'forward-sexp and 'backward-sexp to some control keys,
;;; you will be amazed at how often you want to delete the
;;; previous or following sexp.  If you use arrow keys for
;;; 'forward-char and 'backward-char, bind the sexp commands to
;;; C-f and C-b.
;;;   The effects of 'kill-line can be simulated (more or less)
;;; by C-k C-e and C-k C-l (where C-e is bound to 'end-of-line).

;;; Written by David Gudeman (gudeman@arizona.edu) April 1987

(defun super-kill (arg)
  "Kill text between current point and point after the next command.
If the prefix-arg is ARG, and the following key stroke is:

C-w		    delete-horizontal-space (as the command)
C-o		    delete-blank-lines (as the command)
C-l		    kill whole line and the ARG - 1 following lines
C-j		    join lines current line to arg following lines,
		    delete any fill prefix, and fixup whitespace
printing char       kill upto and including the ARGth occurrence of the
			character (which can be quoted).
C-q char	    as above, except that char is quoted if it is not C-g.
DEL		    kill back to the ARGth occurrence of the next char
			which is quoted if it is not C-g.
movement command    kill the buffer section between starting point
			and point after the command is executed with ARG
			as its prefix-arg
C-k		    Read another character and interpret as above, but copy
			the indicated text to the kill-ring instead of killing
			it.  More C-k's toggle from kill to copy.
C-y		    Read another character and interpret as above, but toggle
			whether the text will be appended to the kill-ring
			or put in a new slot.
otherwise	    no affect

Called from an elisp function, takes one argument, the prefix arg."
  (interactive "P")
  (let* ((key (read-key-sequence nil))
	 (c (string-to-char key))
	 (n (prefix-numeric-value arg))
	 (buf (current-buffer))
	 (p1 (point))
	 p2 copy-only)
    (while (memq c '(?\C-k ?\C-y))
      (if (= c ?\C-y)
	  (setq last-command
		(if (equal 'kill-region last-command)
		    nil
		  'kill-region))
	(setq copy-only (not copy-only)))
      (setq key (read-key-sequence nil))
      (setq c (string-to-char key)))
    (cond
     ((or (and (>= c ? ) (<= c ?~)) (= c ?\t))
      (search-forward key nil nil n))
     ((= c ?\C-m)
      (search-forward ?\n nil nil n))
     ((= c ?\C-q)
      (search-forward (char-to-string (read-char)) nil nil n))
     ((= c ?\C-?)
      (search-forward (char-to-string (read-char)) nil nil (- n)))
     ((= c ?\C-w)
      (delete-horizontal-space)
      (setq buf nil))		;prevent deletion later
     ((= c ?\C-o)
      (delete-blank-lines)
      (setq buf nil))		;ditto above
     ((= c ?\C-l)
      (beginning-of-line 1)
      (setq p1 (point))
      (beginning-of-line (1+ n)))
     ((= c ?\C-j)
      (if (< n 0)		; p2 is used as an increment,
	  (setq p2  1 c 0)	;    and c is a direction
	(setq p2 -1 c 1))
      (while (/= n 0)
	(end-of-line c)
	(setq p1 (point))
	(forward-char 1)
	(and fill-prefix
	     (looking-at fill-prefix)
	     (forward-char (length fill-prefix)))
	(delete-region p1 (point))
	(fixup-whitespace)
	(setq n (+ n p2)))
      (setq buf nil))		;ditto above
     (t ;(let ((current-prefix-arg arg))
      (call-interactively (key-binding key))));)
    (setq p2 (point))
    (if (and (/= p1 p2) (eql buf (current-buffer)))
	(if copy-only
	    (copy-region-as-kill p1 p2)
	  (kill-region p1 p2))))
  (sit-for 0))
----------------------------------------
begin 644 super-kill.elc
M"BAD969U;B!S=7!E<BUK:6QL("AA<F<I(")<"DMI;&P@=&5X="!B971W965N
M(&-U<G)E;G0@<&]I;G0@86YD('!O:6YT(&%F=&5R('1H92!N97AT(&-O;6UA
M;F0N"DEF('1H92!P<F5F:7@M87)G(&ES($%21RP@86YD('1H92!F;VQL;W=I
M;F<@:V5Y('-T<F]K92!I<SH*"D,M=PD)(" @(&1E;&5T92UH;W)I>F]N=&%L
M+7-P86-E("AA<R!T:&4@8V]M;6%N9"D*0RUO"0D@(" @9&5L971E+6)L86YK
M+6QI;F5S("AA<R!T:&4@8V]M;6%N9"D*0RUL"0D@(" @:VEL;"!W:&]L92!L
M:6YE(&%N9"!T:&4@05)'("T@,2!F;VQL;W=I;F<@;&EN97,*0RUJ"0D@(" @
M:F]I;B!L:6YE<R!C=7)R96YT(&QI;F4@=&\@87)G(&9O;&QO=VEN9R!L:6YE
M<RP*"0D@(" @9&5L971E(&%N>2!F:6QL('!R969I>"P@86YD(&9I>'5P('=H
M:71E<W!A8V4*<')I;G1I;F<@8VAA<B @(" @("!K:6QL('5P=&\@86YD(&EN
M8VQU9&EN9R!T:&4@05)'=&@@;V-C=7)R96YC92!O9B!T:&4*"0D)8VAA<F%C
M=&5R("AW:&EC:"!C86X@8F4@<75O=&5D*2X*0RUQ(&-H87()(" @(&%S(&%B
M;W9E+"!E>&-E<'0@=&AA="!C:&%R(&ES('%U;W1E9"!I9B!I="!I<R!N;W0@
M0RUG+@I$14P)"2 @("!K:6QL(&)A8VL@=&\@=&AE($%21W1H(&]C8W5R<F5N
M8V4@;V8@=&AE(&YE>'0@8VAA<@H)"0EW:&EC:"!I<R!Q=6]T960@:68@:70@
M:7,@;F]T($,M9RX*;6]V96UE;G0@8V]M;6%N9" @("!K:6QL('1H92!B=69F
M97(@<V5C=&EO;B!B971W965N('-T87)T:6YG('!O:6YT"@D)"6%N9"!P;VEN
M="!A9G1E<B!T:&4@8V]M;6%N9"!I<R!E>&5C=71E9"!W:71H($%21PH)"0EA
M<R!I=',@<')E9FEX+6%R9PI#+6L)"2 @("!296%D(&%N;W1H97(@8VAA<F%C
M=&5R(&%N9"!I;G1E<G!R970@87,@86)O=F4L(&)U="!C;W!Y"@D)"71H92!I
M;F1I8V%T960@=&5X="!T;R!T:&4@:VEL;"UR:6YG(&EN<W1E860@;V8@:VEL
M;&EN9PH)"0EI="X@($UO<F4@0RUK)W,@=&]G9VQE(&9R;VT@:VEL;"!T;R!C
M;W!Y+@I#+7D)"2 @("!296%D(&%N;W1H97(@8VAA<F%C=&5R(&%N9"!I;G1E
M<G!R970@87,@86)O=F4L(&)U="!T;V=G;&4*"0D)=VAE=&AE<B!T:&4@=&5X
M="!W:6QL(&)E(&%P<&5N9&5D('1O('1H92!K:6QL+7)I;F<*"0D);W(@<'5T
M(&EN(&$@;F5W('-L;W0N"F]T:&5R=VES90D@(" @;F\@869F96-T"@I#86QL
M960@9G)O;2!A;B!E;&ES<"!F=6YC=&EO;BP@=&%K97,@;VYE(&%R9W5M96YT
M+"!T:&4@<')E9FEX(&%R9RXB("AI;G1E<F%C=&EV92 B4"(I("AB>71E+6-O
M9&4@(L&(S,$A&,T((1K.#"$;<!U@'@;!'@?!'@@*SSZ%3@ *T%6#. #1T@X)
M7"*#,0#!@C( THD6"8(^  X(/XD6"(C,P2&)$(C-""&)$HB"&0"("M-9A5@ 
M"M18AEX "M55@VH U@C!P0LD@C$!"M=5@WD UMC!P0LD@C$!"ME5@XH UMIR
M(<'!"R2",0$*VU6#G #6VG(AP<$+6R2",0$*W%6#JP#=((C!B16",0$*WE6#
MN@#?((C!B16",0$*X%6#T #AXB&(8(D6!HCA"U0A@C$!"MA5@RP!"^-7@^4 
MXA8'XXD2@NL Y!8'XHD2B.4+XUPBA24!Y@HAB&")%@:(Y^(AB X*A1$!Z X*
M(841 ><."D<AB.D.!F!<(HCJ((@+#@=<7(D3B(+L (C!B16",0'K[ @A(8A@
MB18'B.4.!@X'7"*%0P$-<#V%6@$."(-4 >T.!@X'7"*"6@'2#@8.!UPB+@>(
M[N,AAR(@6VME>2!N:6P@8R!N(&%R9R!B=68@<#$@<#(@8V]P>2UO;FQY(&QA
M<W0M8V]M;6%N9"!F:6QL+7!R969I>"!T(')E860M:V5Y+7-E<75E;F-E('-T
M<FEN9RUT;RUC:&%R('!R969I>"UN=6UE<FEC+79A;'5E("@Q,2 R-2D@,C4@
M97%U86P@:VEL;"UR96=I;VX@,S(@,3(V(#D@<V5A<F-H+69O<G=A<F0@,3,@
M,3 @,3<@8VAA<BUT;RUS=')I;F<@,3(W(#(S(&1E;&5T92UH;W)I>F]N=&%L
M+7-P86-E(#$U(&1E;&5T92UB;&%N:RUL:6YE<R Q,B!B96=I;FYI;F<M;V8M
M;&EN92 Q(# @+3$@+ST@96YD+6]F+6QI;F4@9F]R=V%R9"UC:&%R(&QO;VMI
M;F<M870@9&5L971E+7)E9VEO;B!F:7AU<"UW:&ET97-P86-E(&-A;&PM:6YT
M97)A8W1I=F5L>2!K97DM8FEN9&EN9R!C;W!Y+7)E9VEO;BUA<RUK:6QL('-I
,="UF;W)=(#,P*2D*
 
end
x-gateway: rodan.UU.NET from bug-lucid-emacs to alt.lucid-emacs.bug; Thu, 8 Oct 1992 00:06:26 EDT
Date: Thu, 8 Oct 1992 11:49:53 +0730
From: franks%ntu.ac.sg@lucid.com (Frank Siebenlist)
Subject: copy&paste behaviour
Newsgroups: alt.lucid-emacs.bug