all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Arthur Miller <arthur.miller@live.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: Gregory Heytings <ghe@sdf.org>, rms@gnu.org, emacs-devel@gnu.org
Subject: Re: Emacs Survey: Toolbars
Date: Tue, 22 Dec 2020 18:52:48 +0100	[thread overview]
Message-ID: <AM0PR06MB65773FF757024A9F8B20B77596DF0@AM0PR06MB6577.eurprd06.prod.outlook.com> (raw)
In-Reply-To: <83k0t9rfj5.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 22 Dec 2020 18:06:54 +0200")

[-- Attachment #1: Type: text/plain, Size: 3616 bytes --]

Eli Zaretskii <eliz@gnu.org> writes:

>> Date: Tue, 22 Dec 2020 11:03:04 +0000
>> Cc: emacs-devel@gnu.org
>> From: Gregory Heytings via "Emacs development discussions." <emacs-devel@gnu.org>
>> 
>> > I've been trying for more than 10 years to urge people to work toward 
>> > giving Emacs the document capabilities of a word processor, but I have 
>> > not convinced people to do this work.
>> What do you mean by this?  I'm probably biased, but I don't see what 
>> important "capability of a word processor" is lacking in Emacs.

Personally I think Emacs is half-wysiwyg, or more then half by now. I
think there are almost all tools needed to implement a word processor a
lá Word already in Emacs; I think there is just some minor details
needed; like renderer that can draw efficient representation of a page
below a buffer text (a rectangle) and to tie the text editing stuff to
pixels rather then columns. I was experimenting with modelling a page in
Emacs in context of some other discussion, and that was what I found a
tad bit awkward.

But I am bad at Elisp, and what Emacs already has, so hopefully Eli will
step in and say: "we already have this."

To explain myself:

A word processor usually has some representation of page in paper
format. We can modell a page easily as a region; but it would take
work to implement text processing functions to work with "pages" (insert,
delete etc). It is not hard part, it is just labourous. Problem is when
presenting an empty page to the user to work with in Emacs windows. There is
need to draw some kind of rectangle representing page and user would
type in text above it. Emacs renderer has svg which can render
rectangles fast, but can it render below the buffer text? If it can then
you have everythign needed. I don't know how to do it though.

It is also a bit awkward to work with window-text-pixel-size and 
window-lines-pixel-dimensions because they need a text to being able to
calculate something. When buffer is empty, there is nothing to
calculate. There is need to tell Emacs: "I wish a buffer of this pixel
width and height". In some way. That is what I have seen as a problem,
but it is maybe possible, I am just not aware of funcionality I can use.

I have made a small demo, just roughly modelling a page. To overcome the
need for content in buffer in order to display something, the idea was to
insert "filler-spaces" so I could have something for renderer to
display. I ment to see if I can implement same behaviour as Emacs does
for invisible text: to restrict cursor motion into filler-spaces. But
I never come to that part. The idea was also to model columns, headers,
footers etc just regions in a buffer and to adjust insertion/deletion
routines for "page-mode" so cursor movement, and all the other editing
would look like in a word processor. For example deleteion would delete
a character but insert a filler-character, insertion would insert a
character but delete a filler-character and so on.

I think it is possible, it is just lots of labour I don't have time for
tht myself.

For illustration purpose I have attached the demo I worked on if anyone
would like to look at it, maybe continue or maybe just get an idea how
to implement it more efficiently. Paper size database has to be
evaluated forst, then page.el. It was just a small test I never got back
to, so take it just as a small illustration. Demo is font dependent so
with of the rendered page will depend on what font Emacs uses to
calculate (whatever is default). On my machine it is Anonymous Pro.


[-- Attachment #2: page.el --]
[-- Type: text/plain, Size: 6605 bytes --]

;;; page.el ---                                      -*- lexical-binding: t; -*-

;; Copyright (C) 2020  Arthur Miller

;; Author: Arthur Miller <arthur.miller@live.com>
;; Keywords: 

;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.

;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with this program.  If not, see <https://www.gnu.org/licenses/>.

;;; Commentary:
;;
;; documnet is just a plain buffer with bunch of local variables
;; 
;; page, footer, header and clientarea are ranges between points in the
;; buffer
;; (bopp) (eopp) (bohp) (eohp) (bocp) (eocp) <- similar as (bobp) (eobp)
;;
;; currently footer and header are global for all pages; it would be easy to
;; make them page-unique; just not done currently
;;

;;; Code:
(require 'svg)
(require 'paper-size-iso)

(defface fill-face
  '((t :foreground "white" :background "white" :box "white" :height 100))
  "Default face for document background" :group 'doc)

(defface page-break-face
  '((t :foreground "grey" :background "grey" :box "grey"))
  "Default face for page breaks" :group 'doc)

(defun doc-page-break (doc)
  (let ((svg) (w) (h))
    (with-current-buffer (get-buffer doc)
      (unless pagebreak-svg
        (setq w page-pixel-width
              h (window-font-height nil 'fill-face))
        (message "W: %s H: %s" w h)
        (setq svg (svg-create w h))
        (svg-rectangle svg 0 0 w h :fill "grey")
        (setq pagebreak-svg (svg-image svg :ascent 'center)))
    pagebreak-svg)))

(defun doc-new (&optional title)
  (interactive)
  
  (unless title
    (setq title "New Document"))

  (let ((doc (generate-new-buffer title)))

    (with-current-buffer (get-buffer-create doc)

      (setq screen-res 96
            print-res 300
            format 'A4
            orientation 'portrait
            pages 1
            current-page 0
            page-rows 0
            page-cols 0
            header nil
            footer nil
            document (current-buffer)
            pagebreak-svg nil
            real-pixel-width 0
            page-pixel-width 0
            page-pixel-height 0)

      (make-local-variable 'document)
      (make-local-variable 'title)
      (make-local-variable 'screen-res)
      (make-local-variable 'print-res)
      (make-local-variable 'format)
      (make-local-variable 'orientation)
      (make-local-variable 'pages)
      (make-local-variable 'current-page)
      (make-local-variable 'page-pixel-width)
      (make-local-variable 'page-pixel-height)
      (make-local-variable 'page-rows)
      (make-local-variable 'page-cols)
      (make-local-variable 'real-pixel-width)
      (make-local-variable 'header)
      (make-local-variable 'footer)
      (make-local-variable 'pagebreak-svg)
      
      (let ((dims (paper-size-iso-in-to-pixels format screen-res)))
        (setq page-pixel-width (car dims))
        (setq page-pixel-height (cdr dims))))

      (switch-to-buffer doc)
      (doc-insert-page doc (point-min))
  document))

(defun doc-append-page ()
  "Append a new page at the end"
  (interactive)
  (with-current-buffer (buffer-name)
  (doc-insert-page (buffer-name) (point-max))))

(defun doc-insert-pagebreak (buffer point)
  (with-current-buffer buffer
    (goto-char point)
    (setq real-pixel-width
	  (car (window-text-pixel-size
                nil (beginning-of-line) (end-of-line))))
    (insert ?\n)
    ;; (insert ?\^L)
    ;; (set-text-properties (line-beginning-position) (line-end-position)
    ;;                      `(face nil display ,(doc-page-break buffer)))
    ;; (newline)
    ))

(defun doc-insert-footer (buffer point)
  (save-excursion
    (with-current-buffer buffer
      (goto-char point)
      (insert (buffer-substring (car footer) (cdr footer))))))

(defun doc-insert-header (buffer point)
  (save-excursion
    (with-current-buffer buffer
      (goto-char point)
      (insert (buffer-substring (car header) (cdr header))))))

(defun doc-insert-page (buffer point)
  "Insert page at point."
  (with-current-buffer buffer
    (hl-line-mode -1)
    (auto-fill-mode -1)
    (goto-char point)
    ;; Emacs needs a live window to calculate pixel sizes
    ;; so we have to calculate stuff when first page is shown
    (if (= 0 current-page)
        (let* ((w 0) (h 0) (space-width) (space-height) (d)
              (font-width (window-font-width nil 'fill-face))
              (font-height (window-font-height nil 'fill-face)))

          (insert ?\s)
          (set-text-properties point (point-max) '(face fill-face))
          (setq space-width (car (window-text-pixel-size
                                  nil (beginning-of-line) (end-of-line))))
          (setq space-height (cdr (window-text-pixel-size
                                  nil (beginning-of-line) (end-of-line))))
          (setq cols (truncate (fround (/ page-pixel-width font-width))))
          (setq rows (truncate (fround (/ page-pixel-height font-height))))
          (setq cols (+ cols (truncate (/ 158 font-width)))) ;; some nasty magick here
          (delete-backward-char 1)

          (setq page-cols cols page-rows rows)
          (while (< h rows)
            (self-insert-command cols ?\s)
            (setq h (+ h 1))
            (newline)))
      (progn ;; we already have page dimensions
        (doc-insert-pagebreak buffer (point))
        (setq point (point))
        (dotimes (i page-rows)
          (self-insert-command page-cols ?\s)
          (newline))))
    (set-text-properties point (point-max) '(face fill-face))
    (setq current-page (+ current-page 1))
    ;;(setq pages (append pages (list point (- (point-max) 1))))
    ))

(defun buffer-document (&optional buffer)
  (unless buffer
    (setq buffer (buffer-name)))
  (with-current-buffer (get-buffer buffer)
    document))

(defun doc-set-footer (begin end)
  "Set current region as footer."
  (interactive "r")
  (with-current-buffer (buffer-document)
    (setq footer (cons begin end))))

(defun doc-set-header (begin end)
  "Set current region as header."
  (interactive "r")
  (with-current-buffer (buffer-document)
    (setq header (cons begin end))))

(provide 'page)
;;; page.el ends here

[-- Attachment #3: paper-size-iso.el --]
[-- Type: text/plain, Size: 7136 bytes --]

;;; paper-size-iso-us.el ---                               -*- lexical-binding: t; -*-

;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.

;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with this program.  If not, see <https://www.gnu.org/licenses/>.

;;; Commentary:
;;
;;; References:
;;  http://www.printernational.org/iso-paper-sizes.php
;;  https://papersizes.io/a/
;;  https://en.wikipedia.org/wiki/Pixel_density
;;  https://blog.gimm.io/difference-between-pixel-px-and-point-pt-font-sizes-in-email-signatures/

;;  https://honeywellaidc.force.com/supportppr/s/article/How-to-convert-inches-in-dots
;;  https://www.shutterstock.com/blog/inches-to-pixels-resize-image-quality
;;  https://www.shutterstock.com/blog/ppi-vs-dpi-resolution-guidex
;;  https://www.pixelsconverter.com/

(defvar paper-size-iso '(;; Size      Width x Height(mm) Width x Height(in) 
                         (4A0         . [1682  2378      66.2    93.6 ])
                         (2A0         . [1189  1682      46.8    66.2 ])
                         (A0          . [841   1189      33.1    46.8 ])
                         (A1          . [594   841       23.4    33.1 ])
                         (A2          . [420   594       16.5    23.4 ])
                         (A3          . [297   420       11.7    16.5 ])
                         (A4          . [210   297       8.3     11.7 ])
                         (A5          . [148   210       5.8     8.3  ])
                         (A6          . [105   148       4.1     5.8  ])
                         (A7          . [74    105       2.9     4.1  ])
                         (A8          . [52    74        2.0     2.9  ])
                         (A9          . [37    52        1.5     2.0  ])
                         (A10         . [26    37        1.0     1.5  ])
                         (A11         .	[18    26  	 0.7     1    ])
                         (A12         .	[13    18  	 0.5     0.7  ])
                         (A13         .	[9     13  	 0.4     0.5  ])
                         (2A0         .	[1189  1682  	 46.8    66.2 ])
                         (4A0         .	[1682  2378  	 66.2    93.6 ])
                         (A0+         .	[914   1292  	 36      50.9 ])
                         (A1+         .	[609   914  	 24      36   ])
                         (A3+         .	[329   483  	 13      19   ])
                         (A2-extra    . [445   619       17.51   24.3 ])
                         (A3-extra    . [322   445       12.67   17.51])
                         (A3-Super    . [305   508       12      20   ])
                         (Super-A3    . [305   487       12      19.17])
                         (A4-extra    . [235   322       9.25    12.67])
                         (A4-Super    . [229   322       9.25    12.67])
                         (Super-A4    . [227   356       8.93    14.01])
                         (A4-Long     . [210   348       8.26    13.7 ])
                         (A5-extra    . [173   235       8.26    9.25 ])
                         (SO-B5-extra . [202   276       7.95    10.86])
                         (B0          . [1000  1414      33.37   55.67])
                         (B1          . [707   1000      27.84   39.37])
                         (B2          . [500   707       19.69   27.84])
                         (B3          . [353   500       13.9    19.69])
                         (B4          . [250   352       9.84    13.9 ])
                         (B5          . [176   250       6.93    9.84 ])
                         (B6          . [125   176       4.92    6.93 ])
                         (B7          . [88    125       3.47    4.92 ])
                         (B8          . [62    88        2.44    3.47 ])
                         (B9          . [44    62        1.73    2.44 ])
                         (B10         .	[31    44        1.22    1.73 ])
                         (B11         .	[22    31 	 0.9     1.2  ])
                         (B12         .	[15    22 	 0.6     0.9  ])
                         (B13         .	[11    15 	 0.4     0.6  ])
                         (B0+         .	[1118  1580 	 44      62.2 ])
                         (B1+         .	[720   1020 	 28.3    40.2 ])
                         (B2+         .	[520   720 	 20.5    28.3 ])
                         (C0          . [917   1297  	 36.12   51.6 ])
                         (C1          . [648   917  	 25.50   36.12])
                         (C2          . [458   648  	 18      25.50])
                         (C3          . [324   458  	 12.75   18   ])
                         (C4          . [229   324  	 9       12.75])
                         (C5          . [162   229  	 6.38    9    ])
                         (C6          . [114   162  	 4.5     6.38 ])
                         (C7          . [81    114  	 3.19    4.5  ])
                         (C8          .	[57    81 	 2.2     3.2  ])
                         (C9          .	[40    57 	 1.6     2.2  ])
                         (C10         .	[28    40 	 1.1     1.6  ])
                         (C6/C5       . [229   114 	 9       4.5  ])
                         (C7/C6       . [81    162  	 3.19    6.38 ])
                         (DL          . [110   220  	 4.32    8.69 ])
                         (E4 	      . [400   280 	 15.7    11   ])
                         ))

(defun paper-size-dimensions (format)
  "Return dimensions in inch for given FORMAT as specified in ISO standard for
  paper sizes."
  (cdr (assoc format paper-size-iso)))

(defun paper-size-iso-mm-to-pixels (format resolution)
   (let* ((dims (paper-size-dimensions format))
          (width (aref dims 0))
          (height (aref dims 1)))
    (paper-size-pixels width height 'mm resolution)))

(defun paper-size-iso-in-to-pixels (format resolution)
  (let* ((dims (paper-size-dimensions format))
         (width (aref dims 2))
         (height (aref dims 3)))
    (paper-size-pixels width height 'in resolution)))

(defun paper-size-pixels (width height unit resolution)
  "Return size in pixels from width and height. 
UNIT is unit of dimension
  measurement, either millimmeter or inches. For millimeter pass 'mm, for
  inches pass 'in.
Resolution is number of either pixels per inches for the screen, or dots per
  inches for printers.
Resolution-unit is either 'ppi for the screen or 'dpi for printers"
  (when (equal unit 'mm)
    (setq width (/ width 25.4))
    (setq height (/ height 25.4)))
  (setq width (fround (* width resolution)))
  (setq height (fround (* height resolution)))
  (cons (ftruncate width) (ftruncate height)))

(provide 'paper-size-iso)

  reply	other threads:[~2020-12-22 17:52 UTC|newest]

Thread overview: 384+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-15  5:30 Emacs Survey: Toolbars Lars Ingebrigtsen
2020-12-15  5:57 ` Christopher Dimech
2020-12-15  6:24   ` Lars Ingebrigtsen
2020-12-15 10:01   ` Jean Louis
2020-12-15  6:24 ` Clément Pit-Claudel
2020-12-15  9:04   ` Thibaut Verron
2020-12-15 19:06   ` Stephen Leake
2020-12-15 19:33     ` Christopher Dimech
2020-12-15 19:47     ` Christopher Dimech
2020-12-16  5:43       ` Richard Stallman
2020-12-16  6:08         ` Christopher Dimech
2020-12-15 10:00 ` Jean Louis
2020-12-15 15:49   ` Christopher Dimech
2020-12-16  5:44     ` Richard Stallman
2020-12-15 17:07   ` Philip K.
2020-12-15 17:30     ` Christopher Dimech
2020-12-15 17:40       ` Drew Adams
2020-12-15 18:06         ` Christopher Dimech
2020-12-16  9:07         ` Robert Pluim
2020-12-16 17:03           ` Drew Adams
2020-12-15 18:02       ` dvorak users (was: Emacs Survey: Toolbars) andrés ramírez
2020-12-15 18:40         ` Christopher Dimech
2020-12-17 22:23         ` Ricardo Wurmus
2020-12-15 14:17 ` Emacs Survey: Toolbars Eric S Fraga
2020-12-15 14:50   ` Lars Ingebrigtsen
2020-12-15 14:56     ` Eric S Fraga
2020-12-15 15:14     ` Óscar Fuentes
2020-12-15 15:33       ` Lars Ingebrigtsen
2020-12-15 17:47         ` Óscar Fuentes
2020-12-15 18:11           ` Christopher Dimech
2020-12-15 18:48           ` Philip K.
2020-12-15 19:02             ` Jean Louis
2020-12-15 19:21               ` Christopher Dimech
2020-12-15 19:17             ` Christopher Dimech
2020-12-16  5:43             ` Richard Stallman
2020-12-15 18:51         ` Jean Louis
2020-12-20  4:23           ` Adrien Brochard
2020-12-20  4:35             ` Christopher Dimech
2020-12-20 13:44               ` Dmitry Gutov
2020-12-20 20:36                 ` Christopher Dimech
2020-12-22 10:58               ` Gregory Heytings via Emacs development discussions.
2020-12-22 12:22                 ` Christopher Dimech
2020-12-22 14:05                   ` Jean Louis
2020-12-22 14:02                 ` Jean Louis
2020-12-23  4:26                 ` Richard Stallman
2020-12-23  5:22                   ` Christopher Dimech
2020-12-23  5:30                   ` Christopher Dimech
2020-12-20 10:57             ` Jean Louis
2020-12-20 11:13               ` Christopher Dimech
2020-12-21  5:47                 ` Richard Stallman
2020-12-21  6:57                   ` Christopher Dimech
2020-12-21  7:04                     ` Jean Louis
2020-12-21 16:16                       ` Eli Zaretskii
2020-12-21 16:51                         ` Jean Louis
2020-12-21 17:20                           ` Eli Zaretskii
2020-12-21 17:58                             ` Jean Louis
2020-12-21 23:29                               ` Christopher Dimech
2020-12-21 18:03                             ` Lars Ingebrigtsen
2020-12-21 18:09                               ` Arthur Miller
2020-12-21 18:14                               ` Eli Zaretskii
2020-12-21 23:37                             ` Christopher Dimech
2020-12-22 15:23                               ` Eli Zaretskii
2020-12-23  1:32                                 ` Christopher Dimech
2020-12-23 15:14                                   ` Eli Zaretskii
2020-12-21 23:55                           ` Christopher Dimech
2020-12-22 15:26                             ` Eli Zaretskii
2020-12-22 15:52                               ` Stefan Monnier
2020-12-23  1:27                               ` Christopher Dimech
2020-12-24  5:47                                 ` Richard Stallman
2020-12-24  6:31                                   ` Christopher Dimech
2020-12-23  4:16                             ` Richard Stallman
2020-12-22  5:21                     ` Richard Stallman
2020-12-22  6:05                       ` Christopher Dimech
2020-12-22  6:06                       ` Ihor Radchenko
2020-12-24  5:49                         ` Richard Stallman
2020-12-24  7:04                           ` Ihor Radchenko
2020-12-24 11:21                             ` Jean Louis
2020-12-26 10:20                             ` Richard Stallman
2020-12-26 12:44                               ` Ihor Radchenko
2020-12-27  5:42                                 ` Richard Stallman
2020-12-22  6:31                       ` Jean Louis
2020-12-22 15:46                         ` Eli Zaretskii
2020-12-24  5:49                         ` Richard Stallman
2020-12-22 15:40                       ` Eli Zaretskii
2020-12-22 16:28                         ` Internationalize Emacs's messages (swahili) Jean Louis
2020-12-22 16:41                           ` Eli Zaretskii
2020-12-23 14:04                             ` Zhu Zihao
2020-12-23 16:07                               ` Eli Zaretskii
2020-12-24  1:54                                 ` Zhu Zihao
2020-12-24 14:16                                   ` Eli Zaretskii
2020-12-26  2:03                                     ` Daniel Brooks
2020-12-26  2:47                                       ` Stefan Monnier
2020-12-26  3:22                                         ` Daniel Brooks
2020-12-26  3:48                                           ` Stefan Monnier
2020-12-26  4:01                                             ` Daniel Brooks
2020-12-27  5:34                                               ` Richard Stallman
2020-12-26  6:06                                       ` Daniel Brooks
2020-12-26  8:26                                         ` Eli Zaretskii
2020-12-26  8:57                                         ` tomas
2020-12-26  9:06                                         ` Tomas Hlavaty
2020-12-26  9:24                                           ` Eli Zaretskii
2020-12-26  9:28                                             ` Daniel Brooks
2020-12-26  9:34                                               ` Lars Ingebrigtsen
2020-12-26  9:47                                                 ` Daniel Brooks
2020-12-26  9:54                                                 ` Eli Zaretskii
2020-12-26 10:02                                                   ` Daniel Brooks
2020-12-26 11:12                                                   ` Tomas Hlavaty
2020-12-26 11:16                                                     ` Daniel Brooks
2020-12-26 11:16                                                     ` Eli Zaretskii
2020-12-27  5:38                                                     ` Richard Stallman
2020-12-27 17:33                                                       ` Tomas Hlavaty
2020-12-28  5:25                                                         ` Richard Stallman
2020-12-26 21:19                                                   ` Lars Ingebrigtsen
2020-12-26 21:26                                                     ` Lars Ingebrigtsen
2020-12-26 21:45                                                       ` Stefan Monnier
2020-12-26 21:55                                                         ` Lars Ingebrigtsen
2020-12-26 22:08                                                           ` Stefan Monnier
2020-12-26 22:10                                                             ` Lars Ingebrigtsen
2020-12-26 23:04                                                             ` Lars Ingebrigtsen
2020-12-27  0:34                                                               ` Lars Ingebrigtsen
2020-12-27  8:01                                                                 ` Lars Ingebrigtsen
2020-12-27 18:15                                                                   ` Eli Zaretskii
2020-12-27 22:03                                                                     ` Lars Ingebrigtsen
2020-12-27 22:30                                                                       ` Tomas Hlavaty
2020-12-27 22:49                                                                         ` Alfred M. Szmidt
2020-12-27 22:57                                                                           ` Tomas Hlavaty
2020-12-27 23:05                                                                             ` lengths and other stuff Daniel Brooks
2020-12-27 23:09                                                                               ` Lars Ingebrigtsen
2020-12-27 23:16                                                                                 ` Daniel Brooks
2020-12-27 23:21                                                                                   ` Lars Ingebrigtsen
2020-12-27 23:23                                                                                     ` Daniel Brooks
2020-12-27 23:24                                                                                     ` Stefan Monnier
2020-12-27 23:23                                                                                   ` Stefan Monnier
2020-12-27 23:32                                                                                     ` Daniel Brooks
2020-12-27 23:46                                                                                       ` Stefan Monnier
2020-12-27 23:25                                                                               ` Tomas Hlavaty
2020-12-27 23:35                                                                                 ` Daniel Brooks
2020-12-27 23:47                                                                                   ` Tomas Hlavaty
2020-12-28  0:00                                                                                     ` Daniel Brooks
2020-12-27 23:34                                                                             ` Internationalize Emacs's messages (swahili) Alfred M. Szmidt
2020-12-28  0:00                                                                               ` Tomas Hlavaty
2020-12-28  0:16                                                                                 ` Alfred M. Szmidt
2020-12-28  0:33                                                                                   ` Tomas Hlavaty
2020-12-28  0:48                                                                                     ` Lars Ingebrigtsen
2020-12-28  5:54                                                                                       ` Drew Adams
2020-12-28  0:52                                                                                     ` Alfred M. Szmidt
2020-12-27 23:41                                                                       ` Drew Adams
2021-01-01  5:55                                                                   ` Drew Adams
2021-01-01 15:03                                                                     ` Tomas Hlavaty
2021-01-01 19:09                                                                       ` Drew Adams
2021-01-01 22:08                                                                         ` Tomas Hlavaty
2021-01-01 22:55                                                                           ` Drew Adams
2021-01-01 23:32                                                                             ` Tomas Hlavaty
2021-01-02  0:25                                                                               ` Drew Adams
2020-12-27 12:56                                                                 ` Andreas Schwab
2020-12-27 22:05                                                                   ` Lars Ingebrigtsen
2020-12-27 22:16                                                                     ` Andreas Schwab
2020-12-27 22:17                                                                       ` Lars Ingebrigtsen
2020-12-27 22:23                                                                         ` Andreas Schwab
2020-12-27 22:29                                                                           ` Lars Ingebrigtsen
2020-12-27 22:30                                                                             ` Andreas Schwab
2020-12-27 22:42                                                                               ` Lars Ingebrigtsen
2020-12-27 23:00                                                                                 ` Andreas Schwab
2020-12-27 23:05                                                                                   ` Lars Ingebrigtsen
2020-12-27 22:45                                                                               ` Tomas Hlavaty
2020-12-27 22:49                                                                                 ` Lars Ingebrigtsen
2020-12-27 22:32                                                                     ` Alfred M. Szmidt
2020-12-27 22:52                                                                       ` Tomas Hlavaty
2020-12-27 23:17                                                                         ` Alfred M. Szmidt
2020-12-27 23:40                                                                           ` Tomas Hlavaty
2020-12-27 23:55                                                                             ` Alfred M. Szmidt
2020-12-28  0:19                                                                               ` Tomas Hlavaty
2020-12-28  0:52                                                                                 ` Alfred M. Szmidt
2020-12-28  7:32                                                                     ` Jean Louis
2020-12-27  3:35                                                             ` Eli Zaretskii
2020-12-27  3:33                                                         ` Eli Zaretskii
2020-12-27  5:34                                                 ` Richard Stallman
2020-12-26  7:50                                       ` Eli Zaretskii
2020-12-26  9:07                                         ` Daniel Brooks
2020-12-26  9:31                                           ` Eli Zaretskii
2020-12-26  9:37                                             ` Daniel Brooks
2020-12-26  9:51                                               ` Eli Zaretskii
2020-12-26 10:00                                                 ` Daniel Brooks
2020-12-26  9:52                                               ` Werner LEMBERG
2020-12-26 10:10                                                 ` Daniel Brooks
2020-12-26  9:59                                             ` Jean Louis
2020-12-26 10:14                                               ` Daniel Brooks
2020-12-26 10:54                                                 ` Jean Louis
2020-12-26 11:13                                                   ` Daniel Brooks
2020-12-26 10:40                                               ` Eli Zaretskii
2020-12-27 16:23                                         ` Juri Linkov
2020-12-26 10:28                                       ` Richard Stallman
2020-12-26 10:48                                         ` Daniel Brooks
2020-12-27  5:39                                           ` Richard Stallman
2020-12-27  8:48                                             ` Daniel Brooks
2020-12-28  5:28                                               ` Richard Stallman
2020-12-28  6:30                                                 ` making gettext more like fluent Daniel Brooks
2020-12-29  5:57                                                   ` Richard Stallman
2020-12-29  6:49                                                     ` Daniel Brooks
2020-12-30  5:30                                                       ` Richard Stallman
2020-12-28  8:05                                                 ` Internationalize Emacs's messages (swahili) Zhu Zihao
2020-12-29  6:01                                                   ` Richard Stallman
2020-12-29  7:01                                                     ` Daniel Brooks
2020-12-29 11:48                                                     ` Zhu Zihao
2020-12-30  5:46                                                     ` The posibility to use Rust libraries with GNU Project softwares(e.g. link with Rust library) Zhu Zihao
2020-12-30 14:00                                                     ` Internationalize Emacs's messages (swahili) Andy Moreton
2020-12-30 19:18                                                       ` Rust trademark problems - " Jean Louis
2020-12-21 16:53                   ` Emacs Survey: Toolbars Eli Zaretskii
2020-12-21 23:43                     ` Christopher Dimech
2021-02-25 22:53                     ` Jeremy Bryant
2020-12-22 11:03                   ` Gregory Heytings via Emacs development discussions.
2020-12-22 13:22                     ` Daniel Martín via "Emacs development discussions.
2020-12-23 15:04                       ` Tomas Hlavaty
2020-12-23 15:07                         ` Gregory Heytings via Emacs development discussions.
2020-12-23 17:49                           ` Tomas Hlavaty
2020-12-23 16:11                         ` Eli Zaretskii
2020-12-23 16:39                         ` Stefan Monnier
2020-12-23 17:55                           ` Tomas Hlavaty
2020-12-23 19:10                         ` Daniel Martín
2020-12-23 20:55                           ` Tomas Hlavaty
2020-12-25  4:29                           ` Richard Stallman
2020-12-25  9:48                             ` Tomas Hlavaty
2020-12-25 17:20                               ` Stefan Monnier
2020-12-25 18:06                                 ` Tomas Hlavaty
2020-12-25 18:14                                   ` Stefan Monnier
2020-12-25 18:24                                     ` Yuri Khan
2020-12-25 18:29                                       ` Tomas Hlavaty
2020-12-25 20:32                                         ` Yuri Khan
2020-12-25 21:57                                           ` Tomas Hlavaty
2020-12-25 20:25                                       ` Drew Adams
2020-12-25 21:59                                         ` Tomas Hlavaty
2020-12-25 18:28                                     ` Tomas Hlavaty
2020-12-22 16:06                     ` Eli Zaretskii
2020-12-22 17:52                       ` Arthur Miller [this message]
2020-12-22 18:07                         ` Eli Zaretskii
2020-12-22 18:32                           ` Arthur Miller
2020-12-22 19:04                         ` Jean Louis
2020-12-22 19:24                           ` Arthur Miller
2020-12-23  4:21                         ` Richard Stallman
2020-12-23 11:21                           ` Arthur Miller
2020-12-23 12:36                             ` Christopher Dimech
2020-12-23 15:45                             ` Tomas Hlavaty
2020-12-23 15:56                             ` Eli Zaretskii
2020-12-23 16:05                               ` Jean Louis
2020-12-24  4:40                               ` Sv: " arthur miller
2020-12-24 14:23                                 ` Eli Zaretskii
2020-12-23 15:42                           ` Tomas Hlavaty
2020-12-23 12:45                         ` Jean Louis
2020-12-23 13:09                           ` Christopher Dimech
2020-12-23 13:44                             ` Jean Louis
2020-12-24  5:50                               ` Richard Stallman
2020-12-24  5:57                                 ` Christopher Dimech
2020-12-24  6:31                                   ` Jean Louis
2020-12-15 20:58         ` Dmitry Gutov
2020-12-15 21:22           ` Christopher Dimech
2020-12-15 16:12   ` Christopher Dimech
2020-12-16  5:44     ` Richard Stallman
2020-12-16 15:49       ` Eli Zaretskii
2020-12-18  5:39         ` Richard Stallman
2020-12-15 14:29 ` Stefan Monnier
2020-12-15 14:48   ` Lars Ingebrigtsen
2021-02-25 15:50     ` Stefan Kangas
2021-02-25 18:17       ` Eli Zaretskii
2021-02-25 19:03         ` Stefan Monnier
2021-02-25 19:16           ` Eli Zaretskii
2021-02-25 19:27             ` [External] : " Drew Adams
2021-02-25 22:24             ` Stefan Monnier
2021-02-26  6:52               ` Eli Zaretskii
2021-02-26  8:44           ` Lars Ingebrigtsen
2021-02-26 15:51             ` [External] : " Drew Adams
2021-02-26 16:27               ` Stefan Monnier
2021-02-27  0:28                 ` *Menu* buffer Tomas Hlavaty
2021-02-27  7:11                   ` Eli Zaretskii
2021-03-01  5:56                     ` David Masterson
2021-02-25 19:44       ` Emacs Survey: Toolbars martin rudalics
2020-12-15 16:32   ` Clément Pit-Claudel
2020-12-15 16:34   ` Drew Adams
2020-12-15 18:44   ` Jean Louis
2020-12-15 19:03     ` Christopher Dimech
2020-12-15 16:26 ` Eli Zaretskii
2020-12-15 16:51   ` Christopher Dimech
2020-12-16  9:14   ` Lars Ingebrigtsen
2020-12-16 16:01     ` Eli Zaretskii
2020-12-16 16:18       ` Robert Pluim
2020-12-16 17:12         ` Eli Zaretskii
2020-12-17  8:20           ` Robert Pluim
2020-12-17 14:25             ` Eli Zaretskii
2020-12-17 15:44               ` Robert Pluim
2020-12-17 15:48                 ` Robert Pluim
2020-12-18  0:23               ` Gregory Heytings via Emacs development discussions.
2020-12-18  9:10                 ` Robert Pluim
2020-12-17 17:06             ` Drew Adams
2020-12-17 18:10               ` Alfred M. Szmidt
2020-12-17 19:20                 ` Christopher Dimech
2020-12-18  5:42               ` Richard Stallman
2020-12-18  6:36                 ` Drew Adams
2020-12-18  6:42                   ` Christopher Dimech
2020-12-18  8:42                   ` Robert Pluim
2020-12-18  8:51                     ` Christopher Dimech
2020-12-18  9:29                       ` Robert Pluim
2020-12-18 17:48                       ` Drew Adams
2020-12-18 21:14                         ` Christopher Dimech
2020-12-18 17:43                     ` Drew Adams
2020-12-20  6:36                   ` Richard Stallman
2020-12-21  1:11                     ` Drew Adams
2020-12-21 10:23                       ` Alfred M. Szmidt
2020-12-18  5:42             ` Richard Stallman
2020-12-17 11:01         ` Lars Ingebrigtsen
2020-12-17 14:36           ` Eli Zaretskii
2020-12-15 21:07 ` Dmitry Gutov
2020-12-15 21:29   ` Christopher Dimech
2020-12-16  9:24   ` Lars Ingebrigtsen
2020-12-16  9:28     ` Lars Ingebrigtsen
2020-12-16 13:53       ` Christopher Dimech
2020-12-18  5:40       ` Richard Stallman
2020-12-18  9:37         ` Ihor Radchenko
2020-12-18  9:38         ` Lars Ingebrigtsen
2020-12-19  5:11           ` Richard Stallman
2020-12-19 21:04             ` Daniel Brooks
2020-12-20  6:39               ` Richard Stallman
2020-12-20  7:11                 ` Daniel Brooks
2020-12-21  5:52                   ` Richard Stallman
     [not found]             ` <871rflj3fh.fsf@gmail.com>
2020-12-20  6:40               ` Richard Stallman
2020-12-21  5:53               ` Richard Stallman
2020-12-21 16:07                 ` Eli Zaretskii
2020-12-22  5:20                   ` Richard Stallman
2020-12-22 15:36                     ` Eli Zaretskii
2020-12-23  4:23                       ` Richard Stallman
2020-12-22  2:54                 ` Andy Moreton
2020-12-22 13:29                   ` Caio Henrique
2020-12-16 16:03     ` Eli Zaretskii
2020-12-16 16:54       ` Christopher Dimech
2020-12-16 17:14     ` Dmitry Gutov
2020-12-16 20:09       ` John Yates
2020-12-16 20:29         ` Drew Adams
2020-12-16 23:53           ` Christopher Dimech
2020-12-16 21:33         ` chad
2020-12-16 22:56           ` Christopher Dimech
2020-12-18  5:33             ` Richard Stallman
2020-12-18  5:53               ` Christopher Dimech
2020-12-18  8:43                 ` Jean Louis
2020-12-18  8:54                   ` Christopher Dimech
2020-12-18 10:04                     ` Jean Louis
2020-12-18 10:15                       ` Christopher Dimech
2020-12-18 18:07                         ` Drew Adams
2020-12-18 20:34                           ` Jean Louis
2020-12-18 10:17                       ` Christopher Dimech
2020-12-17 10:58       ` Lars Ingebrigtsen
2020-12-17 11:22         ` Christopher Dimech
2020-12-17 12:08         ` Dmitry Gutov
2020-12-17 12:12           ` Lars Ingebrigtsen
2020-12-17 19:32             ` Christopher Dimech
2020-12-17 14:32         ` Eli Zaretskii
2020-12-18  9:37           ` Lars Ingebrigtsen
2020-12-18  9:45             ` Helmut Eller
2020-12-18 18:02               ` Drew Adams
2020-12-18 20:32                 ` Jean Louis
2020-12-18 11:52             ` Eli Zaretskii
2020-12-19 15:41               ` Lars Ingebrigtsen
2020-12-19 19:12                 ` Drew Adams
2020-12-19 19:37                   ` Christopher Dimech
2020-12-18 17:59             ` Drew Adams
2020-12-16 14:06   ` Gregory Heytings via Emacs development discussions.
2020-12-16 15:24     ` Dmitry Gutov
2020-12-16 15:53       ` Christopher Dimech
2020-12-16  5:34 ` Richard Stallman
2020-12-16  5:54   ` Christopher Dimech
2020-12-16 15:51     ` Eli Zaretskii
2020-12-17  5:54     ` Richard Stallman
2020-12-17  6:49       ` Christopher Dimech
2020-12-18  5:41         ` Richard Stallman
2020-12-18  6:16           ` Christopher Dimech
2020-12-16  9:26   ` Lars Ingebrigtsen
2020-12-17  5:54     ` Richard Stallman
2020-12-16 22:13 ` chad
     [not found] <<87o8iv3ac3.fsf@gnus.org>
     [not found] ` <<877dpjp30g.fsf@ucl.ac.uk>
     [not found]   ` <<87zh2fnmwq.fsf@gnus.org>
     [not found]     ` <<87o8ivumn5.fsf@telefonica.net>
     [not found]       ` <<87v9d3nkxk.fsf@gnus.org>
     [not found]         ` <<X9kFyDSX980pXeVr@protected.rcdrun.com>
     [not found]           ` <<ff23c825-e90e-f258-1124-55dbcf486a1d@gmx.com>
     [not found]             ` <<X98uACIDV0lryk8q@protected.rcdrun.com>
     [not found]               ` <<trinity-fde32917-8579-4566-bbb2-e8276dbd8ad6-1608462826557@3c-app-mailcom-bs11>
     [not found]                 ` <<E1krE2Q-0002lH-Li@fencepost.gnu.org>
     [not found]                   ` <<alpine.NEB.2.22.394.2012221159230453.3327@sdf.lonestar.org>
     [not found]                     ` <<83k0t9rfj5.fsf@gnu.org>
     [not found]                       ` <<AM0PR06MB65773FF757024A9F8B20B77596DF0@AM0PR06MB6577.eurprd06.prod.outlook.com>
     [not found]                         ` <<E1krve1-0002Um-Up@fencepost.gnu.org>
     [not found]                           ` <<AM0PR06MB657713ABD4CE4513D20FD23E96DE0@AM0PR06MB6577.eurprd06.prod.outlook.com>
     [not found]                             ` <<83tuscplcg.fsf@gnu.org>
     [not found]                               ` <<AM0PR06MB657758B877E9309CA4189D6996DD0@AM0PR06MB6577.eurprd06.prod.outlook.com>
     [not found]                                 ` <<8335zvp9ko.fsf@gnu.org>
2020-12-24 17:58                                   ` Sv: " Drew Adams
     [not found]       ` <<trinity-c4da1b19-a641-4167-a095-38470e4aaae8-1608533825693@3c-app-mailcom-bs16>
     [not found]         ` <<E1kra7K-0005VY-7F@fencepost.gnu.org>
     [not found]           ` <<83sg7xrgr5.fsf@gnu.org>
     [not found]             ` <<X+IeuuUZPkhe0PC3@protected.rcdrun.com>
     [not found]               ` <<83h7odrdwy.fsf@gnu.org>
     [not found]                 ` <<86sg7w39fh.fsf@163.com>
     [not found]                   ` <<83pn30pku5.fsf@gnu.org>
     [not found]                     ` <<86wnx8otoj.fsf@163.com>
     [not found]                       ` <<834kkbp9vr.fsf@gnu.org>
     [not found]                         ` <<87czyxuxw6.fsf@db48x.net>
     [not found]                           ` <<87y2hlt82w.fsf@db48x.net>
     [not found]                             ` <<87lfdlvsw4.fsf@logand.com>
     [not found]                               ` <<83h7o8ncly.fsf@gnu.org>
     [not found]                                 ` <<87pn2wudab.fsf@db48x.net>
     [not found]                                   ` <<87mty0c3m1.fsf@gnus.org>
     [not found]                                     ` <<83czywnb86.fsf@gnu.org>
     [not found]                                       ` <<87im8ob707.fsf@gnus.org>
     [not found]                                         ` <<87eejcb6nx.fsf@gnus.org>
     [not found]                                           ` <<jwvft3smepa.fsf-monnier+emacs@gnu.org>
     [not found]                                             ` <<875z4ob5c9.fsf@gnus.org>
     [not found]                                               ` <<jwv1rfcmdfb.fsf-monnier+emacs@gnu.org>
     [not found]                                                 ` <<83mtxzly4f.fsf@gnu.org>
2020-12-27  4:03                                                   ` Internationalize Emacs's messages (swahili) Drew Adams
2020-12-27  4:58                                                     ` lengths and stuff Daniel Brooks
2020-12-27  5:23                                                       ` Drew Adams
2020-12-27 17:56                                                         ` Tomas Hlavaty
2020-12-27 18:52                                                           ` Drew Adams
2020-12-27 20:52                                                             ` Tomas Hlavaty
2020-12-28  7:15                                                               ` Jean Louis
2020-12-28 16:44                                                                 ` Eric Abrahamsen

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=AM0PR06MB65773FF757024A9F8B20B77596DF0@AM0PR06MB6577.eurprd06.prod.outlook.com \
    --to=arthur.miller@live.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=ghe@sdf.org \
    --cc=rms@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.