all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
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




  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.