From: YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
To: emacs-devel@gnu.org
Subject: Re: x-display-pixel-width/height inconsistency
Date: Fri, 22 Mar 2013 08:29:55 +0900 [thread overview]
Message-ID: <wl1ub8qqks.wl%mituharu@math.s.chiba-u.ac.jp> (raw)
In-Reply-To: <wlip4l7chu.wl%mituharu@math.s.chiba-u.ac.jp>
>>>>> On Thu, 21 Mar 2013 10:44:29 +0900, YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> said:
>> Then use
>> w = GetSystemMetrics(SM_CXVIRTUALSCREEN);
>> h = GetSystemMetrics(SM_CYVIRTUALSCREEN);
> Thanks. I tried making a patch using them. Do you happen to know an
> appropriate way to exclude Windows 95 and NT 4 where
> SM_CXVIRTUALSCREEN and SM_CYVIRTUALSCREEN are not available?
Patch updated. I used the condition (w32_major_version == 4 &&
w32_minor_version == 0) to distinguish Windows 95 and NT 4 from the
other versions. Also, changes for the NS port are included.
I'll install it in a few days if no problems found.
YAMAMOTO Mitsuharu
mituharu@math.s.chiba-u.ac.jp
=== modified file 'src/nsfns.m'
*** src/nsfns.m 2013-03-20 09:56:19 +0000
--- src/nsfns.m 2013-03-21 23:16:54 +0000
***************
*** 144,187 ****
}
! /* Let the user specify an Nextstep display with a frame.
! nil stands for the selected frame--or, if that is not an Nextstep frame,
the first Nextstep display on the list. */
static struct ns_display_info *
! check_ns_display_info (Lisp_Object frame)
{
! if (NILP (frame))
{
! struct frame *f = SELECTED_FRAME ();
! if (FRAME_NS_P (f) && FRAME_LIVE_P (f) )
! return FRAME_NS_DISPLAY_INFO (f);
else if (x_display_list != 0)
! return x_display_list;
else
error ("Nextstep windows are not in use or not initialized");
}
! else if (INTEGERP (frame))
{
! struct terminal *t = get_terminal (frame, 1);
if (t->type != output_ns)
! error ("Terminal %"pI"d is not a Nextstep display", XINT (frame));
! return t->display_info.ns;
}
! else if (STRINGP (frame))
! return ns_display_info_for_name (frame);
else
{
! FRAME_PTR f;
!
! CHECK_LIVE_FRAME (frame);
! f = XFRAME (frame);
! if (! FRAME_NS_P (f))
! error ("non-Nextstep frame used");
! return FRAME_NS_DISPLAY_INFO (f);
}
! return NULL; /* shut compiler up */
}
--- 144,188 ----
}
! /* Let the user specify a Nextstep display with a Lisp object.
! OBJECT may be nil, a frame or a terminal object.
! nil stands for the selected frame--or, if that is not a Nextstep frame,
the first Nextstep display on the list. */
+
static struct ns_display_info *
! check_ns_display_info (Lisp_Object object)
{
! struct ns_display_info *dpyinfo = NULL;
!
! if (NILP (object))
{
! struct frame *sf = XFRAME (selected_frame);
!
! if (FRAME_NS_P (sf) && FRAME_LIVE_P (sf))
! dpyinfo = FRAME_NS_DISPLAY_INFO (sf);
else if (x_display_list != 0)
! dpyinfo = x_display_list;
else
error ("Nextstep windows are not in use or not initialized");
}
! else if (TERMINALP (object))
{
! struct terminal *t = get_terminal (object, 1);
if (t->type != output_ns)
! error ("Terminal %"pI"d is not a Nextstep display", XINT (object));
! dpyinfo = t->display_info.ns;
}
! else if (STRINGP (object))
! dpyinfo = ns_display_info_for_name (object);
else
{
! FRAME_PTR f = check_ns_frame (object);
! dpyinfo = FRAME_NS_DISPLAY_INFO (f);
}
!
! return dpyinfo;
}
***************
*** 1699,1727 ****
}
! DEFUN ("x-display-mm-height", Fx_display_mm_height, Sx_display_mm_height,
! 0, 1, 0,
! doc: /* Return the height of Nextstep display server DISPLAY, in millimeters.
! DISPLAY should be a frame, the display name as a string, or a terminal ID.
! If omitted or nil, the selected frame's display is used. */)
! (Lisp_Object display)
{
! check_ns ();
! return make_number ((int)
! ([ns_get_screen (display) frame].size.height/(92.0/25.4)));
}
! DEFUN ("x-display-mm-width", Fx_display_mm_width, Sx_display_mm_width,
! 0, 1, 0,
! doc: /* Return the width of Nextstep display server DISPLAY, in millimeters.
! DISPLAY should be a frame, the display name as a string, or a terminal ID.
! If omitted or nil, the selected frame's display is used. */)
! (Lisp_Object display)
{
! check_ns ();
! return make_number ((int)
! ([ns_get_screen (display) frame].size.width/(92.0/25.4)));
}
--- 1700,1728 ----
}
! DEFUN ("x-display-mm-height", Fx_display_mm_height, Sx_display_mm_height, 0, 1, 0,
! doc: /* Return the height in millimeters of the Nextstep display TERMINAL.
! The optional argument TERMINAL specifies which display to ask about.
! TERMINAL should be a terminal object, a frame or a display name (a string).
! If omitted or nil, that stands for the selected frame's display. */)
! (Lisp_Object terminal)
{
! struct ns_display_info *dpyinfo = check_ns_display_info (terminal);
!
! return make_number ((int) (x_display_pixel_height (dpyinfo) / (92.0/25.4)));
}
! DEFUN ("x-display-mm-width", Fx_display_mm_width, Sx_display_mm_width, 0, 1, 0,
! doc: /* Return the width in millimeters of the Nextstep display TERMINAL.
! The optional argument TERMINAL specifies which display to ask about.
! TERMINAL should be a terminal object, a frame or a display name (a string).
! If omitted or nil, that stands for the selected frame's display. */)
! (Lisp_Object terminal)
{
! struct ns_display_info *dpyinfo = check_ns_display_info (terminal);
!
! return make_number ((int) (x_display_pixel_width (dpyinfo) / (92.0/25.4)));
}
***************
*** 1751,1766 ****
DEFUN ("x-display-visual-class", Fx_display_visual_class,
Sx_display_visual_class, 0, 1, 0,
! doc: /* Return the visual class of the Nextstep display server DISPLAY.
The value is one of the symbols `static-gray', `gray-scale',
`static-color', `pseudo-color', `true-color', or `direct-color'.
! DISPLAY should be a frame, the display name as a string, or a terminal ID.
! If omitted or nil, the selected frame's display is used. */)
! (Lisp_Object display)
{
! NSWindowDepth depth;
! check_ns ();
! depth = [ns_get_screen (display) depth];
if ( depth == NSBestDepth (NSCalibratedWhiteColorSpace, 2, 2, YES, NULL))
return intern ("static-gray");
--- 1752,1768 ----
DEFUN ("x-display-visual-class", Fx_display_visual_class,
Sx_display_visual_class, 0, 1, 0,
! doc: /* Return the visual class of the Nextstep display TERMINAL.
The value is one of the symbols `static-gray', `gray-scale',
`static-color', `pseudo-color', `true-color', or `direct-color'.
!
! The optional argument TERMINAL specifies which display to ask about.
! TERMINAL should a terminal object, a frame or a display name (a string).
! If omitted or nil, that stands for the selected frame's display. */)
! (Lisp_Object terminal)
{
! struct ns_display_info *dpyinfo = check_ns_display_info (terminal);
! NSWindowDepth depth = [[[NSScreen screens] objectAtIndex:0] depth];
if ( depth == NSBestDepth (NSCalibratedWhiteColorSpace, 2, 2, YES, NULL))
return intern ("static-gray");
***************
*** 2332,2344 ****
DEFUN ("xw-display-color-p", Fxw_display_color_p, Sxw_display_color_p, 0, 1, 0,
doc: /* Internal function called by `display-color-p', which see. */)
! (Lisp_Object display)
{
! NSWindowDepth depth;
! NSString *colorSpace;
! check_ns ();
! depth = [ns_get_screen (display) depth];
! colorSpace = NSColorSpaceFromDepth (depth);
return [colorSpace isEqualToString: NSDeviceWhiteColorSpace]
|| [colorSpace isEqualToString: NSCalibratedWhiteColorSpace]
--- 2334,2344 ----
DEFUN ("xw-display-color-p", Fxw_display_color_p, Sxw_display_color_p, 0, 1, 0,
doc: /* Internal function called by `display-color-p', which see. */)
! (Lisp_Object terminal)
{
! struct ns_display_info *dpyinfo = check_ns_display_info (terminal);
! NSWindowDepth depth = [[[NSScreen screens] objectAtIndex:0] depth];
! NSString *colorSpace = NSColorSpaceFromDepth (depth);
return [colorSpace isEqualToString: NSDeviceWhiteColorSpace]
|| [colorSpace isEqualToString: NSCalibratedWhiteColorSpace]
***************
*** 2346,2363 ****
}
! DEFUN ("x-display-grayscale-p", Fx_display_grayscale_p,
! Sx_display_grayscale_p, 0, 1, 0,
doc: /* Return t if the Nextstep display supports shades of gray.
Note that color displays do support shades of gray.
! The optional argument DISPLAY specifies which display to ask about.
! DISPLAY should be either a frame, a display name (a string), or terminal ID.
! If omitted or nil, that stands for the selected frame's display. */)
! (Lisp_Object display)
{
! NSWindowDepth depth;
! check_ns ();
! depth = [ns_get_screen (display) depth];
return NSBitsPerPixelFromDepth (depth) > 1 ? Qt : Qnil;
}
--- 2346,2362 ----
}
! DEFUN ("x-display-grayscale-p", Fx_display_grayscale_p, Sx_display_grayscale_p,
! 0, 1, 0,
doc: /* Return t if the Nextstep display supports shades of gray.
Note that color displays do support shades of gray.
! The optional argument TERMINAL specifies which display to ask about.
! TERMINAL should be a terminal object, a frame or a display name (a string).
! If omitted or nil, that stands for the selected frame's display. */)
! (Lisp_Object terminal)
{
! struct ns_display_info *dpyinfo = check_ns_display_info (terminal);
! NSWindowDepth depth = [[[NSScreen screens] objectAtIndex:0] depth];
return NSBitsPerPixelFromDepth (depth) > 1 ? Qt : Qnil;
}
***************
*** 2365,2391 ****
DEFUN ("x-display-pixel-width", Fx_display_pixel_width, Sx_display_pixel_width,
0, 1, 0,
! doc: /* Return the width in pixels of the Nextstep display DISPLAY.
! The optional argument DISPLAY specifies which display to ask about.
! DISPLAY should be either a frame, a display name (a string), or terminal ID.
If omitted or nil, that stands for the selected frame's display. */)
! (Lisp_Object display)
{
! check_ns ();
! return make_number ((int) [ns_get_screen (display) frame].size.width);
}
DEFUN ("x-display-pixel-height", Fx_display_pixel_height,
Sx_display_pixel_height, 0, 1, 0,
! doc: /* Return the height in pixels of the Nextstep display DISPLAY.
! The optional argument DISPLAY specifies which display to ask about.
! DISPLAY should be either a frame, a display name (a string), or terminal ID.
If omitted or nil, that stands for the selected frame's display. */)
! (Lisp_Object display)
{
! check_ns ();
! return make_number ((int) [ns_get_screen (display) frame].size.height);
}
--- 2364,2392 ----
DEFUN ("x-display-pixel-width", Fx_display_pixel_width, Sx_display_pixel_width,
0, 1, 0,
! doc: /* Return the width in pixels of the Nextstep display TERMINAL.
! The optional argument TERMINAL specifies which display to ask about.
! TERMINAL should be a terminal object, a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
! (Lisp_Object terminal)
{
! struct ns_display_info *dpyinfo = check_ns_display_info (terminal);
!
! return make_number (x_display_pixel_width (dpyinfo));
}
DEFUN ("x-display-pixel-height", Fx_display_pixel_height,
Sx_display_pixel_height, 0, 1, 0,
! doc: /* Return the height in pixels of the Nextstep display TERMINAL.
! The optional argument TERMINAL specifies which display to ask about.
! TERMINAL should be a terminal object, a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
! (Lisp_Object terminal)
{
! struct ns_display_info *dpyinfo = check_ns_display_info (terminal);
!
! return make_number (x_display_pixel_height (dpyinfo));
}
***************
*** 2422,2436 ****
DEFUN ("x-display-planes", Fx_display_planes, Sx_display_planes,
0, 1, 0,
! doc: /* Return the number of bitplanes of the Nextstep display DISPLAY.
! The optional argument DISPLAY specifies which display to ask about.
! DISPLAY should be either a frame, a display name (a string), or terminal ID.
If omitted or nil, that stands for the selected frame's display. */)
! (Lisp_Object display)
{
! check_ns ();
return make_number
! (NSBitsPerPixelFromDepth ([ns_get_screen (display) depth]));
}
--- 2423,2438 ----
DEFUN ("x-display-planes", Fx_display_planes, Sx_display_planes,
0, 1, 0,
! doc: /* Return the number of bitplanes of the Nextstep display TERMINAL.
! The optional argument TERMINAL specifies which display to ask about.
! TERMINAL should be a terminal object, a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
! (Lisp_Object terminal)
{
! struct ns_display_info *dpyinfo = check_ns_display_info (terminal);
!
return make_number
! (NSBitsPerPixelFromDepth ([[[NSScreen screens] objectAtIndex:0] depth]));
}
=== modified file 'src/nsterm.m'
*** src/nsterm.m 2013-03-16 14:22:37 +0000
--- src/nsterm.m 2013-03-21 22:55:46 +0000
***************
*** 3813,3827 ****
int
x_display_pixel_height (struct ns_display_info *dpyinfo)
{
! NSScreen *screen = [NSScreen mainScreen];
! return [screen frame].size.height;
}
int
x_display_pixel_width (struct ns_display_info *dpyinfo)
{
! NSScreen *screen = [NSScreen mainScreen];
! return [screen frame].size.width;
}
--- 3813,3843 ----
int
x_display_pixel_height (struct ns_display_info *dpyinfo)
{
! NSArray *screens = [NSScreen screens];
! NSEnumerator *enumerator = [screens objectEnumerator];
! NSScreen *screen;
! NSRect frame;
!
! frame = NSZeroRect;
! while ((screen = [enumerator nextObject]) != nil)
! frame = NSUnionRect (frame, [screen frame]);
!
! return NSHeight (frame);
}
int
x_display_pixel_width (struct ns_display_info *dpyinfo)
{
! NSArray *screens = [NSScreen screens];
! NSEnumerator *enumerator = [screens objectEnumerator];
! NSScreen *screen;
! NSRect frame;
!
! frame = NSZeroRect;
! while ((screen = [enumerator nextObject]) != nil)
! frame = NSUnionRect (frame, [screen frame]);
!
! return NSWidth (frame);
}
=== modified file 'src/w32fns.c'
*** src/w32fns.c 2013-03-20 11:29:37 +0000
--- src/w32fns.c 2013-03-21 05:20:04 +0000
***************
*** 4731,4745 ****
{
struct w32_display_info *dpyinfo = check_x_display_info (display);
HDC hdc;
! int cap;
! hdc = GetDC (dpyinfo->root_window);
! cap = GetDeviceCaps (hdc, VERTSIZE);
!
! ReleaseDC (dpyinfo->root_window, hdc);
!
! return make_number (cap);
}
DEFUN ("x-display-mm-width", Fx_display_mm_width, Sx_display_mm_width, 0, 1, 0,
--- 4731,4745 ----
{
struct w32_display_info *dpyinfo = check_x_display_info (display);
HDC hdc;
! float mm_per_pixel;
! hdc = GetDC (NULL);
! mm_per_pixel = ((float) GetDeviceCaps (hdc, VERTSIZE)
! / GetDeviceCaps (hdc, VERTRES));
! ReleaseDC (NULL, hdc);
! return make_number ((int) (x_display_pixel_height (dpyinfo) * mm_per_pixel
! + 0.5f));
}
DEFUN ("x-display-mm-width", Fx_display_mm_width, Sx_display_mm_width, 0, 1, 0,
***************
*** 4750,4766 ****
(Lisp_Object display)
{
struct w32_display_info *dpyinfo = check_x_display_info (display);
-
HDC hdc;
! int cap;
!
! hdc = GetDC (dpyinfo->root_window);
!
! cap = GetDeviceCaps (hdc, HORZSIZE);
! ReleaseDC (dpyinfo->root_window, hdc);
! return make_number (cap);
}
DEFUN ("x-display-backing-store", Fx_display_backing_store,
--- 4750,4765 ----
(Lisp_Object display)
{
struct w32_display_info *dpyinfo = check_x_display_info (display);
HDC hdc;
! float mm_per_pixel;
! hdc = GetDC (NULL);
! mm_per_pixel = ((float) GetDeviceCaps (hdc, HORZSIZE)
! / GetDeviceCaps (hdc, HORZRES));
! ReleaseDC (NULL, hdc);
! return make_number ((int) (x_display_pixel_width (dpyinfo) * mm_per_pixel
! + 0.5f));
}
DEFUN ("x-display-backing-store", Fx_display_backing_store,
=== modified file 'src/w32term.c'
*** src/w32term.c 2013-03-15 10:07:29 +0000
--- src/w32term.c 2013-03-21 05:08:16 +0000
***************
*** 142,147 ****
--- 142,156 ----
#define WS_EX_LAYERED 0x80000
#endif
+ /* SM_CXVIRTUALSCREEN and SM_CYVIRTUALSCREEN are not defined on 95 and
+ NT4. */
+ #ifndef SM_CXVIRTUALSCREEN
+ #define SM_CXVIRTUALSCREEN 78
+ #endif
+ #ifndef SM_CYVIRTUALSCREEN
+ #define SM_CXVIRTUALSCREEN 79
+ #endif
+
/* This is a frame waiting to be autoraised, within w32_read_socket. */
struct frame *pending_autoraise_frame;
***************
*** 515,533 ****
int
x_display_pixel_height (struct w32_display_info *dpyinfo)
{
! HDC dc = GetDC (NULL);
! int pixels = GetDeviceCaps (dc, VERTRES);
! ReleaseDC (NULL, dc);
! return pixels;
}
int
x_display_pixel_width (struct w32_display_info *dpyinfo)
{
! HDC dc = GetDC (NULL);
! int pixels = GetDeviceCaps (dc, HORZRES);
! ReleaseDC (NULL, dc);
! return pixels;
}
\f
--- 524,554 ----
int
x_display_pixel_height (struct w32_display_info *dpyinfo)
{
! if (!(w32_major_version == 4 && w32_minor_version == 0))
! return GetSystemMetrics (SM_CYVIRTUALSCREEN);
! else
! {
! /* Windows 95 or NT 4.0 */
! HDC dc = GetDC (NULL);
! int pixels = GetDeviceCaps (dc, VERTRES);
! ReleaseDC (NULL, dc);
! return pixels;
! }
}
int
x_display_pixel_width (struct w32_display_info *dpyinfo)
{
! if (!(w32_major_version == 4 && w32_minor_version == 0))
! return GetSystemMetrics (SM_CXVIRTUALSCREEN);
! else
! {
! /* Windows 95 or NT 4.0 */
! HDC dc = GetDC (NULL);
! int pixels = GetDeviceCaps (dc, HORZRES);
! ReleaseDC (NULL, dc);
! return pixels;
! }
}
\f
next prev parent reply other threads:[~2013-03-21 23:29 UTC|newest]
Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-21 0:58 x-display-pixel-width/height inconsistency grischka
2013-03-21 1:05 ` YAMAMOTO Mitsuharu
2013-03-21 1:09 ` grischka
2013-03-21 1:44 ` YAMAMOTO Mitsuharu
2013-03-21 23:29 ` YAMAMOTO Mitsuharu [this message]
2013-03-22 10:33 ` Eli Zaretskii
2013-03-23 0:32 ` YAMAMOTO Mitsuharu
2013-03-23 6:15 ` Eli Zaretskii
2013-03-23 13:35 ` Jan Djärv
2013-03-23 23:58 ` YAMAMOTO Mitsuharu
2013-03-24 3:53 ` Eli Zaretskii
2013-03-24 4:36 ` YAMAMOTO Mitsuharu
2013-03-24 16:19 ` Eli Zaretskii
2013-04-27 5:13 ` YAMAMOTO Mitsuharu
2013-04-27 8:04 ` Jan Djärv
2013-04-28 1:40 ` YAMAMOTO Mitsuharu
2013-04-28 17:16 ` Jan D.
2013-04-29 2:27 ` YAMAMOTO Mitsuharu
2013-04-29 2:42 ` YAMAMOTO Mitsuharu
2013-05-01 9:58 ` Jan Djärv
2013-05-02 4:09 ` YAMAMOTO Mitsuharu
2013-05-06 1:04 ` YAMAMOTO Mitsuharu
2013-05-06 1:55 ` Stefan Monnier
2013-05-06 6:15 ` YAMAMOTO Mitsuharu
2013-05-06 13:37 ` Stefan Monnier
2013-05-08 10:46 ` YAMAMOTO Mitsuharu
2013-05-08 11:24 ` YAMAMOTO Mitsuharu
2013-05-08 17:41 ` Eli Zaretskii
2013-05-09 0:09 ` YAMAMOTO Mitsuharu
2013-05-09 1:52 ` Glenn Morris
2013-05-09 3:19 ` YAMAMOTO Mitsuharu
2013-05-09 6:27 ` Glenn Morris
2013-05-09 2:53 ` Eli Zaretskii
2013-05-09 8:14 ` Jan Djärv
2013-05-09 8:43 ` YAMAMOTO Mitsuharu
2013-05-09 15:18 ` Jan Djärv
2013-05-09 20:03 ` Eli Zaretskii
2013-05-09 21:28 ` Stefan Monnier
2013-05-10 6:00 ` YAMAMOTO Mitsuharu
2013-05-10 6:05 ` YAMAMOTO Mitsuharu
2013-05-10 7:06 ` Eli Zaretskii
2013-05-10 7:47 ` YAMAMOTO Mitsuharu
2013-05-10 8:41 ` Eli Zaretskii
2013-05-10 8:55 ` YAMAMOTO Mitsuharu
2013-05-10 9:15 ` Eli Zaretskii
2013-05-10 9:27 ` YAMAMOTO Mitsuharu
2013-05-14 10:39 ` YAMAMOTO Mitsuharu
2013-07-01 6:49 ` martin rudalics
2013-07-02 1:30 ` YAMAMOTO Mitsuharu
2013-07-02 10:38 ` martin rudalics
2013-07-02 10:53 ` Juanma Barranquero
2013-07-02 13:11 ` martin rudalics
2013-07-02 14:05 ` Juanma Barranquero
2013-07-03 9:27 ` martin rudalics
2013-07-03 10:49 ` Juanma Barranquero
2013-07-03 12:44 ` martin rudalics
2013-07-03 13:43 ` Juanma Barranquero
2013-07-04 9:34 ` martin rudalics
[not found] ` <5987E3>
2013-07-04 22:32 ` Juanma Barranquero
2013-07-05 7:44 ` martin rudalics
2013-07-05 9:32 ` Juanma Barranquero
2013-07-05 9:34 ` Jan Djärv
2013-07-05 9:41 ` Juanma Barranquero
2013-07-05 11:25 ` Jan Djärv
2013-07-05 11:56 ` Juanma Barranquero
2013-07-05 12:12 ` Jan Djärv
2013-07-05 12:16 ` Juanma Barranquero
2013-07-05 15:30 ` Drew Adams
2013-07-05 15:53 ` Juanma Barranquero
2013-07-05 16:58 ` Drew Adams
2013-07-06 14:48 ` Juanma Barranquero
2013-07-06 19:25 ` Drew Adams
2013-07-05 15:27 ` Drew Adams
2013-07-04 10:28 ` YAMAMOTO Mitsuharu
2013-05-10 7:44 ` Jan Djärv
2013-04-28 1:48 ` YAMAMOTO Mitsuharu
-- strict thread matches above, loose matches on Subject: below --
2013-03-19 0:39 YAMAMOTO Mitsuharu
2013-03-19 1:34 ` Leo Liu
2013-03-19 4:54 ` Xue Fuqiao
2013-03-19 15:41 ` Drew Adams
2013-03-19 15:51 ` Leo Liu
2013-03-19 15:58 ` Drew Adams
2013-03-20 0:55 ` Leo Liu
2013-03-19 22:25 ` YAMAMOTO Mitsuharu
2013-03-19 23:15 ` Dmitry Gutov
2013-03-19 23:52 ` YAMAMOTO Mitsuharu
2013-03-20 0:12 ` Dmitry Gutov
2013-03-20 0:20 ` YAMAMOTO Mitsuharu
2013-03-20 1:41 ` Dmitry Gutov
2013-03-20 3:58 ` YAMAMOTO Mitsuharu
2013-03-20 14:05 ` Dmitry Gutov
2013-03-20 23:28 ` YAMAMOTO Mitsuharu
2013-03-21 1:27 ` Dmitry Gutov
2013-03-21 1:51 ` YAMAMOTO Mitsuharu
2013-03-21 2:43 ` Dmitry Gutov
2013-03-21 3:47 ` YAMAMOTO Mitsuharu
2013-03-21 4:22 ` YAMAMOTO Mitsuharu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=wl1ub8qqks.wl%mituharu@math.s.chiba-u.ac.jp \
--to=mituharu@math.s.chiba-u.ac.jp \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.