Rainer M Krug writes: > Eli Zaretskii writes: > >>> From: Rainer M Krug >>> Cc: 21428@debbugs.gnu.org, mituharu+bug-gnu-emacs-mac@math.s.chiba-u.ac.jp >>> Date: Mon, 28 Sep 2015 11:33:49 +0200 >>> >>> > First, I'd like to know whether the line of code marked below is ever >>> > executed: >>> > >>> > static void >>> > uncache_face (struct face_cache *c, struct face *face) >>> > { >>> > int i = face->hash % FACE_CACHE_BUCKETS_SIZE; >>> > >>> > if (face->prev) >>> > face->prev->next = face->next; >>> > else >>> > c->buckets[i] = face->next; >>> > >>> > if (face->next) >>> > face->next->prev = face->prev; >>> > >>> > c->faces_by_id[face->id] = NULL; >>> > if (face->id == c->used) >>> > --c->used; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>> > } >>> > >>> > This is from xfaces.c, line 4322 with the current Git master. Please >>> > put a breakpoint there, and run Emacs under GDB until it crashes as >>> > before, or until this breakpoint breaks. If it breaks, please show >>> > the backtrace. >>> >>> OK - Emacs crashed again (same pattern) and the breakpoint was >>> triggered: >>> >>> ,---- >>> | xdisp.c:24333: Emacs fatal error: assertion failed: face != NULL >> >> You mean, the breakpoint did NOT trigger, right? Because I cannot see >> any backtraces from the breakpoint in uncache_face. Did I miss >> something? > > No - I missed something. I am new to gdb and sometimes (often?) get > confused. > > This is the latest one - and if I understand correctly, again not > triggered. > ,---- > | xdisp.c:19795: Emacs fatal error: assertion failed: it->method == > | GET_FROM_BUFFER || it->method == GET_FROM_DISPLAY_VECTOR || > | it->method == GET_FROM_STRING > | > | Breakpoint 1, terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at emacs.c:370 > | 370 signal (sig, SIG_DFL); > | (gdb) > `---- > > >> >>> I am sure the crash occurs again, so please let me know what further >>> info you need from the next crash. >> >> If indeed the breakpoint in uncache_face never breaks, please proceed >> to configuring Emacs with --enable-checking='yes,glyphs' and disabling >> the redisplay optimizations, as I've described here: > > OK - I will reconfigure then. > >> >>> > If this breakpoint never breaks before another crash, please >>> > reconfigure Emacs like this: >>> > >>> > CFLAGS="-ggdb3 -O0" CXXFLAGS="-ggdb3 -O0" LDFLAGS="-ggdb3" ./configure --enable-checking='yes,glyphs' > > reconfiguring. > >>> > >>> > then rebuild, and run it after setting these three variables to t: >>> > >>> > inhibit-try-cursor-movement >>> > inhibit-try-window-id >>> > inhibit-try-window-reusing > > OK - I evaluated > > (setq inhibit-try-cursor-movement t) > (setq inhibit-try-window-id t) > (setq inhibit-try-window-reusing t) > > immediately in scratch after starting emacs - is this correct? > >>> > >>> > This disables some redisplay optimizations, so you might see slow >>> > redisplay; this is normal. What is important is to see whether the >>> > crashes disappear when these variables are set to non-nil values. If >>> > you run for a long time without crashes, then set these variables to >>> > nil, one by one, in the order they are shown above, and each time let >>> > Emacs run enough time for you to be sure the problem doesn't happen, >>> > before you proceed to the next variable. > > OK - running emacs now with all set to t = will keep you posted. Didn't take long - if I followed the process described correctly, it did not help - I had another two crashes, although they look in the backtrace different then before: ,---- | xdisp.c:19795: Emacs fatal error: assertion failed: it->method == GET_FROM_BUFFER || it->method == GET_FROM_DISPLAY_VECTOR || it->method == GET_FROM_STRING | | Breakpoint 1, terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at emacs.c:370 | 370 signal (sig, SIG_DFL); | (gdb) bt | #0 terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at emacs.c:370 | #1 0x0000000100229e5b in die (msg=0x1003ba0d8 "it->method == GET_FROM_BUFFER || it->method == GET_FROM_DISPLAY_VECTOR || it->method == GET_FROM_STRING", file=0x1003b7100 "xdisp.c", line=19795) at alloc.c:6951 | #2 0x000000010008e6b6 in push_prefix_prop (it=0x7fff5fbf34f8, prop=4615950900) at xdisp.c:19793 | #3 0x000000010008e5b3 in handle_line_prefix (it=0x7fff5fbf34f8) at xdisp.c:19903 | #4 0x0000000100056e2f in display_line (it=0x7fff5fbf34f8) at xdisp.c:20179 | #5 0x00000001000566eb in try_window (window=4597218837, pos={charpos = 1666, bytepos = 1666}, flags=0) at xdisp.c:16909 | #6 0x00000001000971ab in redisplay_window (window=4597218837, just_this_one_p=false) at xdisp.c:16146 | #7 0x000000010009620d in redisplay_window_0 (window=4597218837) at xdisp.c:14199 | #8 0x0000000100265011 in internal_condition_case_1 (bfun=0x1000961d0 , arg=4597218837, handlers=4353710995, hfun=0x1000942b0 ) at eval.c:1333 | #9 0x000000010009419b in redisplay_windows (window=4597218837) at xdisp.c:14179 | #10 0x000000010009414a in redisplay_windows (window=4403040469) at xdisp.c:14173 | #11 0x0000000100052b74 in redisplay_internal () at xdisp.c:13771 | #12 0x00000001000548f9 in redisplay () at xdisp.c:13059 | #13 0x0000000100188aa9 in read_char (commandflag=1, map=4825254035, prev_event=0, used_mouse_menu=0x7fff5fbfa607, end_time=0x0) at keyboard.c:2465 | #14 0x0000000100183a09 in read_key_sequence (keybuf=0x7fff5fbfa940, bufsize=30, prompt=0, dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false) at keyboard.c:9030 | #15 0x0000000100182306 in command_loop_1 () at keyboard.c:1348 | #16 0x0000000100264e76 in internal_condition_case (bfun=0x100181d10 , handlers=17616, hfun=0x10019d580 ) at eval.c:1309 | #17 0x000000010019d47c in command_loop_2 (ignore=0) at keyboard.c:1088 | #18 0x0000000100263f3e in internal_catch (tag=18288, func=0x10019d450 , arg=0) at eval.c:1073 | #19 0x0000000100180fd8 in command_loop () at keyboard.c:1059 | #20 0x0000000100180e92 in recursive_edit_1 () at keyboard.c:673 | #21 0x0000000100181283 in Frecursive_edit () at keyboard.c:744 | #22 0x00000001002676d4 in Ffuncall (nargs=1, args=0x7fff5fbfae58) at eval.c:2647 | #23 0x00000001002d1bb4 in exec_byte_code (bytestr=4592077796, vector=4400472573, maxdepth=166, args_template=514, nargs=2, args=0x7fff5fbfb858) at bytecode.c:880 | #24 0x0000000100268c0f in funcall_lambda (fun=4400473205, nargs=2, arg_vector=0x7fff5fbfb858) at eval.c:2810 | #25 0x0000000100267992 in Ffuncall (nargs=3, args=0x7fff5fbfb850) at eval.c:2699 | #26 0x00000001002671b4 in Fapply (nargs=2, args=0x7fff5fbfb988) at eval.c:2278 | #27 0x000000010025ee55 in apply1 (fn=15312, arg=4601986147) at eval.c:2494 | #28 0x000000010025e6a2 in call_debugger (arg=4601986147) at eval.c:308 | #29 0x0000000100265bf2 in maybe_call_debugger (conditions=4299215307, sig=45840, data=4601986067) at eval.c:1687 | #30 0x000000010026575e in Fsignal (error_symbol=45840, data=4601986067) at eval.c:1506 | #31 0x0000000100265c3d in xsignal (error_symbol=45840, data=4601986067) at eval.c:1542 | #32 0x0000000100261a60 in xsignal1 (error_symbol=45840, arg=58918568) at eval.c:1557 | #33 0x000000010023b818 in Fsymbol_value (symbol=58918568) at data.c:1204 | #34 0x000000010025f466 in eval_sub (form=58918568) at eval.c:2029 | #35 0x00000001002666c3 in Feval (form=58918568, lexical=0) at eval.c:1953 | #36 0x0000000100267729 in Ffuncall (nargs=3, args=0x7fff5fbfbf98) at eval.c:2653 | #37 0x00000001002d1bb4 in exec_byte_code (bytestr=4300749636, vector=4300749669, maxdepth=22, args_template=1030, nargs=1, args=0x7fff5fbfc970) at bytecode.c:880 | #38 0x0000000100268c0f in funcall_lambda (fun=4300749589, nargs=1, arg_vector=0x7fff5fbfc968) at eval.c:2810 | #39 0x0000000100267992 in Ffuncall (nargs=2, args=0x7fff5fbfc960) at eval.c:2699 | #40 0x00000001002d1bb4 in exec_byte_code (bytestr=4300750372, vector=4300750405, maxdepth=18, args_template=1030, nargs=1, args=0x7fff5fbfd340) at bytecode.c:880 | #41 0x0000000100268c0f in funcall_lambda (fun=4300750317, nargs=1, arg_vector=0x7fff5fbfd338) at eval.c:2810 | #42 0x0000000100267992 in Ffuncall (nargs=2, args=0x7fff5fbfd330) at eval.c:2699 | #43 0x00000001002d1bb4 in exec_byte_code (bytestr=4300747588, vector=4300747621, maxdepth=14, args_template=1026, nargs=1, args=0x7fff5fbfde68) at bytecode.c:880 | #44 0x0000000100268c0f in funcall_lambda (fun=4300747533, nargs=1, arg_vector=0x7fff5fbfde60) at eval.c:2810 | #45 0x0000000100267992 in Ffuncall (nargs=2, args=0x7fff5fbfde58) at eval.c:2699 | #46 0x000000010025a3fa in Ffuncall_interactively (nargs=2, args=0x7fff5fbfde58) at callint.c:250 | #47 0x000000010026759d in Ffuncall (nargs=3, args=0x7fff5fbfde50) at eval.c:2630 | #48 0x000000010025d135 in Fcall_interactively (function=85491200, record_flag=0, keys=4353745821) at callint.c:838 | #49 0x0000000100267764 in Ffuncall (nargs=4, args=0x7fff5fbfe698) at eval.c:2657 | #50 0x00000001002d1bb4 in exec_byte_code (bytestr=4300063060, vector=4300063093, maxdepth=54, args_template=4102, nargs=1, args=0x7fff5fbff098) at bytecode.c:880 | #51 0x0000000100268c0f in funcall_lambda (fun=4300063013, nargs=1, arg_vector=0x7fff5fbff090) at eval.c:2810 | #52 0x0000000100267992 in Ffuncall (nargs=2, args=0x7fff5fbff088) at eval.c:2699 | #53 0x00000001002684c4 in call1 (fn=13632, arg1=85491200) at eval.c:2509 | #54 0x00000001001828bf in command_loop_1 () at keyboard.c:1460 | #55 0x0000000100264e76 in internal_condition_case (bfun=0x100181d10 , handlers=17616, hfun=0x10019d580 ) at eval.c:1309 | #56 0x000000010019d47c in command_loop_2 (ignore=0) at keyboard.c:1088 | #57 0x0000000100263f3e in internal_catch (tag=42768, func=0x10019d450 , arg=0) at eval.c:1073 | #58 0x0000000100181050 in command_loop () at keyboard.c:1067 | #59 0x0000000100180e92 in recursive_edit_1 () at keyboard.c:673 | #60 0x0000000100181283 in Frecursive_edit () at keyboard.c:744 | #61 0x000000010017ee2a in main (argc=1, argv=0x7fff5fbff8f0) at emacs.c:1643 | | Lisp Backtrace: | "redisplay_internal (C function)" (0x0) | "recursive-edit" (0x5fbfae60) | "debug" (0x5fbfb858) | "eval" (0x5fbfbfa0) | "elisp--eval-last-sexp" (0x5fbfc968) | "eval-last-sexp" (0x5fbfd338) | "eval-print-last-sexp" (0x5fbfde60) | "funcall-interactively" (0x5fbfde58) | "call-interactively" (0x5fbfe6a0) | "command-execute" (0x5fbff090) | (gdb) bt full | #0 terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at emacs.c:370 | No locals. | #1 0x0000000100229e5b in die (msg=0x1003ba0d8 "it->method == GET_FROM_BUFFER || it->method == GET_FROM_DISPLAY_VECTOR || it->method == GET_FROM_STRING", file=0x1003b7100 "xdisp.c", line=19795) at alloc.c:6951 | No locals. | #2 0x000000010008e6b6 in push_prefix_prop (it=0x7fff5fbf34f8, prop=4615950900) at xdisp.c:19793 | pos = { | charpos = 1666, | bytepos = 1666 | } | #3 0x000000010008e5b3 in handle_line_prefix (it=0x7fff5fbf34f8) at xdisp.c:19903 | prefix = 4615950900 | #4 0x0000000100056e2f in display_line (it=0x7fff5fbf34f8) at xdisp.c:20179 | row = (struct glyph_row *) 0x101fd1300 | overlay_arrow_string = 4597218832 | wrap_it = { | window = 0, | w = 0x0, | f = 0x0, | method = GET_FROM_BUFFER, | stop_charpos = 0, | prev_stop = 0, | base_level_stop = 0, | end_charpos = 0, | s = 0x0, | string_nchars = 0, | redisplay_end_trigger_charpos = 0, | multibyte_p = false, | header_line_p = false, | string_from_display_prop_p = false, | string_from_prefix_prop_p = false, | from_disp_prop_p = false, | ellipsis_p = false, | avoid_cursor_p = false, | dp = 0x0, | dpvec = 0x0, | dpend = 0x0, | dpvec_char_len = 0, | dpvec_face_id = 0, | saved_face_id = 0, | ctl_chars = 0x7fff5fbf2240, | start = { | pos = { | charpos = 0, | bytepos = 0 | }, | overlay_string_index = 0, | string_pos = { | charpos = 0, | bytepos = 0 | }, | dpvec_index = 0 | }, | current = { | pos = { | charpos = 0, | bytepos = 0 | }, | overlay_string_index = 0, | string_pos = { | charpos = 0, | bytepos = 0 | }, | dpvec_index = 0 | }, | n_overlay_strings = 0, | overlay_strings_charpos = 0, | overlay_strings = 0x7fff5fbf2330, | string_overlays = 0x7fff5fbf23b0, | string = 0, | from_overlay = 0, | stack = 0x7fff5fbf2440, | sp = 0, | selective = 140734799751776, | what = 298433781, | face_id = 1, | selective_display_ellipsis_p = false, | ctl_arrow_p = false, | face_box_p = false, | start_of_box_run_p = true, | end_of_box_run_p = true, | overlay_strings_at_end_processed_p = true, | ignore_overlay_strings_at_pos_p = true, | glyph_not_available_p = true, | starts_in_middle_of_char_p = true, | face_before_selective_p = false, | constrain_row_ascent_descent_p = true, | line_wrap = WORD_WRAP, | base_face_id = 0, | c = 0, | len = 0, | cmp_it = { | stop_pos = 21072, | id = 21072, | ch = 0, | rule_idx = 0, | lookback = 0, | nglyphs = 238, | reversed_p = false, | charpos = 16320, | nchars = 108499347, | nbytes = 1, | from = 0, | to = 0, | width = 1606363760 | }, | char_to_display = 3132866, | glyphless_method = GLYPHLESS_DISPLAY_EMPTY_BOX, | image_id = 16320, | slice = { | x = 4403466643, | y = 140734799751840, | width = 4299175996, | height = 140734799751840 | }, | space_width = 4296497637, | voffset = 10928, | tab_width = 24511, | font_height = 4299175996, | object = 140734799751872, | position = { | charpos = 4296501013, | bytepos = 0 | }, | truncation_pixel_width = 16824, | continuation_pixel_width = 127, | first_visible_x = 1, | last_visible_x = 1606363872, | last_visible_y = 32767, | extra_line_spacing = 1532088, | max_extra_line_spacing = 1, | override_ascent = 238, | override_descent = 16777216, | override_boff = 4208700, | glyph_row = 0x7fff5fbf2b90, | area = 3355065, | nglyphs = 1, | pixel_width = 88, | ascent = 0, | descent = 0, | max_ascent = 0, | max_descent = 0, | phys_ascent = 0, | phys_descent = 8339896, | max_phys_ascent = 1, | max_phys_descent = 1606363952, | current_x = 32767, | continuation_lines_width = 1532088, | eol_pos = { | charpos = 12096, | bytepos = 520115704 | }, | current_y = 1606364368, | first_vpos = 32767, | vpos = 2563747, | hpos = 1, | left_user_fringe_bitmap = 48563, | right_user_fringe_bitmap = 61, | left_user_fringe_face_id = 1, | right_user_fringe_face_id = 12096, | bidi_p = false, | bidi_it = { | bytepos = 288, | charpos = 0, | ch = 34848, | nchars = 34848, | ch_len = 44556037008, | type = 1606364112, | type_after_wn = 32767, | orig_type = 306638931, | resolved_level = 1 '\001', | isolate_level = 0 '\0', | invalid_levels = 72060712185718549, | invalid_isolates = 140734799752480, | prev = { | charpos = 4298344588, | type = 1606364096, | orig_type = 16809983 | }, | last_strong = { | charpos = 4601606227, | type = 298433781, | orig_type = 726 | }, | next_for_neutral = { | charpos = 140734799752144, | type = 306638931, | orig_type = STRONG_L | }, | prev_for_neutral = { | charpos = 72057598336250297, | type = 4047646, | orig_type = STRONG_L | }, | next_for_ws = { | charpos = 4294967299, | type = STRONG_L, | orig_type = UNKNOWN_BT | }, | bracket_pairing_pos = 0, | bracket_enclosed_type = 103, | next_en_pos = -4723410771830385256, | next_en_type = 1606364224, | sos = 32767, | scan_dir = 2611950, | disp_pos = -1787596054447957518, | disp_prop = 1530341, | stack_idx = 1728053249, | level_stack = 0x7fff5fbf2c20, | string = { | lstring = 140734799754320, | s = 0x111b08341 "^$\tB\026\300", | schars = 6107443494948, | bufpos = 4429232803, | from_disp_str = false, | unibyte = false | }, | w = 0x102618bd3, | paragraph_dir = 1606366352, | separator_limit = 4296905230, | first_elt = false, | new_paragraph = false, | frame_window_p = false | }, | paragraph_embedding = 33362688 | } | wrap_data = (void *) 0x0 | may_wrap = false | wrap_x = 0 | wrap_row_used = -1 | wrap_row_ascent = 0 | wrap_row_height = 0 | wrap_row_phys_ascent = 0 | wrap_row_phys_height = 0 | wrap_row_extra_line_spacing = 0 | wrap_row_min_pos = 0 | wrap_row_min_bpos = 0 | wrap_row_max_pos = 0 | wrap_row_max_bpos = 0 | cvpos = 0 | min_pos = 4558 | max_pos = 0 | min_bpos = 0 | max_bpos = 0 | pending_handle_line_prefix = false | #5 0x00000001000566eb in try_window (window=4597218837, pos={charpos = 1666, bytepos = 1666}, flags=0) at xdisp.c:16909 | w = (struct window *) 0x11203fe10 | it = { | window = 4597218837, | w = 0x11203fe10, | f = 0x101826a30, | method = GET_FROM_IMAGE, | stop_charpos = 1737, | prev_stop = 1666, | base_level_stop = 0, | end_charpos = 4557, | s = 0x0, | string_nchars = 0, | redisplay_end_trigger_charpos = 0, | multibyte_p = true, | header_line_p = true, | string_from_display_prop_p = false, | string_from_prefix_prop_p = false, | from_disp_prop_p = true, | ellipsis_p = false, | avoid_cursor_p = false, | dp = 0x1121ad640, | dpvec = 0x0, | dpend = 0x0, | dpvec_char_len = 0, | dpvec_face_id = 0, | saved_face_id = 0, | ctl_chars = 0x7fff5fbf3580, | start = { | pos = { | charpos = 1666, | bytepos = 1666 | }, | overlay_string_index = -1, | string_pos = { | charpos = -1, | bytepos = -1 | }, | dpvec_index = -1 | }, | current = { | pos = { | charpos = 1666, | bytepos = 1666 | }, | overlay_string_index = -1, | string_pos = { | charpos = -1, | bytepos = -1 | }, | dpvec_index = -1 | }, | n_overlay_strings = 0, | overlay_strings_charpos = 1666, | overlay_strings = 0x7fff5fbf3670, | string_overlays = 0x7fff5fbf36f0, | string = 0, | from_overlay = 4631782745, | stack = 0x7fff5fbf3780, | sp = 1, | selective = 0, | what = IT_IMAGE, | face_id = 36, | selective_display_ellipsis_p = true, | ctl_arrow_p = true, | face_box_p = false, | start_of_box_run_p = false, | end_of_box_run_p = false, | overlay_strings_at_end_processed_p = false, | ignore_overlay_strings_at_pos_p = false, | glyph_not_available_p = false, | starts_in_middle_of_char_p = false, | face_before_selective_p = false, | constrain_row_ascent_descent_p = false, | line_wrap = TRUNCATE, | base_face_id = 0, | c = 0, | len = 0, | cmp_it = { | stop_pos = 0, | id = -1, | ch = 0, | rule_idx = 0, | lookback = 0, | nglyphs = 0, | reversed_p = false, | charpos = 0, | nchars = 0, | nbytes = 0, | from = 0, | to = 0, | width = 0 | }, | char_to_display = 0, | glyphless_method = GLYPHLESS_DISPLAY_THIN_SPACE, | image_id = 0, | slice = { | x = 0, | y = 0, | width = 0, | height = 0 | }, | space_width = 0, | voffset = 0, | tab_width = 8, | font_height = 0, | object = 4593401077, | position = { | charpos = 1666, | bytepos = 1666 | }, | truncation_pixel_width = 8, | continuation_pixel_width = 0, | first_visible_x = 0, | last_visible_x = 1250, | last_visible_y = 1402, | extra_line_spacing = 0, | max_extra_line_spacing = 0, | override_ascent = -1, | override_descent = 0, | override_boff = 0, | glyph_row = 0x101fd1300, | area = TEXT_AREA, | nglyphs = 1, | pixel_width = 0, | ascent = 0, | descent = 0, | max_ascent = 0, | max_descent = 0, | phys_ascent = 0, | phys_descent = 0, | max_phys_ascent = 0, | max_phys_descent = 0, | current_x = 0, | continuation_lines_width = 0, | eol_pos = { | charpos = 0, | bytepos = 0 | }, | current_y = 21, | first_vpos = 1, | vpos = 0, | hpos = 0, | left_user_fringe_bitmap = 0, | right_user_fringe_bitmap = 0, | left_user_fringe_face_id = 0, | right_user_fringe_face_id = 0, | bidi_p = true, | bidi_it = { | bytepos = 1666, | charpos = 1666, | ch = 0, | nchars = -1, | ch_len = 0, | type = NEUTRAL_B, | type_after_wn = NEUTRAL_B, | orig_type = NEUTRAL_B, | resolved_level = 0 '\0', | isolate_level = 0 '\0', | invalid_levels = 0, | invalid_isolates = 0, | prev = { | charpos = 0, | type = UNKNOWN_BT, | orig_type = UNKNOWN_BT | }, | last_strong = { | charpos = 0, | type = UNKNOWN_BT, | orig_type = UNKNOWN_BT | }, | next_for_neutral = { | charpos = -1, | type = UNKNOWN_BT, | orig_type = UNKNOWN_BT | }, | prev_for_neutral = { | charpos = -1, | type = UNKNOWN_BT, | orig_type = UNKNOWN_BT | }, | next_for_ws = { | charpos = 0, | type = UNKNOWN_BT, | orig_type = UNKNOWN_BT | }, | bracket_pairing_pos = -1, | bracket_enclosed_type = UNKNOWN_BT, | next_en_pos = 0, | next_en_type = UNKNOWN_BT, | sos = L2R, | scan_dir = 0, | disp_pos = -1, | disp_prop = 0, | stack_idx = 0, | level_stack = 0x7fff5fbf3f60, | string = { | lstring = 0, | s = 0x0, | schars = 0, | bufpos = 0, | from_disp_str = false, | unibyte = false | }, | w = 0x11203fe10, | paragraph_dir = NEUTRAL_DIR, | separator_limit = -1, | first_elt = true, | new_paragraph = true, | frame_window_p = true | }, | paragraph_embedding = L2R | } | last_text_row = (struct glyph_row *) 0x0 | f = (struct frame *) 0x101826a30 | frame_line_height = 18 | #6 0x00000001000971ab in redisplay_window (window=4597218837, just_this_one_p=false) at xdisp.c:16146 | new_vpos = -1 | w = (struct window *) 0x11203fe10 | f = (struct frame *) 0x101826a30 | buffer = (struct buffer *) 0x111c9bcf0 | old = (struct buffer *) 0x111c9bcf0 | lpoint = { | charpos = 1666, | bytepos = 1666 | } | opoint = { | charpos = 1666, | bytepos = 1666 | } | startp = { | charpos = 1666, | bytepos = 1666 | } | update_mode_line = true | tem = 8408016 | it = { | window = 240526404477, | w = 0x111c9bcf0, | f = 0x7fff5fbf6190, | method = 2335476, | stop_charpos = 85475104, | prev_stop = 4303203197, | base_level_stop = 140734799766160, | end_charpos = 4593401072, | s = 0x7fff5fbf6190 "\340a\277_\377\177", | string_nchars = -4294967296, | redisplay_end_trigger_charpos = 3, | multibyte_p = false, | header_line_p = false, | string_from_display_prop_p = false, | string_from_prefix_prop_p = false, | from_disp_prop_p = true, | ellipsis_p = false, | avoid_cursor_p = false, | dp = 0x100875660, | dpvec = 0x0, | dpend = 0x7fff5fbf61e0, | dpvec_char_len = 2340753, | dpvec_face_id = 1, | saved_face_id = 126173568, | ctl_chars = 0x7fff5fbf61a8, | start = { | pos = { | charpos = 41472, | bytepos = 48 | }, | overlay_string_index = 4297919004, | string_pos = { | charpos = 41472, | bytepos = -2 | }, | dpvec_index = 5 | }, | current = { | pos = { | charpos = 4296497637, | bytepos = 0 | }, | overlay_string_index = 4303307192, | string_pos = { | charpos = 4388782248, | bytepos = 0 | }, | dpvec_index = 0 | }, | n_overlay_strings = 65, | overlay_strings_charpos = 140734799768144, | overlay_strings = 0x7fff5fbf6298, | string_overlays = 0x7fff5fbf6318, | string = 41472, | from_overlay = 0, | stack = 0x7fff5fbf63a8, | sp = 1606399392, | selective = 4300633208, | what = 1538267, | face_id = 135, | selective_display_ellipsis_p = false, | ctl_arrow_p = true, | face_box_p = false, | start_of_box_run_p = false, | end_of_box_run_p = false, | overlay_strings_at_end_processed_p = false, | ignore_overlay_strings_at_pos_p = true, | glyph_not_available_p = false, | starts_in_middle_of_char_p = false, | face_before_selective_p = false, | constrain_row_ascent_descent_p = false, | line_wrap = TRUNCATE, | base_face_id = 0, | c = 0, | len = 0, | cmp_it = { | stop_pos = 0, | id = 10, | ch = 0, | rule_idx = 0, | lookback = 41472, | nglyphs = 66, | reversed_p = false, | charpos = 140734799768208, | nchars = 2527690, | nbytes = 1, | from = 0, | to = 0, | width = 10 | }, | char_to_display = 5665909, | glyphless_method = GLYPHLESS_DISPLAY_EMPTY_BOX, | image_id = 4300633172, | slice = { | x = 140734799768048, | y = 0, | width = 6, | height = 4329443392 | }, | space_width = 140734799768528, | voffset = 233, | tab_width = 38, | font_height = 4300677920, | object = 4300633133, | position = { | charpos = 65, | bytepos = 4592619604 | }, | truncation_pixel_width = 27200, | continuation_pixel_width = 24511, | first_visible_x = 32767, | last_visible_x = 1530341, | last_visible_y = 1, | extra_line_spacing = 531292160, | max_extra_line_spacing = 12, | override_ascent = 8888664, | override_descent = 1, | override_boff = 1606380128, | glyph_row = 0x100244a25, | area = LEFT_MARGIN_AREA, | nglyphs = 0, | pixel_width = 8888664, | ascent = 1, | descent = 1606380160, | max_ascent = 32767, | max_descent = 2336037, | phys_ascent = 1, | phys_descent = 1606380520, | max_phys_ascent = 32767, | max_phys_descent = 8888664, | current_x = 1, | continuation_lines_width = 1606380448, | eol_pos = { | charpos = 4297305661, | bytepos = 140734799768528 | }, | current_y = 2522032, | first_vpos = 1, | vpos = 22, | hpos = 0, | left_user_fringe_bitmap = 1, | right_user_fringe_bitmap = 0, | left_user_fringe_face_id = 0, | right_user_fringe_face_id = 36144, | bidi_p = false, | bidi_it = { | bytepos = 41472, | charpos = 5, | ch = 0, | nchars = 140734799768864, | ch_len = 4303855960, | type = 1606380288, | type_after_wn = 32767, | orig_type = 2378277, | resolved_level = 1 '\001', | isolate_level = 0 '\0', | invalid_levels = 1305670057984, | invalid_isolates = 4303375280, | prev = { | charpos = 140734799768352, | type = 2378277, | orig_type = STRONG_L | }, | last_strong = { | charpos = 0, | type = 8407984, | orig_type = STRONG_L | }, | next_for_neutral = { | charpos = 140734799768384, | type = 2336037, | orig_type = STRONG_L | }, | prev_for_neutral = { | charpos = 65, | type = 8407984, | orig_type = STRONG_L | }, | next_for_ws = { | charpos = 140734799768672, | type = 2338365, | orig_type = STRONG_L | }, | bracket_pairing_pos = 0, | bracket_enclosed_type = 8236328, | next_en_pos = 4300633133, | next_en_type = 5665837, | sos = 6, | scan_dir = 0, | disp_pos = 4303855960, | disp_prop = 1606380448, | stack_idx = 32767, | level_stack = 0x7fff5fbf6b88, | string = { | lstring = 4598715968, | s = 0x8019b8643
, | schars = 0, | bufpos = 140734799770568, | from_disp_str = false, | unibyte = false | }, | w = 0x7fff5fbf73d0, | paragraph_dir = 8408016, | separator_limit = 140734799770592, | first_elt = true, | new_paragraph = false, | frame_window_p = true | }, | paragraph_embedding = 1606382816 | } | current_matrix_up_to_date_p = false | used_current_matrix_p = false | buffer_unchanged_p = false | temp_scroll_step = false | count = 58 | rc = 1 | centering_position = -1 | last_line_misfit = false | beg_unchanged = 1640 | end_unchanged = 2819 | frame_line_height = 18 | #7 0x000000010009620d in redisplay_window_0 (window=4597218837) at xdisp.c:14199 | No locals. | #8 0x0000000100265011 in internal_condition_case_1 (bfun=0x1000961d0 , arg=4597218837, handlers=4353710995, hfun=0x1000942b0 ) at eval.c:1333 | val = 4593401077 | c = (struct handler *) 0x1010e08b0 | #9 0x000000010009419b in redisplay_windows (window=4597218837) at xdisp.c:14179 | w = (struct window *) 0x11203fe10 | #10 0x000000010009414a in redisplay_windows (window=4403040469) at xdisp.c:14173 | w = (struct window *) 0x1067110d0 | #11 0x0000000100052b74 in redisplay_internal () at xdisp.c:13771 | gcscrollbars = false | f = (struct frame *) 0x101826a30 | w = (struct window *) 0x11203fe10 | sw = (struct window *) 0x11203fe10 | fr = (struct frame *) 0x101826a30 | pending = false | must_finish = false | match_p = true | tlbufpos = { | charpos = 1641, | bytepos = 1641 | } | tlendpos = { | charpos = 2910, | bytepos = 2910 | } | number_of_visible_frames = 1 | count = 55 | sf = (struct frame *) 0x101826a30 | polling_stopped_here = false | tail = 4387465699 | frame = 4320291381 | consider_all_windows_p = true | update_miniwindow_p = false | #12 0x00000001000548f9 in redisplay () at xdisp.c:13059 | No locals. | #13 0x0000000100188aa9 in read_char (commandflag=1, map=4825254035, prev_event=0, used_mouse_menu=0x7fff5fbfa607, end_time=0x0) at keyboard.c:2465 | echo_current = true | c = 0 | jmpcount = 140734799782496 | local_getcjmp = 0x7fff5fbfa1f0 | save_jump = 0x7fff5fbfa150 | tem = 55 | save = 0 | previous_echo_area_message = 0 | also_record = 0 | reread = false | recorded = false | polling_stopped_here = false | orig_kboard = (struct kboard *) 0x10110c460 | #14 0x0000000100183a09 in read_key_sequence (keybuf=0x7fff5fbfa940, bufsize=30, prompt=0, dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false) at keyboard.c:9030 | interrupted_kboard = (KBOARD *) 0x10110c460 | interrupted_frame = (struct frame *) 0x101826a30 | key = 140734799783616 | used_mouse_menu = false | echo_local_start = 0 | last_real_key_start = 0 | keys_local_start = 0 | new_binding = 4557 | count = 55 | t = 0 | echo_start = 0 | keys_start = 0 | current_binding = 4825254035 | first_event = 0 | first_unbound = 31 | mock_input = 0 | fkey = { | parent = 4387364963, | map = 4387364963, | start = 0, | end = 0 | } | keytran = { | parent = 4353720899, | map = 4353720899, | start = 0, | end = 0 | } | indec = { | parent = 4387365107, | map = 4387365107, | start = 0, | end = 0 | } | shift_translated = false | delayed_switch_frame = 0 | original_uppercase = 0 | original_uppercase_position = -1 | dummyflag = false | starting_buffer = (struct buffer *) 0x111c9bcf0 | fake_prefixed_keys = 0 | #15 0x0000000100182306 in command_loop_1 () at keyboard.c:1348 | cmd = 118312208 | keybuf = 0x7fff5fbfa940 | i = 1 | prev_modiff = 4097 | prev_buffer = (struct buffer *) 0x111c9bcf0 | already_adjusted = false | #16 0x0000000100264e76 in internal_condition_case (bfun=0x100181d10 , handlers=17616, hfun=0x10019d580 ) at eval.c:1309 | val = 4303324808 | c = (struct handler *) 0x10130a6f0 | #17 0x000000010019d47c in command_loop_2 (ignore=0) at keyboard.c:1088 | val = 2 | #18 0x0000000100263f3e in internal_catch (tag=18288, func=0x10019d450 , arg=0) at eval.c:1073 | val = 0 | c = (struct handler *) 0x101302470 | #19 0x0000000100180fd8 in command_loop () at keyboard.c:1059 | val = 25680 | #20 0x0000000100180e92 in recursive_edit_1 () at keyboard.c:673 | count = 52 | val = 72057594037927936 | #21 0x0000000100181283 in Frecursive_edit () at keyboard.c:744 | count = 50 | buffer = 0 | #22 0x00000001002676d4 in Ffuncall (nargs=1, args=0x7fff5fbfae58) at eval.c:2647 | internal_argbuf = 0x7fff5fbfad00 | fun = 4299163485 | original_fun = 50444384 | funcar = 4297250017 | numargs = 0 | lisp_numargs = 4589250833 | val = 4589250833 | internal_args = (Lisp_Object *) 0x7fff5fbfae60 | count = 49 | #23 0x00000001002d1bb4 in exec_byte_code (bytestr=4592077796, vector=4400472573, maxdepth=166, args_template=514, nargs=2, args=0x7fff5fbfb858) at bytecode.c:880 | targets = 0x1003f5560 | count = 20 | op = 0 | vectorp = (Lisp_Object *) 0x10649e200 | stack = { | pc = 0x10446998d "\210.\026\266\022\0164\026M\t.\a\207", | byte_string = 4592077796, | byte_string_start = 0x104469818 "\b\203\006", | next = 0x7fff5fbfc6a0 | } | top = (Lisp_Object *) 0x7fff5fbfae58 | result = 0 | type = CATCHER | #24 0x0000000100268c0f in funcall_lambda (fun=4400473205, nargs=2, arg_vector=0x7fff5fbfb858) at eval.c:2810 | val = 72057598341235128 | syms_left = 514 | next = 51541139640 | lexenv = 4400473200 | count = 20 | i = 140734799787744 | optional = false | rest = false | #25 0x0000000100267992 in Ffuncall (nargs=3, args=0x7fff5fbfb850) at eval.c:2699 | fun = 4400473205 | original_fun = 15312 | funcar = 4296499384 | numargs = 2 | lisp_numargs = 4303307192 | val = 0 | internal_args = (Lisp_Object *) 0x2 | count = 19 | #26 0x00000001002671b4 in Fapply (nargs=2, args=0x7fff5fbfb988) at eval.c:2278 | i = 3 | numargs = 2 | funcall_nargs = 3 | funcall_args = (Lisp_Object *) 0x7fff5fbfb850 | spread_arg = 0 | fun = 4400473205 | retval = 0 | sa_avail = 16360 | sa_count = 19 | sa_must_free = false | #27 0x000000010025ee55 in apply1 (fn=15312, arg=4601986147) at eval.c:2494 | No locals. | #28 0x000000010025e6a2 in call_debugger (arg=4601986147) at eval.c:308 | debug_while_redisplaying = false | count = 15 | val = 4601986083 | old_depth = 800 | old_max = 1300 | #29 0x0000000100265bf2 in maybe_call_debugger (conditions=4299215307, sig=45840, data=4601986067) at eval.c:1687 | combined_data = 4601986083 | #30 0x000000010026575e in Fsignal (error_symbol=45840, data=4601986067) at eval.c:1506 | debugger_called = false | conditions = 4299215307 | string = 0 | real_error_symbol = 45840 | clause = 41472 | h = (struct handler *) 0x101304010 | #31 0x0000000100265c3d in xsignal (error_symbol=45840, data=4601986067) at eval.c:1542 | No locals. | #32 0x0000000100261a60 in xsignal1 (error_symbol=45840, arg=58918568) at eval.c:1557 | No locals. | #33 0x000000010023b818 in Fsymbol_value (symbol=58918568) at data.c:1204 | val = 44016 | #34 0x000000010025f466 in eval_sub (form=58918568) at eval.c:2029 | lex_binding = 0 | fun = 2 | val = 0 | original_fun = 26592 | original_args = 140734799793696 | funcar = 4297452980 | count = 140734799789536 | #35 0x00000001002666c3 in Feval (form=58918568, lexical=0) at eval.c:1953 | count = 14 | #36 0x0000000100267729 in Ffuncall (nargs=3, args=0x7fff5fbfbf98) at eval.c:2653 | internal_argbuf = 0x7fff5fbfbf20 | fun = 4303203533 | original_fun = 17904 | funcar = 4297307997 | numargs = 2 | lisp_numargs = 0 | val = 4303858688 | internal_args = (Lisp_Object *) 0x7fff5fbfbfa0 | count = 13 | #37 0x00000001002d1bb4 in exec_byte_code (bytestr=4300749636, vector=4300749669, maxdepth=22, args_template=1030, nargs=1, args=0x7fff5fbfc970) at bytecode.c:880 | targets = 0x1003f5560 | count = 12 | op = 2 | vectorp = (Lisp_Object *) 0x100583b68 | stack = { | pc = 0x10073b93d "\002\")\207", | byte_string = 4300749636, | byte_string_start = 0x10073b92b "\211\203\b", | next = 0x7fff5fbfd070 | } | top = (Lisp_Object *) 0x7fff5fbfbf98 | result = 3 | type = CONDITION_CASE | #38 0x0000000100268c0f in funcall_lambda (fun=4300749589, nargs=1, arg_vector=0x7fff5fbfc968) at eval.c:2810 | val = 72057598341235128 | syms_left = 1030 | next = 51541139640 | lexenv = 4300749584 | count = 12 | i = 140734799792096 | optional = false | rest = false | #39 0x0000000100267992 in Ffuncall (nargs=2, args=0x7fff5fbfc960) at eval.c:2699 | fun = 4300749589 | original_fun = 51202928 | funcar = 83937664 | numargs = 1 | lisp_numargs = 4297452980 | val = 140734799792448 | internal_args = (Lisp_Object *) 0x500c980 | count = 11 | #40 0x00000001002d1bb4 in exec_byte_code (bytestr=4300750372, vector=4300750405, maxdepth=18, args_template=1030, nargs=1, args=0x7fff5fbfd340) at bytecode.c:880 | targets = 0x1003f5560 | count = 10 | op = 1 | vectorp = (Lisp_Object *) 0x100583e48 | stack = { | pc = 0x10073b7e7 "\n)B\211A\t=\204\032", | byte_string = 4300750372, | byte_string_start = 0x10073b7da "\b\204\b", | next = 0x7fff5fbfda30 | } | top = (Lisp_Object *) 0x7fff5fbfc960 | result = 15 | type = CONDITION_CASE | #41 0x0000000100268c0f in funcall_lambda (fun=4300750317, nargs=1, arg_vector=0x7fff5fbfd338) at eval.c:2810 | val = 72057598341235128 | syms_left = 1030 | next = 51541139640 | lexenv = 4300750312 | count = 10 | i = 140734799794608 | optional = false | rest = false | #42 0x0000000100267992 in Ffuncall (nargs=2, args=0x7fff5fbfd330) at eval.c:2699 | fun = 4300750317 | original_fun = 84135600 | funcar = 40032 | numargs = 1 | lisp_numargs = 4297452980 | val = 41472 | internal_args = (Lisp_Object *) 0x7fff5fbfd2c0 | count = 9 | #43 0x00000001002d1bb4 in exec_byte_code (bytestr=4300747588, vector=4300747621, maxdepth=14, args_template=1026, nargs=1, args=0x7fff5fbfde68) at bytecode.c:880 | targets = 0x1003f5560 | count = 8 | op = 1 | vectorp = (Lisp_Object *) 0x100583368 | stack = { | pc = 0x10073bc0d "\210\301 )\207", | byte_string = 4300747588, | byte_string_start = 0x10073bc01 "p\030\301 \210\302\001\206\v", | next = 0x7fff5fbfedc0 | } | top = (Lisp_Object *) 0x7fff5fbfd330 | result = 140734799797008 | type = CONDITION_CASE | #44 0x0000000100268c0f in funcall_lambda (fun=4300747533, nargs=1, arg_vector=0x7fff5fbfde60) at eval.c:2810 | val = 72057598341235128 | syms_left = 1026 | next = 51541139640 | lexenv = 4300747528 | count = 8 | i = 140734799797104 | optional = false | rest = false | #45 0x0000000100267992 in Ffuncall (nargs=2, args=0x7fff5fbfde58) at eval.c:2699 | fun = 4300747533 | original_fun = 85491200 | funcar = 999999000 | numargs = 1 | lisp_numargs = 1 | val = 999999000 | internal_args = (Lisp_Object *) 0x10019046c | count = 7 | #46 0x000000010025a3fa in Ffuncall_interactively (nargs=2, args=0x7fff5fbfde58) at callint.c:250 | speccount = 6 | #47 0x000000010026759d in Ffuncall (nargs=3, args=0x7fff5fbfde50) at eval.c:2630 | fun = 4303202045 | original_fun = 22176 | funcar = 4297454031 | numargs = 2 | lisp_numargs = 1533717 | val = 140734799797712 | internal_args = (Lisp_Object *) 0x1001760b8 | count = 5 | #48 0x000000010025d135 in Fcall_interactively (function=85491200, record_flag=0, keys=4353745821) at callint.c:838 | val = 4298525230 | args = (Lisp_Object *) 0x7fff5fbfde50 | visargs = (Lisp_Object *) 0x7fff5fbfde68 | specs = 4299332444 | filter_specs = 4299332444 | teml = 4296505563 | up_event = 0 | enable = 0 | sa_avail = 16310 | sa_count = 5 | sa_must_free = false | speccount = 5 | next_event = 1 | prefix_arg = 0 | string = 0x7fff5fbfdea0 "P" | tem = 0x1003b415e "" | varies = (signed char *) 0x7fff5fbfde80 "" | i = 3 | nargs = 3 | mark = 4303855416 | arg_from_tty = false | key_count = 1 | record_then_fail = false | save_this_command = 85491200 | save_last_command = 176221744 | save_this_original_command = 85491200 | save_real_this_command = 85491200 | #49 0x0000000100267764 in Ffuncall (nargs=4, args=0x7fff5fbfe698) at eval.c:2657 | internal_argbuf = 0x7fff5fbfe600 | fun = 4303201997 | original_fun = 83946880 | funcar = 4297550636 | numargs = 3 | lisp_numargs = 0 | val = 0 | internal_args = (Lisp_Object *) 0x7fff5fbfe6a0 | count = 4 | #50 0x00000001002d1bb4 in exec_byte_code (bytestr=4300063060, vector=4300063093, maxdepth=54, args_template=4102, nargs=1, args=0x7fff5fbff098) at bytecode.c:880 | targets = 0x1003f5560 | count = 4 | op = 3 | vectorp = (Lisp_Object *) 0x1004dc178 | stack = { | pc = 0x10078671f "\006\0069\203\242", | byte_string = 4300063060, | byte_string_start = 0x1007866a4 "\306\020\211?\205\023", | next = 0x0 | } | top = (Lisp_Object *) 0x7fff5fbfe698 | result = 890 | type = CATCHER | #51 0x0000000100268c0f in funcall_lambda (fun=4300063013, nargs=1, arg_vector=0x7fff5fbff090) at eval.c:2810 | val = 72057598341235128 | syms_left = 4102 | next = 51541139640 | lexenv = 4300063008 | count = 4 | i = 140734799802112 | optional = false | rest = false | #52 0x0000000100267992 in Ffuncall (nargs=2, args=0x7fff5fbff088) at eval.c:2699 | fun = 4300063013 | original_fun = 13632 | funcar = 1443439248 | numargs = 1 | lisp_numargs = 0 | val = 0 | internal_args = (Lisp_Object *) 0x10025f1cf | count = 3 | #53 0x00000001002684c4 in call1 (fn=13632, arg1=85491200) at eval.c:2509 | No locals. | #54 0x00000001001828bf in command_loop_1 () at keyboard.c:1460 | scount = 2 | cmd = 85491200 | keybuf = 0x7fff5fbff2f0 | i = 1 | prev_modiff = 47 | prev_buffer = (struct buffer *) 0x101500a98 | already_adjusted = false | #55 0x0000000100264e76 in internal_condition_case (bfun=0x100181d10 , handlers=17616, hfun=0x10019d580 ) at eval.c:1309 | val = 4303324808 | c = (struct handler *) 0x101304010 | #56 0x000000010019d47c in command_loop_2 (ignore=0) at keyboard.c:1088 | val = 4387713155 | #57 0x0000000100263f3e in internal_catch (tag=42768, func=0x10019d450 , arg=0) at eval.c:1073 | val = 0 | c = (struct handler *) 0x101303f20 | #58 0x0000000100181050 in command_loop () at keyboard.c:1067 | No locals. | #59 0x0000000100180e92 in recursive_edit_1 () at keyboard.c:673 | count = 1 | val = 0 | #60 0x0000000100181283 in Frecursive_edit () at keyboard.c:744 | count = 0 | buffer = 0 | #61 0x000000010017ee2a in main (argc=1, argv=0x7fff5fbff8f0) at emacs.c:1643 | dummy = 140734799806464 | stack_bottom_variable = 0 '\0' | do_initial_setlocale = true | dumping = false | skip_args = 0 | rlim = { | rlim_cur = 8720000, | rlim_max = 67104768 | } | no_loadup = false | junk = 0x0 | dname_arg = 0x0 | dname_arg2 = 0x7fff5fbff870 "\001" | ch_to_dir = 0x0 | original_pwd = 0x0 | | Lisp Backtrace: | "redisplay_internal (C function)" (0x0) | "recursive-edit" (0x5fbfae60) | "debug" (0x5fbfb858) | "eval" (0x5fbfbfa0) | "elisp--eval-last-sexp" (0x5fbfc968) | "eval-last-sexp" (0x5fbfd338) | "eval-print-last-sexp" (0x5fbfde60) | "funcall-interactively" (0x5fbfde58) | "call-interactively" (0x5fbfe6a0) | "command-execute" (0x5fbff090) | (gdb) `---- Let me know how to proceed, Rainer > > Thanks, > > Rainer > >> >> Thanks. -- Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany) Centre of Excellence for Invasion Biology Stellenbosch University South Africa Tel : +33 - (0)9 53 10 27 44 Cell: +33 - (0)6 85 62 59 98 Fax : +33 - (0)9 58 10 27 44 Fax (D): +49 - (0)3 21 21 25 22 44 email: Rainer@krugs.de Skype: RMkrug PGP: 0x0F52F982