[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Deleting supplementary characters leaves corruption
From: |
Alexander Winston |
Subject: |
Re: Deleting supplementary characters leaves corruption |
Date: |
Mon, 19 Apr 2004 17:24:57 -0400 |
On Mon, 2004-04-19 at 13:19 +0900, Kenichi Handa wrote:
> To fix this problem, I tried to put `modification-hooks'
> text-property that deletes the whole sequence when a part of
> the sequence is being deleted. But, that revealed Emacs'
> bug.
>
> Please try this:
>
> % emacs -q --no-site-file
> ;; Load the attached file
> M-x load-file RET ..../atomic.el RET
> ;; Make "buffer" atomic.
> M-b C-SPC M-f M-x set-region-atomic RET
> ;; Move point to the head of "buffer"
> C-b
> ;; Delete "buffer"
> M-d
> ;; Yank it twice.
> C-y C-y
>
> Then Emacs crashes as below:
The same thing appears to happen to me, too:
(gdb) backtrace full
#0 abort () at emacs.c:433
No locals.
#1 0x081de7a1 in Fremove_list_of_text_properties (start=189, end=195,
list_of_properties=-1471505384, object=-2008803392) at textprop.c:1619
i = 0x0
unchanged = 0x284603d8
s = 189
len = 3
modified = 1
properties = -1471505384
#2 0x08188bae in Ffuncall (nargs=4, args=0xbfffe6c0) at eval.c:2737
fun = -2009129320
funcar = 2
numargs = 3
lisp_numargs = 195
val = 135748575
backtrace = {
next = 0xbfffe830,
function = 0xbfffe6c0,
args = 0xbfffe6c4,
nargs = 3,
evalargs = 0 '\0',
debug_on_exit = 0 '\0'
}
internal_args = (int *) 0xbfffe640
i = 4
#3 0x081c1b72 in Fbyte_code (bytestr=1747067092, vector=-2011029152,
maxdepth=5) at bytecode.c:689
count = 12
op = 3
vectorp = (int *) 0x8222168
bytestr_length = 120
stack = {
pc = 0x822215a ")\207",
top = 0xbfffe6cc,
bottom = 0xbfffe6c0,
byte_string = 1747067092,
byte_string_start = 0x82220e4 "\306\030\t\307>\204c",
constants = -2011029152,
next = 0xbfffe950
}
top = (int *) 0xbfffe6c0
result = -1073748072
#4 0x08189315 in funcall_lambda (fun=-2011029336, nargs=2,
arg_vector=0xbfffe894) at eval.c:2913
val = -2011029336
syms_left = 675502944
next = 675752872
count = 10
i = 2
optional = 0
rest = 0
#5 0x08188d4c in Ffuncall (nargs=3, args=0xbfffe890) at eval.c:2774
fun = -2011029336
funcar = 0
numargs = 2
lisp_numargs = 135485208
val = 135780961
backtrace = {
next = 0xbfffea00,
function = 0xbfffe890,
args = 0xbfffe894,
nargs = 2,
evalargs = 0 '\0',
debug_on_exit = 0 '\0'
}
internal_args = (int *) 0x0
i = 0
#6 0x081c1b72 in Fbyte_code (bytestr=1747067692, vector=-2011028600,
maxdepth=5) at bytecode.c:689
count = 7
op = 2
vectorp = (int *) 0x8222390
bytestr_length = 73
stack = {
pc = 0x822236d "\210\f\311=\203<",
top = 0xbfffe898,
bottom = 0xbfffe890,
byte_string = 1747067692,
byte_string_start = 0x822233c "\b;\205\n",
constants = -2011028600,
next = 0xbfffeb10
}
top = (int *) 0xbfffe890
result = -1073747608
#7 0x08189315 in funcall_lambda (fun=-2011028728, nargs=1,
arg_vector=0xbfffea64) at eval.c:2913
val = -2011028728
syms_left = 675502944
next = 675567952
count = 6
i = 1
optional = 0
rest = 0
#8 0x08188d4c in Ffuncall (nargs=2, args=0xbfffea60) at eval.c:2774
fun = -2011028728
funcar = -1073747356
numargs = 1
lisp_numargs = 1
val = 675502944
backtrace = {
next = 0xbfffebc0,
function = 0xbfffea60,
args = 0xbfffea64,
nargs = 1,
evalargs = 0 '\0',
debug_on_exit = 0 '\0'
}
internal_args = (int *) 0xbfffe9e0
i = 4
#9 0x081c1b72 in Fbyte_code (bytestr=1747067484, vector=-2011028848,
maxdepth=4) at bytecode.c:689
count = 6
op = 1
vectorp = (int *) 0x8222298
bytestr_length = 32
stack = {
pc = 0x822228b "\207",
top = 0xbfffea64,
bottom = 0xbfffea60,
byte_string = 1747067484,
byte_string_start = 0x822226c "\302\030\303\304\305\t#\211\020\203\033",
constants = -2011028848,
next = 0xbfffecd0
}
top = (int *) 0xbfffea60
result = 1752078304
#10 0x08189315 in funcall_lambda (fun=-2011028936, nargs=1,
arg_vector=0xbfffec24) at eval.c:2913
val = -2011028936
syms_left = 675502944
next = 675567952
count = 5
i = 1
optional = 0
rest = 0
#11 0x08188d4c in Ffuncall (nargs=2, args=0xbfffec20) at eval.c:2774
fun = -2011028936
funcar = 1212455268
numargs = 1
lisp_numargs = 1212421460
val = 1752078304
backtrace = {
next = 0xbfffed80,
function = 0xbfffec20,
args = 0xbfffec24,
nargs = 1,
evalargs = 0 '\0',
debug_on_exit = 0 '\0'
}
internal_args = (int *) 0xbfffeba0
i = 1
#12 0x081c1b72 in Fbyte_code (bytestr=1747410960, vector=-2010685344,
maxdepth=4) at bytecode.c:689
count = 5
op = 1
vectorp = (int *) 0x8276068
bytestr_length = 61
stack = {
pc = 0x8276042 "\210\n:\2033",
top = 0xbfffec24,
bottom = 0xbfffec20,
byte_string = 1747410960,
byte_string_start = 0x8276020 "\303
\020\304\021\305`!\210\306\307\n<\203\024",
constants = -2010685344,
next = 0x0
}
top = (int *) 0xbfffec20
result = -1073746712
#13 0x08189315 in funcall_lambda (fun=-2010685472, nargs=1,
arg_vector=0xbfffee24) at eval.c:2913
val = -2010685472
syms_left = 675502944
next = 675748448
count = 4
i = 1
optional = 1
rest = 0
#14 0x08188d4c in Ffuncall (nargs=2, args=0xbfffee20) at eval.c:2774
fun = -2010685472
funcar = 1212480044
numargs = 1
lisp_numargs = -1073746176
val = 1212480044
backtrace = {
next = 0xbffff010,
function = 0xbfffee20,
args = 0xbfffee24,
nargs = 1,
evalargs = 0 '\0',
debug_on_exit = 0 '\0'
}
internal_args = (int *) 0x2
i = 675502944
#15 0x08184aee in Fcall_interactively (function=675883840,
record_flag=675502944, keys=-2008794768) at callint.c:862
val = 0
args = (int *) 0xbfffee20
visargs = (int *) 0xbfffee10
argstrings = (unsigned char **) 0xbfffee00
fun = -2010685472
funcar = 135743549
specs = 1747411108
filter_specs = 675502944
teml = -2010685472
enable = 675502944
speccount = 3
next_event = 1
prefix_arg = 675502944
string = (unsigned char *) 0xbfffee31 "P"
tem = (unsigned char *) 0x81fe22c ""
varies = (int *) 0xbfffedf0
i = 2
j = 1
count = 1
foo = 498578
prompt1 = '\0' <repeats 99 times>
tem1 = 0x0
arg_from_tty = 0
gcpro1 = {
next = 0x2000,
var = 0x0,
nvars = 0
}
gcpro2 = {
next = 0x0,
var = 0x0,
nvars = -1073746080
}
gcpro3 = {
next = 0x0,
var = 0x0,
nvars = 2
}
gcpro4 = {
next = 0x28435b60,
var = 0x28435b60,
nvars = 2
}
key_count = 1
record_then_fail = 0
save_this_command = 675883840
save_last_command = 675883840
save_this_original_command = 675883840
save_real_this_command = 675883840
#16 0x0811d1cc in Fcommand_execute (cmd=675883840, record_flag=675502944,
keys=675502944, special=675502944) at keyboard.c:9670
final = -2010685472
tem = 675502944
prefixarg = 675502944
backtrace = {
next = 0x0,
function = 0x842d2ac,
args = 0xbffff050,
nargs = 1,
evalargs = 0 '\0'
}
#17 0x0810ff68 in command_loop_1 () at keyboard.c:1727
scount = 2
cmd = 675883840
lose = 98
nonundocount = 0
keybuf = {25, 100, 2, 0, 0, -1073745576, -1073745572, 1073833128, 0, 0,
0, 1077264804, 0, 1078064688, 1078064688, 141132040, 0, -1073745532,
-1073745844, 0, 1048576, 1076860384, -1073745480, 1073773116, 1076892634,
1074806028, 0, 936, 675502944, 677535568}
i = 1
no_direct = 0
prev_modiff = 8
prev_buffer = (struct buffer *) 0x84417c0
was_locked = 0
already_adjusted = 0
#18 0x081868d8 in internal_condition_case (bfun=0x810ebd6 <command_loop_1>,
handlers=675563808, hfun=0x810e76b <cmd_error>) at eval.c:1333
val = 675502944
c = {
tag = 675502944,
val = 675502944,
next = 0xbffff320,
gcpro = 0x0,
jmp = {{
__jmpbuf = {-1073744464, -1073744464, -1073744652, -1073745176,
-1073745488, 135817325},
__mask_was_saved = 0,
__saved_mask = {
__val = {141132040, 1078064688, 141132040, 141132040, 3221222028,
135704840, 141132040, 141130968, 5, 429496729, 0, 1077262673, 0, 136106530,
335544320, 1076991144, 0 <repeats 16 times>}
}
}},
backlist = 0x0,
handlerlist = 0x0,
lisp_eval_depth = 0,
pdlcount = 2,
poll_suppress_count = 1,
interrupt_input_blocked = 0,
byte_stack = 0x0
}
h = {
handler = 675563808,
var = 675502944,
chosen_clause = 141129560,
tag = 0xbffff1f0,
next = 0x0
}
#19 0x0810eaa3 in command_loop_2 () at keyboard.c:1264
val = 0
#20 0x081863a5 in internal_catch (tag=675557872, func=0x810ea7f
<command_loop_2>, arg=675502944) at eval.c:1094
c = {
tag = 675557872,
val = 675502944,
next = 0x0,
gcpro = 0x0,
jmp = {{
__jmpbuf = {-1073744464, -1073744464, -1073744652, -1073744888,
-1073745136, 135816086},
__mask_was_saved = 0,
__saved_mask = {
__val = {0, 3472, 141132400, 1078067360, 1078064688, 141132040,
1078067360, 3221221932, 1077284783, 1078067360, 141132040, 1078064688,
141132040, 141132040, 3221222028, 2, 141132040, 141130968, 5, 429496729, 0,
1077262673, 0, 3221222376, 135737768, 675698464, 1212544872, 675502944,
138680256, 0, 0, 0}
}
}},
backlist = 0x0,
handlerlist = 0x0,
lisp_eval_depth = 0,
pdlcount = 2,
poll_suppress_count = 1,
interrupt_input_blocked = 0,
byte_stack = 0x0
}
#21 0x0810ea58 in command_loop () at keyboard.c:1243
No locals.
#22 0x0810e515 in recursive_edit_1 () at keyboard.c:959
count = 1
val = -1471344392
#23 0x0810e648 in Frecursive_edit () at keyboard.c:1015
count = 0
buffer = 675502944
#24 0x0810d05a in main (argc=4, argv=0xbffff7d4) at emacs.c:1692
dummy = 136239371
stack_bottom_variable = -65 '\277'
do_initial_setlocale = 1
skip_args = 1
rlim = {
rlim_cur = 18446744073709551615,
rlim_max = 18446744073709551615
}
no_loadup = 0
junk = 0x0
(gdb) xbacktrace
"remove-list-of-text-properties"
"remove-yank-excluded-properties"
"insert-for-yank-1"
"insert-for-yank"
"yank"
"call-interactively"
signature.asc
Description: This is a digitally signed message part