GNU bug report logs - #6426
23.2; Crash in x_draw_image_glyph_string (also in 24.0)

Previous Next

Package: emacs;

Reported by: Anders Waldenborg <anders <at> 0x63.nu>

Date: Mon, 14 Jun 2010 19:58:01 UTC

Severity: normal

Tags: fixed

Found in version 23.2

Fixed in version 24.1

Done: Lars Magne Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 6426 in the body.
You can then email your comments to 6426 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#6426; Package emacs. (Mon, 14 Jun 2010 19:58:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Anders Waldenborg <anders <at> 0x63.nu>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 14 Jun 2010 19:58:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Anders Waldenborg <anders <at> 0x63.nu>
To: bug-gnu-emacs <at> gnu.org
Subject: 23.2; Crash in x_draw_image_glyph_string (also in 24.0)
Date: Mon, 14 Jun 2010 21:56:34 +0200
Emacs crashes in x_draw_image_glyph_string when running the script below
(which creates lots of images and image-refresh calls of said images)
and forcing X-window exposures (which is easily done by moving the frame
halfway out of the screen and moving it around there so parts reexposed
- after 10-20 times or so it crashes here). s->img is NULL. Removing the
call to image-refresh in the script below makes the crash disappear (but
instead the pixmap mem used in the X server increases a lot - see bug
#6230).

The same thing happens in a fresh git checkout (GNU Emacs 24.0.50.1
(i686-pc-linux-gnu, GTK+ Version 2.20.1) of 2010-06-14 on
leonov). Compiling it with -DXASSERTS=1 it triggers the xassert
(s->img); in fill_image_glyph_string, with the following backtrace:

(gdb) bt
#0  abort () at emacs.c:437
#1  0x0806c534 in fill_image_glyph_string (s=0xbfffb130) at xdisp.c:21063
#2  0x0806f556 in draw_glyphs (w=<value optimized out>,
    x=<value optimized out>, row=<value optimized out>, area=TEXT_AREA,
    start=<value optimized out>, end=1, hl=DRAW_NORMAL_TEXT, overlaps=0)
    at xdisp.c:21640
#3  0x08070b3a in expose_area (w=<value optimized out>,
    row=<value optimized out>, r=0x7c, area=TEXT_AREA) at xdisp.c:25516
#4  0x08070ce1 in expose_line (w=0x8706648, row=0x8695d60, r=0xbfffb380)
    at xdisp.c:25544
#5  0x08073abd in expose_window (w=0x8706648, fr=<value optimized out>)
    at xdisp.c:25770
#6  0x08073e52 in expose_window_tree (w=0x8706648, r=<value optimized out>)
    at xdisp.c:25843
#7  0x0807efea in expose_frame (f=0x87064c8, x=123, y=0, w=0, h=595)
    at xdisp.c:25900
#8  0x080ed01e in handle_one_xevent (dpyinfo=0x85ebc30,
    eventp=<value optimized out>, finish=<value optimized out>,
    hold_quit=0xbfffc114) at xterm.c:6224
#9  0x080ee3f9 in event_handler_gdk (gxev=0xbfffbbe0, ev=0x88f1190, 
data=0x0)
    at xterm.c:5845
#10 0xb7bb4cf0 in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#11 0xb7bb6992 in ?? () from /usr/lib/libgdk-x11-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#12 0xb7bb6daf in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#13 0xb77f72f5 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#14 0xb77fafd8 in ?? () from /lib/libglib-2.0.so.0
#15 0xb77fb1b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#16 0xb7d2dc24 in gtk_main_iteration () from /usr/lib/libgtk-x11-2.0.so.0
#17 0x080e98ca in XTread_socket (terminal=0x1, expected=1, 
hold_quit=0x86bbd38)
    at xterm.c:7218
#18 0x0812b030 in read_avail_input (expected=1) at keyboard.c:7015
#19 0x0812b16a in handle_async_input () at keyboard.c:7330
#20 0x0812b335 in process_pending_signals () at keyboard.c:7346
#21 0x081cd0b6 in Fbyte_code (bytestr=136456417, vector=136456437, 
maxdepth=28)
    at bytecode.c:535
#22 0x08195b04 in funcall_lambda (fun=<value optimized out>,
    nargs=<value optimized out>, arg_vector=0x0) at eval.c:3260
#23 0x08193933 in Ffuncall (nargs=3, args=0xbfffc310) at eval.c:3130
#24 0x081cc801 in Fbyte_code (bytestr=136456417, vector=136456437, 
maxdepth=28)
    at bytecode.c:680
#25 0x08195b04 in funcall_lambda (fun=<value optimized out>,
    nargs=<value optimized out>, arg_vector=0x0) at eval.c:3260
#26 0x08193933 in Ffuncall (nargs=3, args=0xbfffc490) at eval.c:3130
#27 0x081cc801 in Fbyte_code (bytestr=136456417, vector=136456437, 
maxdepth=28)
    at bytecode.c:680
#28 0x08195b04 in funcall_lambda (fun=<value optimized out>,
---Type <return> to continue, or q <return> to quit---
    nargs=<value optimized out>, arg_vector=0x0) at eval.c:3260
#29 0x08193933 in Ffuncall (nargs=3, args=0xbfffc610) at eval.c:3130
#30 0x081cc801 in Fbyte_code (bytestr=136456417, vector=136456437, 
maxdepth=28)
    at bytecode.c:680
#31 0x08195b04 in funcall_lambda (fun=<value optimized out>,
    nargs=<value optimized out>, arg_vector=0x0) at eval.c:3260
#32 0x08193933 in Ffuncall (nargs=2, args=0xbfffc790) at eval.c:3130
#33 0x081cc801 in Fbyte_code (bytestr=136456089, vector=136456109, 
maxdepth=8)
    at bytecode.c:680
#34 0x08195b04 in funcall_lambda (fun=<value optimized out>,
    nargs=<value optimized out>, arg_vector=0x0) at eval.c:3260
#35 0x08193933 in Ffuncall (nargs=2, args=0xbfffc958) at eval.c:3130
#36 0x08195193 in Fapply (nargs=2, args=0xbfffc958) at eval.c:2516
#37 0x081951dd in apply1 (fn=136456053, arg=143290134) at eval.c:2840
#38 0x08195577 in Feval (form=143290150) at eval.c:2472
#39 0x0819597d in Fprogn (args=142206486) at eval.c:416
#40 0x08195bf9 in funcall_lambda (fun=<value optimized out>,
    nargs=<value optimized out>, arg_vector=0x0) at eval.c:3253
#41 0x08195d03 in apply_lambda (fun=143290246, args=143288870, eval_flag=1)
    at eval.c:3184
#42 0x081953e4 in Feval (form=143288878) at eval.c:2474
#43 0x08195cd1 in apply_lambda (fun=142209102, args=143288886, eval_flag=1)
    at eval.c:3171
---Type <return> to continue, or q <return> to quit---
#44 0x081953e4 in Feval (form=143288894) at eval.c:2474
#45 0x08195830 in Fsetq (args=143288902) at eval.c:518
#46 0x08195762 in Feval (form=143288910) at eval.c:2361
#47 0x0819597d in Fprogn (args=143288918) at eval.c:416
#48 0x08195bf9 in funcall_lambda (fun=<value optimized out>,
    nargs=<value optimized out>, arg_vector=0x0) at eval.c:3253
#49 0x08195d03 in apply_lambda (fun=143288830, args=142139110, eval_flag=1)
    at eval.c:3184
#50 0x081953e4 in Feval (form=142139166) at eval.c:2474
#51 0x0819597d in Fprogn (args=144336182) at eval.c:416
#52 0x08195762 in Feval (form=144336190) at eval.c:2361
#53 0x0819597d in Fprogn (args=144336198) at eval.c:416
#54 0x081964f0 in Flet (args=144336206) at eval.c:1088
#55 0x08195762 in Feval (form=144336214) at eval.c:2361
#56 0x0819557f in Feval (form=142139174) at eval.c:2472
#57 0x0819597d in Fprogn (args=144340742) at eval.c:416
#58 0x08196300 in Fwhile (args=144340822) at eval.c:1110
#59 0x08195762 in Feval (form=144340830) at eval.c:2361
#60 0x0819597d in Fprogn (args=144340846) at eval.c:416
#61 0x08196693 in FletX (args=144340870) at eval.c:1032
#62 0x08195762 in Feval (form=144340878) at eval.c:2361
#63 0x0819597d in Fprogn (args=144340910) at eval.c:416
#64 0x08192f41 in internal_catch (tag=140671826, func=0x8195950 <Fprogn>,
---Type <return> to continue, or q <return> to quit---
    arg=144340910) at eval.c:1246
#65 0x081957ed in Fcatch (args=144340942) at eval.c:1214
#66 0x08195762 in Feval (form=144340950) at eval.c:2361
#67 0x08195520 in Feval (form=144340966) at eval.c:2399
#68 0x0819557f in Feval (form=144340902) at eval.c:2472
#69 0x0819557f in Feval (form=142140454) at eval.c:2472
#70 0x0819597d in Fprogn (args=144508550) at eval.c:416
#71 0x08195762 in Feval (form=142131022) at eval.c:2361
#72 0x0819597d in Fprogn (args=142131158) at eval.c:416
#73 0x08195762 in Feval (form=142141446) at eval.c:2361
#74 0x08195db2 in Funwind_protect (args=142141518) at eval.c:1352
#75 0x08195762 in Feval (form=142141526) at eval.c:2361
#76 0x0819597d in Fprogn (args=142141622) at eval.c:416
#77 0x08188a76 in Fsave_current_buffer (args=142141622) at editfns.c:1040
#78 0x08195762 in Feval (form=142141630) at eval.c:2361
#79 0x0819557f in Feval (form=142141550) at eval.c:2472
#80 0x0819597d in Fprogn (args=142141558) at eval.c:416
#81 0x081964f0 in Flet (args=142141566) at eval.c:1088
#82 0x08195762 in Feval (form=142141574) at eval.c:2361
#83 0x0819557f in Feval (form=142131086) at eval.c:2472
#84 0x0819557f in Feval (form=142140646) at eval.c:2472
#85 0x08195830 in Fsetq (args=142140654) at eval.c:518
#86 0x08195762 in Feval (form=142140662) at eval.c:2361
---Type <return> to continue, or q <return> to quit---
#87 0x0819597d in Fprogn (args=144508766) at eval.c:416
#88 0x08188a76 in Fsave_current_buffer (args=144508766) at editfns.c:1040
#89 0x08195762 in Feval (form=144508758) at eval.c:2361
#90 0x0819557f in Feval (form=142140766) at eval.c:2472
#91 0x0819597d in Fprogn (args=142040494) at eval.c:416
#92 0x08196693 in FletX (args=142140774) at eval.c:1032
#93 0x08195762 in Feval (form=142141014) at eval.c:2361
#94 0x0819597d in Fprogn (args=144511126) at eval.c:416
#95 0x08195762 in Feval (form=144511118) at eval.c:2361
#96 0x08195762 in Feval (form=144510990) at eval.c:2361
#97 0x0819557f in Feval (form=142141030) at eval.c:2472
#98 0x0819597d in Fprogn (args=142040510) at eval.c:416
#99 0x081964f0 in Flet (args=142141038) at eval.c:1088
#100 0x08195762 in Feval (form=142141094) at eval.c:2361
#101 0x0819597d in Fprogn (args=142040518) at eval.c:416
#102 0x08195bf9 in funcall_lambda (fun=<value optimized out>,
    nargs=<value optimized out>, arg_vector=0x0) at eval.c:3253
#103 0x08193933 in Ffuncall (nargs=2, args=0xbfffe334) at eval.c:3130
#104 0x08195193 in Fapply (nargs=2, args=0xbfffe334) at eval.c:2516
#105 0x08193ba6 in Ffuncall (nargs=3, args=0xbfffe330) at eval.c:3054
#106 0x081cc801 in Fbyte_code (bytestr=137058993, vector=137059021,
    maxdepth=16) at bytecode.c:680
#107 0x081956da in Feval (form=137058982) at eval.c:2420
---Type <return> to continue, or q <return> to quit---
#108 0x08196212 in internal_lisp_condition_case (var=138367146,
    bodyform=137058982, handlers=136459006) at eval.c:1455
#109 0x081cba5a in Fbyte_code (bytestr=137058849, vector=137058869,
    maxdepth=20) at bytecode.c:870
#110 0x08195b04 in funcall_lambda (fun=<value optimized out>,
    nargs=<value optimized out>, arg_vector=0x0) at eval.c:3260
#111 0x08193933 in Ffuncall (nargs=2, args=0xbfffe6e8) at eval.c:3130
#112 0x08194c65 in call1 (fn=138391962, arg1=144071445) at eval.c:2868
#113 0x0812cdb6 in timer_check_2 (do_it_now=1) at keyboard.c:4561
#114 timer_check (do_it_now=1) at keyboard.c:4612
#115 0x0812d07b in readable_events (flags=1) at keyboard.c:3547
#116 0x0812feff in get_input_pending (flags=1, addr=<value optimized out>)
    at keyboard.c:6887
#117 0x08130127 in detect_input_pending_run_timers (do_display=1)
    at keyboard.c:10597
#118 0x081d41e5 in wait_reading_process_output (time_limit=30, microsecs=0,
    read_kbd=-1, do_display=1, wait_for_cell=138367146, wait_proc=0x0,
    just_wait_proc=0) at process.c:5002
#119 0x08059620 in sit_for (timeout=120, reading=1, do_display=1)
    at dispnew.c:6274
#120 0x08131eea in read_char (commandflag=1, nmaps=2, maps=0xbfffee00,
    prev_event=138367146, used_mouse_menu=0xbfffeeb8, end_time=0x0)
    at keyboard.c:2819
---Type <return> to continue, or q <return> to quit---
#121 0x08132e6e in read_key_sequence (keybuf=<value optimized out>,
    bufsize=<value optimized out>, prompt=<value optimized out>,
    dont_downcase_last=0, can_return_switch_frame=1, fix_current_buffer=1)
    at keyboard.c:9402
#122 0x081351b3 in command_loop_1 () at keyboard.c:1636
#123 0x08192e61 in internal_condition_case (bfun=0x8134fe0 
<command_loop_1>,
    handlers=138398010, hfun=0x812f030 <cmd_error>) at eval.c:1510
#124 0x0812ecc5 in command_loop_2 () at keyboard.c:1356
#125 0x08192f41 in internal_catch (tag=138396130,
    func=0x812eca0 <command_loop_2>, arg=138367146) at eval.c:1246
#126 0x0812ee7f in command_loop () at keyboard.c:1335
#127 0x0812f21b in recursive_edit_1 () at keyboard.c:950
#128 0x0812f342 in Frecursive_edit () at keyboard.c:1012
#129 0x0812420c in main (argc=<value optimized out>,
    argv=<value optimized out>) at emacs.c:1801

Lisp Backtrace:
"backquote-process" (0xbfffc314)
"backquote-process" (0xbfffc494)
"backquote-process" (0xbfffc614)
"backquote-process" (0xbfffc794)
0x8222775 PVEC_COMPILED
"`" (0xbfffc9d8)
---Type <return> to continue, or q <return> to quit---
"vrend--mtx-rotate" (0xbfffca80)
"vrend--mtx-mul3x3" (0xbfffcc28)
"setq" (0xbfffccd8)
"vrend-rotate" (0xbfffcd80)
"progn" (0xbfffcee8)
"let" (0xbfffcff8)
"vrend-with-saved-matrix" (0xbfffd088)
"while" (0xbfffd158)
"let*" (0xbfffd248)
"catch" (0xbfffd408)
"cl-block-wrapper" (0xbfffd498)
"block" (0xbfffd528)
"loop" (0xbfffd5b8)
"progn" (0xbfffd668)
"progn" (0xbfffd718)
"unwind-protect" (0xbfffd7c8)
"save-current-buffer" (0xbfffd898)
"with-current-buffer" (0xbfffd928)
"let" (0xbfffda38)
"with-temp-buffer" (0xbfffdac8)
"vrend" (0xbfffdb58)
"setq" (0xbfffdc08)
"save-current-buffer" (0xbfffdcd8)
---Type <return> to continue, or q <return> to quit---
"with-current-buffer" (0xbfffdd68)
"let*" (0xbfffde58)
"progn" (0xbfffdf08)
"if" (0xbfffdf98)
"when" (0xbfffe028)
"let" (0xbfffe138)
"vrend-clock-update-buffer" (0xbfffe338)
"apply" (0xbfffe334)
"byte-code" (0xbfffe3f4)
"timer-event-handler" (0xbfffe6ec)


;;;;;;;;;;;
;;;;;;;;;;; START EXAMPLE SCRIPT
;;;;;;;;;;;


;;; Beta quality code - use at own risk

;;; Copyright (C) 2010 Anders Waldenborg
;;; I'll add a GPL header or something like that here later...

;;; Small example on how to use vrend.

;;; Defines the command vrend-clock which creates a new buffer,
;;; Make sure you resize the window/frame and stuff like that.

(require 'cl)

; vrend.el inline here...
(defconst vrend-2pi (* 8.0 (atan 1.0)))

(defun vrend--mtx-col (mtx col)
  "Get column col in matrix mtx"
  (mapcar '(lambda (v) (aref v col)) mtx))

(defun vrend--mtx-row (mtx row)
  "Get row row in matrix mtx"
  (mapcar 'identity (aref mtx row)))

(defun vrend--mtx-ref (i j)
  "Get an element in current matrix"
  (aref (aref vrend--curr-mtx i) j))

(defun vrend--dotprod (l r)
  "dot product of l and r"
  (if (or l r)
      (+ (* (car l) (car r)) (vrend--dotprod (cdr l) (cdr r)))
    0))

(defun vrend--mtx-mul3x3 (l r)
  "Matrix multiplication of two 3x3 matrices"
  `[[,(vrend--dotprod (vrend--mtx-row l 0) (vrend--mtx-col r 0)) 
,(vrend--dotprod (vrend--mtx-row l 0) (vrend--mtx-col r 1)) 
,(vrend--dotprod (vrend--mtx-row l 0) (vrend--mtx-col r 2))]
    [,(vrend--dotprod (vrend--mtx-row l 1) (vrend--mtx-col r 0)) 
,(vrend--dotprod (vrend--mtx-row l 1) (vrend--mtx-col r 1)) 
,(vrend--dotprod (vrend--mtx-row l 1) (vrend--mtx-col r 2))]
    [,(vrend--dotprod (vrend--mtx-row l 2) (vrend--mtx-col r 0)) 
,(vrend--dotprod (vrend--mtx-row l 2) (vrend--mtx-col r 1)) 
,(vrend--dotprod (vrend--mtx-row l 2) (vrend--mtx-col r 2))]])

(defun vrend--mtx-translate (dx dy)
  "translationmatrix for dx dy"
  `[[1.0 0.0 ,dx]
    [0.0 1.0 ,dy]
    [0.0 0.0 1.0]])

(defun vrend--mtx-rotate (rot)
  "rotationmatrix for rot radians"
  `[[,(cos rot) ,(- (sin rot)) 0.0]
    [,(sin rot)  ,(cos rot)     0.0]
    [       0.0         0.0    1.0]])

(defun vrend--mtx-scale (sx sy)
  "scalingmatrix"
  `[[,sx 0.0 0.0]
    [0.0 ,sy 0.0]
    [0.0 0.0 1.0]])

(defun vrend--mtx-ident ()
  "identitymatrix"
  [[1.0 0.0 0.0]
   [0.0 1.0 0.0]
   [0.0 0.0 1.0]])

(defun vrend-path-start (x y)
  "Start a new path at specified position"
  (setq vrend--curr-path nil)
  (vrend-path-moveto x y))

(defun vrend-path-moveto (x y)
  "Move point in current path to specified position"
  (add-to-list 'vrend--curr-path (list ?M x y)))

(defun vrend-path-lineto (x y)
  "Add a line segment to specified position."
  (add-to-list 'vrend--curr-path (list ?L x y)))

(defun vrend-path-close ()
  "Close current path"
  (add-to-list 'vrend--curr-path (list ?Z)))

(defun vrend-rotate (deg)
  ""
  (setq vrend--curr-mtx (vrend--mtx-mul3x3 vrend--curr-mtx 
(vrend--mtx-rotate deg))))

(defun vrend-scale (sx sy)
  ""
  (setq vrend--curr-mtx (vrend--mtx-mul3x3 vrend--curr-mtx 
(vrend--mtx-scale (float sx) (float sy)))))

(defun vrend-translate (dx dy)
  ""
  (setq vrend--curr-mtx (vrend--mtx-mul3x3 vrend--curr-mtx 
(vrend--mtx-translate (float dx) (float dy)))))

(defun vrend--render-path-element (e)
  (format "%c %s" (car e) (mapconcat '(lambda (x) (format "%f" x)) (cdr 
e) " ")))

(defun vrend--render-path ()
  (insert " d=\"" (mapconcat 'vrend--render-path-element (reverse 
vrend--curr-path) " ") "\""))

(defun vrend--render-transform ()
  (insert (format " transform=\"matrix(%f %f %f %f %f %f)\"" 
(vrend--mtx-ref 0 0) (vrend--mtx-ref 1 0) (vrend--mtx-ref 0 1) 
(vrend--mtx-ref 1 1) (vrend--mtx-ref 0 2) (vrend--mtx-ref 1 2))))

(defun vrend-path-stroke ()
  (insert "  <path")
  (vrend--render-path)
  (vrend--render-transform)
  (insert " fill=\"none\"")
  (insert " stroke=\"" (car vrend--curr-strokestyle) "\"")
  (insert " stroke-width=\"0.04\"")
  (insert " />\n"))

(defmacro vrend-with-saved-matrix (&rest body)
  (declare (indent 0) (debug t))
  `(let ((vrend-with-saved-matrix-saved-matrix vrend--curr-mtx))
     (progn
       ,@body
       (setq vrend--curr-mtx vrend-with-saved-matrix-saved-matrix))))

(defmacro vrend (width height coordinatetype &rest body)
  (declare (indent 3) (debug t))
  (let ((width (eval width))
	(height (eval height)))
  `(with-temp-buffer
      (set (make-local-variable 'vrend--curr-mtx) (vrend--mtx-ident))
      (set (make-local-variable 'vrend--curr-path) nil)
      (set (make-local-variable 'vrend--curr-strokestyle) '("black" 
:width 1))
      (set (make-local-variable 'vrend--curr-fillstyle) nil)

      (insert "<?xml version=\"1.0\" standalone=\"no\"?>\n"
	      "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n"
	      "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n"
	      (format "<svg width=\"%d\" height=\"%d\"\n" ,width ,height)
	      "     xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n")


      (when ,coordinatetype
	(vrend-translate ,(/ width 2) ,(/ height 2))

	(when (eq ,coordinatetype '1x1fit)
	  (let ((smalldir ,(min width height)))
	    (vrend-scale (/ smalldir 2.0) (/ smalldir 2.0))))

	(when (eq ,coordinatetype '1x1square)
	  (vrend-scale ,(/ width 2.0) ,(/ height 2.0)))

	(vrend-scale -1.0 -1.0))

      (progn
	,@body)

      (insert "</svg>\n")
      (create-image (buffer-string) nil t)
      )))

(provide 'vrend)


(defun vrend-clock-update-buffer (buf)
  (let ((win (get-buffer-window buf t)))
    (when win
      (let* ((X (window-inside-pixel-edges win))
	     (w (- (car (cddr X)) (car X)))
	     (h (- (cadr (cddr X)) (cadr X))))
	(with-current-buffer buf
	  (erase-buffer)
	  (ignore-errors
	   (when vrend-clock-image
	     (image-refresh vrend-clock-image t)))
	  (setq vrend-clock-image
		(vrend w h '1x1fit
			  ;; Make hour markers...
			  (vrend-path-start 0.0 0.8)
			  (vrend-path-lineto 0.0 0.9)
			  (vrend-path-close)

			  ;; ...12 of them
			  (loop for D from 0 to 11 by 1
				do (vrend-with-saved-matrix
				     (vrend-rotate (* D (/ vrend-2pi 12)))
				     (vrend-path-stroke)))

			  ;; and arrows
			  (let* ((ct (current-time))
				 (T (decode-time ct))
				 (h (nth 2 T))
				 (m (nth 1 T))
				 (s (nth 0 T))
				 (ms (/ (nth 2 ct) 1000))
				 (seconds-since-midnight (+ (* (+ (* h 60) m) 60) s))
				 (seconds-since-hour (+ (* m 60) s))
				 (ms-since-minute (+ ms (* s 1000))))
			    (vrend-with-saved-matrix
			      (vrend-path-start 0.0 0.0)
			      (vrend-path-lineto -0.05 0.4)
			      (vrend-path-lineto 0.0 0.6)
			      (vrend-path-lineto 0.05 0.4)
			      (vrend-path-close)
			      (vrend-rotate (* seconds-since-midnight (/ vrend-2pi (* 60 60 
12))))
			      (vrend-path-stroke))
			    (vrend-with-saved-matrix
			      (vrend-path-start 0.0 0.0)
			      (vrend-path-lineto -0.05 0.3)
			      (vrend-path-lineto 0.0 0.90)
			      (vrend-path-lineto 0.05 0.3)
			      (vrend-path-close)
			      (vrend-rotate (* seconds-since-hour (/ vrend-2pi (* 60 60))))
			      (vrend-path-stroke))
			    (vrend-with-saved-matrix
			      (vrend-path-start 0.0 0.0)
			      (vrend-path-lineto 0.0 0.90)
			      (vrend-path-close)
			      (vrend-rotate (* ms-since-minute (/ vrend-2pi 60000.0)))
			      (vrend-path-stroke)))))
		(insert-image vrend-clock-image)
		(redisplay t)
		(redraw-frame (window-frame win)))))))

(defun vrend-kill-buffer-hook ()
  (cancel-timer vrend-clock-timer))

(defun vrend-clock ()
  (interactive)
  (with-current-buffer (generate-new-buffer "*aw-clock*")
    (set-window-buffer nil (current-buffer))
    (make-local-variable 'vrend-clock-timer)
    (make-local-variable 'vrend-clock-image)
    (setq vrend-clock-image nil)
    (add-hook 'kill-buffer-hook 'vrend-kill-buffer-hook nil t)

    (setq vrend-clock-timer (run-at-time nil 0.1 
'vrend-clock-update-buffer (current-buffer)))))

(vrend-clock)



In GNU Emacs 23.2.1 (i486-pc-linux-gnu, GTK+ Version 2.20.0)
 of 2010-05-16 on raven, modified by Debian
Windowing system distributor `The X.Org Foundation', version 11.0.10707000
configured using `configure  '--build' 'i486-linux-gnu' '--build' 
'i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' 
'--libexecdir=/usr/lib' '--localstatedir=/var/lib' 
'--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' 
'--enable-locallisppath=/etc/emacs23:/etc/emacs:/usr/local/share/emacs/23.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.2/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.2/leim' 
'--with-x=yes' '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars' 
'build_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -g -O2' 'LDFLAGS=-g' 
'CPPFLAGS=''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: C/l

Minor modes in effect:
  flyspell-mode: t
  shell-dirtrack-mode: t
  which-function-mode: t
  show-paren-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t

Recent input:
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> C-x o <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <help-echo> C-x o C-s C-s C-s C-s <up> C-x o
<prior> C-s b u i l d _ g l y C-s <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <up> <up>
<up> <up> <up> <up> <up> <up> C-s b u i l d _ i m a
g e _ g l C-s C-s <down> <down> <down> C-s f i l l
_ i m a g e _ g l y <help-echo> C-s C-s <down> <down>
<down> <down> <down> C-a C-e C-a C-e C-a C-e C-a C-e
<left> C-a C-e <left> C-a C-e <left> C-e <return> <tab>
C-x o C-s f p r i n t C-s C-a C-SPC <down> <escape>
w C-x o C-y <up> <tab> <C-right> <C-right> <C-right>
<C-right> <left> <left> <backspace> d SPC % d C-e <left>
<left> <C-backspace> <C-backspace> s - > i m g - >
i d , SPC <up> <up> <C-left> <C-left> <C-left> C-k
C-y <down> <down> <backspace> <backspace> C-y C-k <right>
C-x C-s C-x o C-x b x t <return> C-s x a s s e r t
C-s C-s C-s C-s C-s C-r C-r <up> <down> C-c w <down-mouse-1>
<mouse-1> <return> <backspace> C-x C-s C-x 1 C-x b
<return> C-x b <return> C-x b t e r <right> <return>
<return> <backspace> C-x C-s C-x b <return> M-x r e
p <tab> o <tab> r <tab> <tab> <return>

Recent messages:
Mark saved where search started
Mark set [4 times]
Saving file /home/andersg/emacs/src/xdisp.c...
Wrote /home/andersg/emacs/src/xdisp.c
Mark saved where search started
Saving file /home/andersg/emacs/src/xdisp.c...
Wrote /home/andersg/emacs/src/xdisp.c
Saving file /home/andersg/emacs/src/xterm.c...
Wrote /home/andersg/emacs/src/xterm.c
Making completion list... [2 times]

Load-path shadows:
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-history hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-history
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-ratpoison hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-ratpoison
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-alert hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-alert
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-awesome hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-awesome
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-search hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-search
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-time hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-time
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-browse hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-browse
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-socks5 hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-socks5
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-events hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-events
/usr/share/emacs23/site-lisp/emacs-jabber/srv hides 
/usr/share/emacs/site-lisp/emacs-jabber/srv
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-muc-nick-completion 
hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-muc-nick-completion
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-bookmarks hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-bookmarks
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-feature-neg hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-feature-neg
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-logon hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-logon
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-menu hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-menu
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-chatstates hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-chatstates
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-ahc-presence hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-ahc-presence
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-export hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-export
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-festival hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-festival
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-truncate hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-truncate
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-avatar hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-avatar
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-xml hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-xml
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-register hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-register
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-si-client hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-si-client
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-autoaway hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-autoaway
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-conn hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-conn
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-muc hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-muc
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-gmail hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-gmail
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-chat hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-chat
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-widget hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-widget
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-ft-common hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-ft-common
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-ft-client hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-ft-client
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-ahc hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-ahc
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-chatbuffer hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-chatbuffer
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-modeline hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-modeline
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-core hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-core
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-version hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-version
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-si-server hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-si-server
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-private hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-private
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-keymap hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-keymap
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-util hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-util
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-ft-server hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-ft-server
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-activity hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-activity
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-newdisco hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-newdisco
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-xmessage hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-xmessage
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-sasl hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-sasl
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-screen hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-screen
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-vcard-avatars hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-vcard-avatars
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-wmii hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-wmii
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-vcard hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-vcard
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-iq hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-iq
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-watch hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-watch
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-si-common hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-si-common
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-sawfish hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-sawfish
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-disco hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-disco
/usr/share/emacs23/site-lisp/emacs-jabber/fsm hides 
/usr/share/emacs/site-lisp/emacs-jabber/fsm
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-ourversion hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-ourversion
/usr/share/emacs23/site-lisp/emacs-jabber/jabber hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-keepalive hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-keepalive
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-osd hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-osd
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-presence hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-presence
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-compose hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-compose
/usr/share/emacs23/site-lisp/emacs-jabber/jabber-roster hides 
/usr/share/emacs/site-lisp/emacs-jabber/jabber-roster
/usr/share/emacs23/site-lisp/mailcrypt/mc-pgp6 hides 
/usr/share/emacs/site-lisp/mailcrypt/mc-pgp6
/usr/share/emacs23/site-lisp/mailcrypt/expect hides 
/usr/share/emacs/site-lisp/mailcrypt/expect
/usr/share/emacs23/site-lisp/mailcrypt/mc-toplev hides 
/usr/share/emacs/site-lisp/mailcrypt/mc-toplev
/usr/share/emacs23/site-lisp/mailcrypt/mc-pgp5 hides 
/usr/share/emacs/site-lisp/mailcrypt/mc-pgp5
/usr/share/emacs23/site-lisp/mailcrypt/mc-gpg hides 
/usr/share/emacs/site-lisp/mailcrypt/mc-gpg
/usr/share/emacs23/site-lisp/mailcrypt/mc-remail hides 
/usr/share/emacs/site-lisp/mailcrypt/mc-remail
/usr/share/emacs23/site-lisp/mailcrypt/mc-pgp hides 
/usr/share/emacs/site-lisp/mailcrypt/mc-pgp
/usr/share/emacs23/site-lisp/mailcrypt/mc-setversion hides 
/usr/share/emacs/site-lisp/mailcrypt/mc-setversion
/usr/share/emacs23/site-lisp/mailcrypt/mailcrypt hides 
/usr/share/emacs/site-lisp/mailcrypt/mailcrypt
/usr/share/emacs/23.2/site-lisp/debian-startup hides 
/usr/share/emacs/site-lisp/debian-startup
/usr/share/emacs23/site-lisp/semi/pgg-pgp5 hides 
/usr/share/emacs/23.2/lisp/pgg-pgp5
/usr/share/emacs23/site-lisp/semi/pgg-gpg hides 
/usr/share/emacs/23.2/lisp/pgg-gpg
/usr/share/emacs23/site-lisp/semi/pgg-parse hides 
/usr/share/emacs/23.2/lisp/pgg-parse
/usr/share/emacs23/site-lisp/flim/sha1 hides /usr/share/emacs/23.2/lisp/sha1
/usr/share/emacs23/site-lisp/flim/md4 hides /usr/share/emacs/23.2/lisp/md4
/usr/share/emacs23/site-lisp/flim/hex-util hides 
/usr/share/emacs/23.2/lisp/hex-util
/usr/share/emacs23/site-lisp/semi/pgg-def hides 
/usr/share/emacs/23.2/lisp/pgg-def
/usr/share/emacs23/site-lisp/semi/pgg-pgp hides 
/usr/share/emacs/23.2/lisp/pgg-pgp
/usr/share/emacs23/site-lisp/semi/pgg hides /usr/share/emacs/23.2/lisp/pgg
/usr/share/emacs/site-lisp/rst hides 
/usr/share/emacs/23.2/lisp/textmodes/rst
/usr/share/emacs23/site-lisp/dictionaries-common/flyspell hides 
/usr/share/emacs/23.2/lisp/textmodes/flyspell
/usr/share/emacs23/site-lisp/dictionaries-common/ispell hides 
/usr/share/emacs/23.2/lisp/textmodes/ispell
/usr/share/emacs23/site-lisp/flim/sasl hides 
/usr/share/emacs/23.2/lisp/net/sasl
/usr/share/emacs23/site-lisp/flim/hmac-md5 hides 
/usr/share/emacs/23.2/lisp/net/hmac-md5
/usr/share/emacs23/site-lisp/flim/sasl-cram hides 
/usr/share/emacs/23.2/lisp/net/sasl-cram
/usr/share/emacs23/site-lisp/flim/hmac-def hides 
/usr/share/emacs/23.2/lisp/net/hmac-def
/usr/share/emacs23/site-lisp/flim/sasl-ntlm hides 
/usr/share/emacs/23.2/lisp/net/sasl-ntlm
/usr/share/emacs23/site-lisp/flim/sasl-digest hides 
/usr/share/emacs/23.2/lisp/net/sasl-digest
/usr/share/emacs23/site-lisp/flim/ntlm hides 
/usr/share/emacs/23.2/lisp/net/ntlm
/usr/share/emacs23/site-lisp/wl/rfc2368 hides 
/usr/share/emacs/23.2/lisp/mail/rfc2368

Features:
(shadow sort mailcrypt mail-extr message sendmail ecomplete rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231 rfc2047
rfc2045 qp ietf-drums mailabbrev nnheader mm-util mail-prsvr gmm-utils
wid-edit mailheader canlock sha1 sha1-el hex-util hashcash mail-utils
warnings emacsbug help-mode view thingatpt multi-isearch flyspell ispell
cc-mode cc-fonts easymenu cc-menus cc-cmds tramp-imap assoc tramp-gw
tramp-fish tramp-smb tramp-cache tramp-ftp tramp-cmds tramp auth-source
gnus-util netrc shell password-cache format-spec tramp-compat trampver
newcomment vc-git time-date aw-main aw-ido ido aw-python aw-uniquify
uniquify advice help-fns advice-preload aw-c-mode cc-styles cc-align
cc-engine cc-vars cc-defs regexp-opt aw-key-bindings aw-flymake flymake
aw-woman aw-yankmenu aw-appearance which-func imenu paren compile comint
ring mailcrypt-init jabber-autoloads tooltip ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd font-setting tool-bar dnd fontset
image fringe lisp-mode register page menu-bar rfn-eshadow timer select
scroll-bar mldrag mouse jit-lock font-lock syntax facemenu font-core
frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai
tai-viet lao korean japanese hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help
simple abbrev loaddefs button minibuffer faces cus-face files
text-properties overlay md5 base64 format env code-pages mule custom
widget hashtable-print-readable backquote make-network-process dbusbind
system-font-setting font-render-setting gtk x-toolkit x multi-tty emacs)




Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#6426; Package emacs. (Sat, 19 Jun 2010 19:45:03 GMT) Full text and rfc822 format available.

Message #8 received at 6426 <at> debbugs.gnu.org (full text, mbox):

From: Chong Yidong <cyd <at> stupidchicken.com>
To: Anders Waldenborg <anders <at> 0x63.nu>
Cc: 6426 <at> debbugs.gnu.org
Subject: Re: bug#6426: 23.2; Crash in x_draw_image_glyph_string (also in 24.0)
Date: Sat, 19 Jun 2010 15:44:19 -0400
Anders Waldenborg <anders <at> 0x63.nu> writes:

> Emacs crashes in x_draw_image_glyph_string when running the script below
> (which creates lots of images and image-refresh calls of said images)
> and forcing X-window exposures (which is easily done by moving the frame
> halfway out of the screen and moving it around there so parts reexposed
> - after 10-20 times or so it crashes here). s->img is NULL. Removing the
> call to image-refresh in the script below makes the crash disappear (but
> instead the pixmap mem used in the X server increases a lot - see bug
> #6230).

Thanks for the bug report.  I have checked a fix into the emacs-23
branch (this fix will eventually propagate into the trunk).




Added tag(s) fixed. Request was from Lars Magne Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Wed, 21 Sep 2011 20:40:02 GMT) Full text and rfc822 format available.

bug marked as fixed in version 24.1, send any further explanations to 6426 <at> debbugs.gnu.org and Anders Waldenborg <anders <at> 0x63.nu> Request was from Lars Magne Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Wed, 21 Sep 2011 20:40:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 20 Oct 2011 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 13 years and 242 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.