unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Babylon crashes Emacs
@ 2007-06-23 12:33 Eli Zaretskii
  2007-06-23 13:24 ` Juanma Barranquero
  0 siblings, 1 reply; 4+ messages in thread
From: Eli Zaretskii @ 2007-06-23 12:33 UTC (permalink / raw)
  To: emacs-devel

I tried to use Babylon (http://www.babylon.com/) with Emacs, and found
that not only does it not work, but Emacs actually crashes when I use
the ``Babylon click'' on one of the words displayed by Emacs.

The backtrace produced by DrMinGW (attached below) seems to indicate
that we get a WM_PAINT message that we somehow cannot grok(?).  Is it
possible that Babylon sends us WM_PAINT so that we draw some part of
our screen in a DC that isn't ours?

--------------------------------------------------------------------------
emacs.exe caused an Access Violation at location 77f1d422 in module GDI32.dll Reading from location 6aec8b55.

Registers:
eax=c0011e0b ebx=00000007 ecx=0082e1e0 edx=00000001 esi=021e2980 edi=0082e200
eip=77f1d422 esp=0082e01c ebp=0082e058 iopl=0         nv up ei pl nz na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000202

Call stack:
77F1D422  GDI32.dll:77F1D422  ExtTextOutA
0114028B  emacs.exe:0114028B  x_draw_glyph_string  w32term.c:1591
static void x_draw_glyph_string(
	struct glyph_string * s = &(indirect)
)
01035CC3  emacs.exe:01035CC3  draw_glyphs  xdisp.c:19709
static int draw_glyphs(
	struct window * w = &{
		int size = 1073745994,
		struct Lisp_Vector * vec_next = 0x018e1c00,
		Lisp_Object frame = 26090500,
		Lisp_Object mini_p = 23795713,
		Lisp_Object next = 26088964,
		Lisp_Object prev = 23795713,
		Lisp_Object hchild = 23795713,
		Lisp_Object vchild = 23795713,
		Lisp_Object parent = 23795713,
		Lisp_Object left_col = 0,
		Lisp_Object top_line = 24,
		Lisp_Object total_lines = 368,
		Lisp_Object total_cols = 672,
		Lisp_Object buffer = 34584068,
		Lisp_Object start = 24929762,
		Lisp_Object pointm = 24929738,
		Lisp_Object force_start = 23795713,
		Lisp_Object optional_new_start = 23795713,
		Lisp_Object hscroll = 0,
		Lisp_Object min_hscroll = 0,
		Lisp_Object use_time = 120,
		Lisp_Object sequence_number = 24,
		Lisp_Object temslot = 0,
		Lisp_Object last_modified = 16,
		Lisp_Object last_overlay_modified = 56,
		Lisp_Object last_point = 53632,
		Lisp_Object last_had_star = 23795713,
		Lisp_Object vertical_scroll_bar = 34992580,
		Lisp_Object left_margin_cols = 23795713,
		Lisp_Object right_margin_cols = 23795713,
		Lisp_Object left_fringe_width = 23795713,
		Lisp_Object right_fringe_width = 23795713,
		Lisp_Object fringes_outside_margins = 23795713,
		Lisp_Object scroll_bar_width = 23795713,
		Lisp_Object vertical_scroll_bar_type = 23795761,
		Lisp_Object last_mark_x = 23795713,
		Lisp_Object last_mark_y = 23795713,
		Lisp_Object window_end_pos = 0,
		Lisp_Object window_end_vpos = 176,
		Lisp_Object window_end_valid = 34584068,
		Lisp_Object update_mode_line = 23795713,
		Lisp_Object start_at_line_beg = 23795761,
		Lisp_Object display_table = 23795713,
		Lisp_Object dedicated = 23795713,
		Lisp_Object base_line_number = 8,
		Lisp_Object base_line_pos = 8,
		Lisp_Object region_showing = 23795713,
		Lisp_Object column_number_displayed = 23795713,
		Lisp_Object redisplay_end_trigger = 23795713,
		Lisp_Object too_small_ok = 23795713,
		Lisp_Object orig_total_lines = 23795713,
		Lisp_Object orig_top_line = 23795713,
		struct glyph_matrix * current_matrix = 0x02009800,
		struct glyph_matrix * desired_matrix = 0x02009c00,
		int nrows_scale_factor = 1,
		int ncols_scale_factor = 1,
		struct cursor_pos last_cursor = {
			int x = 0,
			int y = 392,
			int hpos = 0,
			int vpos = 23
		},
		struct cursor_pos cursor = {
			int x = 0,
			int y = 392,
			int hpos = 0,
			int vpos = 23
		},
		struct cursor_pos phys_cursor = {
			int x = 0,
			int y = 392,
			int hpos = 0,
			int vpos = 23
		},
		int phys_cursor_type = 1,
		int phys_cursor_width = 9,
		int phys_cursor_ascent = 13,
		int phys_cursor_height = 17,
		unsigned int phys_cursor_on_p,
		unsigned int cursor_off_p,
		unsigned int last_cursor_off_p,
		unsigned int must_be_updated_p,
		unsigned int pseudo_window_p,
		int vscroll = 0,
		int window_end_bytepos = 0,
		unsigned int frozen_window_start_p
	},
	int x = 72,
	struct glyph_row * row = &{
		struct glyph *uint32[] glyphs = (array),
		short intuint32[] used = (array),
		int x = 0,
		int y = 17,
		int pixel_width = 720,
		int ascent = 13,
		int height = 17,
		int phys_ascent = 13,
		int phys_height = 17,
		int visible_height = 17,
		int extra_line_spacing = 0,
		unsigned int hash = 208846506,
		struct display_pos start = {
			struct text_pos pos = {
				int charpos = 5737,
				int bytepos = 5737
			},
			int overlay_string_index = -1,
			struct text_pos string_pos = {
				int charpos = -1,
				int bytepos = -1
			},
			int dpvec_index = -1
		},
		struct display_pos end = {
			struct text_pos pos = {
				int charpos = 5817,
				int bytepos = 5817
			},
			int overlay_string_index = -1,
			struct text_pos string_pos = {
				int charpos = -1,
				int bytepos = -1
			},
			int dpvec_index = -1
		},
		int overlay_arrow_bitmap = 0,
		unsigned int left_user_fringe_bitmap = 0,
		unsigned int right_user_fringe_bitmap = 0,
		unsigned int left_fringe_bitmap = 458752,
		unsigned int right_fringe_bitmap = 7,
		unsigned int left_user_fringe_face_id,
		unsigned int right_user_fringe_face_id,
		unsigned int left_fringe_face_id,
		unsigned int right_fringe_face_id,
		unsigned int redraw_fringe_bitmaps_p,
		unsigned int enabled_p,
		unsigned int truncated_on_left_p,
		unsigned int truncated_on_right_p,
		unsigned int continued_p,
		unsigned int displays_text_p,
		unsigned int ends_at_zv_p,
		unsigned int fill_line_p,
		unsigned int indicate_empty_line_p,
		unsigned int contains_overlapping_glyphs_p,
		unsigned int full_width_p,
		unsigned int mode_line_p,
		unsigned int overlapped_p,
		unsigned int ends_in_middle_of_char_p,
		unsigned int starts_in_middle_of_char_p,
		unsigned int overlapping_p,
		unsigned int mouse_face_p,
		unsigned int ends_in_newline_from_string_p,
		unsigned int exact_window_width_line_p,
		unsigned int cursor_in_fringe_p,
		unsigned int ends_in_ellipsis_p,
		unsigned int indicate_bob_p,
		unsigned int indicate_top_line_p,
		unsigned int indicate_eob_p,
		unsigned int indicate_bottom_line_p,
		int continuation_lines_width = 0
	},
	enum glyph_row_area area = TEXT_AREA,
	int start = 0,
	int end = 7,
	enum draw_glyphs_face hl = DRAW_NORMAL_TEXT,
	int overlaps = 0
)
0103D42A  emacs.exe:0103D42A  expose_area  xdisp.c:23314
static void expose_area(
	struct window * w = &{
		int size = 1073745994,
		struct Lisp_Vector * vec_next = 0x018e1c00,
		Lisp_Object frame = 26090500,
		Lisp_Object mini_p = 23795713,
		Lisp_Object next = 26088964,
		Lisp_Object prev = 23795713,
		Lisp_Object hchild = 23795713,
		Lisp_Object vchild = 23795713,
		Lisp_Object parent = 23795713,
		Lisp_Object left_col = 0,
		Lisp_Object top_line = 24,
		Lisp_Object total_lines = 368,
		Lisp_Object total_cols = 672,
		Lisp_Object buffer = 34584068,
		Lisp_Object start = 24929762,
		Lisp_Object pointm = 24929738,
		Lisp_Object force_start = 23795713,
		Lisp_Object optional_new_start = 23795713,
		Lisp_Object hscroll = 0,
		Lisp_Object min_hscroll = 0,
		Lisp_Object use_time = 120,
		Lisp_Object sequence_number = 24,
		Lisp_Object temslot = 0,
		Lisp_Object last_modified = 16,
		Lisp_Object last_overlay_modified = 56,
		Lisp_Object last_point = 53632,
		Lisp_Object last_had_star = 23795713,
		Lisp_Object vertical_scroll_bar = 34992580,
		Lisp_Object left_margin_cols = 23795713,
		Lisp_Object right_margin_cols = 23795713,
		Lisp_Object left_fringe_width = 23795713,
		Lisp_Object right_fringe_width = 23795713,
		Lisp_Object fringes_outside_margins = 23795713,
		Lisp_Object scroll_bar_width = 23795713,
		Lisp_Object vertical_scroll_bar_type = 23795761,
		Lisp_Object last_mark_x = 23795713,
		Lisp_Object last_mark_y = 23795713,
		Lisp_Object window_end_pos = 0,
		Lisp_Object window_end_vpos = 176,
		Lisp_Object window_end_valid = 34584068,
		Lisp_Object update_mode_line = 23795713,
		Lisp_Object start_at_line_beg = 23795761,
		Lisp_Object display_table = 23795713,
		Lisp_Object dedicated = 23795713,
		Lisp_Object base_line_number = 8,
		Lisp_Object base_line_pos = 8,
		Lisp_Object region_showing = 23795713,
		Lisp_Object column_number_displayed = 23795713,
		Lisp_Object redisplay_end_trigger = 23795713,
		Lisp_Object too_small_ok = 23795713,
		Lisp_Object orig_total_lines = 23795713,
		Lisp_Object orig_top_line = 23795713,
		struct glyph_matrix * current_matrix = 0x02009800,
		struct glyph_matrix * desired_matrix = 0x02009c00,
		int nrows_scale_factor = 1,
		int ncols_scale_factor = 1,
		struct cursor_pos last_cursor = {
			int x = 0,
			int y = 392,
			int hpos = 0,
			int vpos = 23
		},
		struct cursor_pos cursor = {
			int x = 0,
			int y = 392,
			int hpos = 0,
			int vpos = 23
		},
		struct cursor_pos phys_cursor = {
			int x = 0,
			int y = 392,
			int hpos = 0,
			int vpos = 23
		},
		int phys_cursor_type = 1,
		int phys_cursor_width = 9,
		int phys_cursor_ascent = 13,
		int phys_cursor_height = 17,
		unsigned int phys_cursor_on_p,
		unsigned int cursor_off_p,
		unsigned int last_cursor_off_p,
		unsigned int must_be_updated_p,
		unsigned int pseudo_window_p,
		int vscroll = 0,
		int window_end_bytepos = 0,
		unsigned int frozen_window_start_p
	},
	struct glyph_row * row = &{
		struct glyph *uint32[] glyphs = (array),
		short intuint32[] used = (array),
		int x = 0,
		int y = 17,
		int pixel_width = 720,
		int ascent = 13,
		int height = 17,
		int phys_ascent = 13,
		int phys_height = 17,
		int visible_height = 17,
		int extra_line_spacing = 0,
		unsigned int hash = 208846506,
		struct display_pos start = {
			struct text_pos pos = {
				int charpos = 5737,
				int bytepos = 5737
			},
			int overlay_string_index = -1,
			struct text_pos string_pos = {
				int charpos = -1,
				int bytepos = -1
			},
			int dpvec_index = -1
		},
		struct display_pos end = {
			struct text_pos pos = {
				int charpos = 5817,
				int bytepos = 5817
			},
			int overlay_string_index = -1,
			struct text_pos string_pos = {
				int charpos = -1,
				int bytepos = -1
			},
			int dpvec_index = -1
		},
		int overlay_arrow_bitmap = 0,
		unsigned int left_user_fringe_bitmap = 0,
		unsigned int right_user_fringe_bitmap = 0,
		unsigned int left_fringe_bitmap = 458752,
		unsigned int right_fringe_bitmap = 7,
		unsigned int left_user_fringe_face_id,
		unsigned int right_user_fringe_face_id,
		unsigned int left_fringe_face_id,
		unsigned int right_fringe_face_id,
		unsigned int redraw_fringe_bitmaps_p,
		unsigned int enabled_p,
		unsigned int truncated_on_left_p,
		unsigned int truncated_on_right_p,
		unsigned int continued_p,
		unsigned int displays_text_p,
		unsigned int ends_at_zv_p,
		unsigned int fill_line_p,
		unsigned int indicate_empty_line_p,
		unsigned int contains_overlapping_glyphs_p,
		unsigned int full_width_p,
		unsigned int mode_line_p,
		unsigned int overlapped_p,
		unsigned int ends_in_middle_of_char_p,
		unsigned int starts_in_middle_of_char_p,
		unsigned int overlapping_p,
		unsigned int mouse_face_p,
		unsigned int ends_in_newline_from_string_p,
		unsigned int exact_window_width_line_p,
		unsigned int cursor_in_fringe_p,
		unsigned int ends_in_ellipsis_p,
		unsigned int indicate_bob_p,
		unsigned int indicate_top_line_p,
		unsigned int indicate_eob_p,
		unsigned int indicate_bottom_line_p,
		int continuation_lines_width = 0
	},
	XRectangle * r = &{
		int x = 0,
		int y = 0,
		unsigned int width = 67,
		unsigned int height = 92
	},
	enum glyph_row_area area = TEXT_AREA
)
0103D80A  emacs.exe:0103D80A  expose_line  xdisp.c:23339
static int expose_line(
	struct window * w = ,
	struct glyph_row * row = ,
	XRectangle * r = &{
		int x = 0,
		int y = 0,
		unsigned int width = 67,
		unsigned int height = 92
	}
)
0103D9C0  emacs.exe:0103D9C0  expose_window  xdisp.c:23540
static int expose_window(
	struct window * w = ,
	XRectangle * fr = 
)
0103DE9D  emacs.exe:0103DE9D  expose_window_tree  xdisp.c:23599
static int expose_window_tree(
	struct window * w = ,
	XRectangle * r = 
)
0103DF37  emacs.exe:0103DF37  expose_frame  xdisp.c:23658
void expose_frame(
	struct frame * f = &{
		int size = 1073742932,
		struct Lisp_Vector * next = 0x01ff8e40,
		Lisp_Object name = 41503763,
		Lisp_Object icon_name = 23795713,
		Lisp_Object title = 23795713,
		Lisp_Object focus_frame = 23795713,
		Lisp_Object root_window = 26089476,
		Lisp_Object selected_window = 26089476,
		Lisp_Object minibuffer_window = 26088964,
		Lisp_Object param_alist = 25990525,
		Lisp_Object scroll_bars = 34992580,
		Lisp_Object condemned_scroll_bars = 23795713,
		Lisp_Object menu_bar_items = 26493956,
		Lisp_Object face_alist = 35571045,
		Lisp_Object menu_bar_vector = 33755140,
		int menu_bar_items_used = 0,
		Lisp_Object buffer_predicate = 23795713,
		Lisp_Object buffer_list = 42852301,
		Lisp_Object menu_bar_window = 23795713,
		Lisp_Object tool_bar_window = 33617412,
		Lisp_Object tool_bar_items = 43755524,
		Lisp_Object desired_tool_bar_string = 34245235,
		Lisp_Object current_tool_bar_string = 36441427,
		struct face_cache * face_cache = 0x01fffec0,
		char * namebuf = 0x016c3fa0,
		struct glyph_pool * current_pool = 0x00000000,
		struct glyph_pool * desired_pool = 0x00000000,
		struct glyph_matrix * desired_matrix = 0x00000000,
		struct glyph_matrix * current_matrix = 0x00000000,
		unsigned int glyphs_initialized_p,
		int tool_bar_lines = 3,
		int n_tool_bar_rows = 1,
		int n_tool_bar_items = 14,
		char * decode_mode_spec_buffer = 0x0200f200,
		int * insert_line_cost = 0x016ebd00,
		int * delete_line_cost = 0x01944c00,
		int * insert_n_lines_cost = 0x018e9000,
		int * delete_n_lines_cost = 0x016c1d00,
		int text_lines = 50,
		int text_cols = 80,
		int total_lines = 0,
		int total_cols = 84,
		int new_text_lines = 0,
		int new_text_cols = 0,
		int left_pos = 409,
		int top_pos = 28,
		int pixel_height = 850,
		int pixel_width = 756,
		int x_pixels_diff = 413,
		int y_pixels_diff = 70,
		int win_gravity = 1,
		int size_hint_flags = 0,
		int border_width = 2,
		int internal_border_width = 0,
		int column_width = 9,
		int space_width = 9,
		int line_height = 17,
		enum output_method output_method = output_w32,
		union output_data output_data = {
			struct x_output * x = 0x01944000,
			struct w32_output * w32 = 0x01944000,
			struct mac_output * mac = 0x01944000,
			int nothing = 26492928
		},
		int fringe_cols = 2,
		int left_fringe_width = 9,
		int right_fringe_width = 9,
		int want_fullscreen = 0,
		int menu_bar_lines = 0,
		int external_menu_bar = 1,
		char display_preempted = 0,
		char visible = 1,
		char iconified = 0,
		char async_visible = 1,
		char async_iconified = 0,
		char garbaged = 0,
		char has_minibuffer = 1,
		char wants_modeline = 1,
		char can_have_scroll_bars = 1,
		enum vertical_scroll_bar_type vertical_scroll_bar_type = vertical_scroll_bar_right,
		enum text_cursor_kinds desired_cursor = FILLED_BOX_CURSOR,
		int cursor_width = 23915289,
		enum text_cursor_kinds blink_off_cursor = DEFAULT_CURSOR,
		int blink_off_cursor_width = 0,
		char auto_raise = 0,
		char auto_lower = 0,
		char no_split = 0,
		char explicit_name = 0,
		char window_sizes_changed = 0,
		char * message_buf = 0x0200f000,
		int scroll_bottom_vpos = -1,
		int config_scroll_bar_width = 16,
		int config_scroll_bar_cols = 2,
		int scroll_bar_actual_width = 18,
		int cost_calculation_baud_rate = 19200,
		char mouse_moved = 1,
		double gamma = 0.000000,
		int extra_line_spacing = 0,
		unsigned int resized_p,
		unsigned int force_flush_display_p,
		unsigned int default_face_done_p,
		unsigned int already_hscrolled_p,
		unsigned int updated_p,
		unsigned int minimize_tool_bar_window_p
	},
	int x = 0,
	int y = 0,
	int w = 67,
	int h = 143
)
0114490D  emacs.exe:0114490D  w32_read_socket  w32term.c:4229
int w32_read_socket(
	int sd = 0,
	int expected = 0,
	struct input_event * hold_quit = &{
		enum event_kind kind = NO_EVENT,
		int code = 0,
		enum scroll_bar_part part = scroll_bar_above_handle,
		int modifiers = 0,
		Lisp_Object x = 0,
		Lisp_Object y = 0,
		long unsigned int timestamp = 0,
		int *uint32[] padding = (array),
		Lisp_Object frame_or_window = 0,
		Lisp_Object arg = 0
	}
)
01056C11  emacs.exe:01056C11  read_avail_input  keyboard.c:6846
static int read_avail_input(
	int expected = 0
)
01056CBD  emacs.exe:01056CBD  get_input_pending  keyboard.c:6730
static void get_input_pending(
	int * addr = ,
	int flags = 
)
01056D95  emacs.exe:01056D95  detect_input_pending_run_timers  keyboard.c:10239
int detect_input_pending_run_timers(
	int do_display = 1
)
01043B80  emacs.exe:01043B80  wait_reading_process_output  process.c:4697
int wait_reading_process_output(
	int time_limit = 15,
	int microsecs = 0,
	int read_kbd = -1,
	int do_display = 1,
	Lisp_Object wait_for_cell = 23795713,
	struct Lisp_Process * wait_proc = &{
		int size = ,
		struct Lisp_Vector * v_next = ,
		Lisp_Object infd = ,
		Lisp_Object outfd = ,
		Lisp_Object tty_name = ,
		Lisp_Object name = ,
		Lisp_Object command = ,
		Lisp_Object filter = ,
		Lisp_Object sentinel = ,
		Lisp_Object log = ,
		Lisp_Object buffer = ,
		Lisp_Object childp = ,
		Lisp_Object plist = ,
		Lisp_Object mark = ,
		Lisp_Object kill_without_query = ,
		Lisp_Object status = ,
		Lisp_Object pty_flag = ,
		Lisp_Object tick = ,
		Lisp_Object update_tick = ,
		Lisp_Object decode_coding_system = ,
		Lisp_Object decoding_buf = ,
		Lisp_Object decoding_carryover = ,
		Lisp_Object encode_coding_system = ,
		Lisp_Object encoding_buf = ,
		Lisp_Object encoding_carryover = ,
		Lisp_Object inherit_coding_system_flag = ,
		Lisp_Object filter_multibyte = ,
		Lisp_Object adaptive_read_buffering = ,
		Lisp_Object read_output_delay = ,
		Lisp_Object read_output_skip = ,
		pid_t pid = ,
		int raw_status_new,
		int raw_status = 
	},
	int just_wait_proc = 0
)
01095B38  emacs.exe:01095B38  sit_for  dispnew.c:6582
Lisp_Object sit_for(
	Lisp_Object timeout = 120,
	int reading = 1,
	int do_display = 1
)
010598C7  emacs.exe:010598C7  read_char  keyboard.c:2904
Lisp_Object read_char(
	int commandflag = 1,
	int nmaps = 4,
	Lisp_Object * maps = &34136997,
	Lisp_Object prev_event = 23795713,
	int * used_mouse_menu = &0,
	struct timeval * end_time = &{
		long int tv_sec = ,
		long int tv_usec = 
	}
)
0105ABF1  emacs.exe:0105ABF1  read_key_sequence  keyboard.c:9142
static int read_key_sequence(
	Lisp_Object * keybuf = &192,
	int bufsize = 30,
	Lisp_Object prompt = 23795713,
	int dont_downcase_last = 0,
	int can_return_switch_frame = 1,
	int fix_current_buffer = 1
)
0105C3C7  emacs.exe:0105C3C7  command_loop_1  keyboard.c:1618
Lisp_Object command_loop_1(
	
)
0100A317  emacs.exe:0100A317  internal_condition_case  eval.c:1482
Lisp_Object internal_condition_case(
	Lisp_Object ()(void) * bfun = &command_loop_1,
	Lisp_Object handlers = 23863945,
	Lisp_Object ()(void) * hfun = &cmd_error
)
01050416  emacs.exe:01050416  command_loop_2  keyboard.c:1329
Lisp_Object command_loop_2(
	
)
0100A24C  emacs.exe:0100A24C  internal_catch  eval.c:1222
Lisp_Object internal_catch(
	Lisp_Object tag = 23854081,
	Lisp_Object ()(void) * func = &command_loop_2,
	Lisp_Object arg = 23795713
)
01050263  emacs.exe:01050263  command_loop  keyboard.c:1312
Lisp_Object command_loop(
	
)
010502F7  emacs.exe:010502F7  recursive_edit_1  keyboard.c:1007
Lisp_Object recursive_edit_1(
	
)
010503DC  emacs.exe:010503DC  Frecursive_edit  keyboard.c:1068
Lisp_Object Frecursive_edit(
	
)
01002A48  emacs.exe:01002A48  main  emacs.c:1765
int main(
	int argc = 1,
	char * * argv = &0x012be188
)
01001247  emacs.exe:01001247
01001298  emacs.exe:01001298
7C816FD7  kernel32.dll:7C816FD7  RegisterWaitForInputIdle

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2007-06-24 16:59 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-23 12:33 Babylon crashes Emacs Eli Zaretskii
2007-06-23 13:24 ` Juanma Barranquero
2007-06-23 13:42   ` Eli Zaretskii
2007-06-24 16:59     ` Juanma Barranquero

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).