unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "João Távora" <joaotavora@gmail.com>
To: Richard Stallman <rms@gnu.org>
Cc: emacs-devel <emacs-devel@gnu.org>
Subject: Re: Imports / inclusion of s.el into Emacs
Date: Sat, 9 May 2020 19:37:37 +0100	[thread overview]
Message-ID: <CALDnm50mxT1vVvv7QC0WZitBLc3zvwFC92U7SoMVcHg65N3jAg@mail.gmail.com> (raw)
In-Reply-To: <E1jWt4l-0004v3-92@fencepost.gnu.org>

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

On Fri, May 8, 2020 at 3:49 AM Richard Stallman <rms@gnu.org> wrote:

> Thank you for taking back that word.  It hurt my feelings.

My apologies, again

> Or perhaps "Would have a significant drawback"?  That I can agree with
> you about.  Still, it may be the best choice available under the
> circumstances.

I agree.  Under the current circumstances.  But we can work to change
the circumstances.

> was never to use it nontrivially.  Thus I decided, when writing Emacs
> Lisp to, to avoid conflicts by means of name prefixes, and not have
> packages at all.
> However, the state of the art may have advanced since then.

It has indeed evolved since the 1980's.  Most implementations of Common
Lisp now have something called "package local nicknames", which many
find advantageous.  There are proponents and adversaries.  I'm one
of the proponents, and if you wish I can sing you the joys of the CL
package system.  But that can be for later.

Currently, I count around 7 different implementations and even more
vapourware.  The debate over which to choose is likely to be very
lengthy.  In the end we can even choose more than one system.

But we should keep our eyes on the prize, as they say, and resolve
the s.el and dash.el (and also f.el) situation in the shorter term, so
that those free programs can join our ranks without hurting us,
our existing users, or their existing users.

> This week you said there was a kind of namespace system for Lisp that
> works well and avoids those problems.  If that is true, it could be a
> good solution.

Indeed I said so: I was referring to a simple shorthand system.  In this
system, there are no profound changes to how symbols are organized in
Emacs.  Things can have different names in different contexts, much as
"RMS" means something different in Electrical Engineering or in
this mailing list.

> Another obstacle for my reading those messages was that you were
> responding to other people's questions, which were not the same
> questions that I need to understand.
>
> Can you show me programmer's intro to using a package system of the
> sort you're advocating?  I think I could tell what I need to know from
> that.

Yes, that's a good idea.  So our goal is to use the problematic s.el
library without having it pollute our namespace, right?  To do that, we
first load the library shorthand.el (attached to this message) into
our Emacs.

Then, we must change s.el minimally.  Its contents are (very truncanted):

   ;;; s.el --- The long lost Emacs string manipulation library.
   ;; Author: Magnar Sveen <magnars@gmail.com>

   (defun s-collapse-whitespace (s)
      "Convert all adjacent whitespace characters to a single space."
    ...)

   (defun s-lines (s)
     "Splits S into a list of strings on newline characters."
    ...)

   (provide 's)
   ;;; s.el ends here,

We need to ask the author to add a few lines to the end of the
file and maybe also change the file name:

   ;;; magnar-string.el --- Now with 99% less namespace pain

   (defun s-collapse-whitespace (s) ...)

   (defun s-lines (s) ...)

   (provide 'magnar-string)
   ;;; magnar-string.el ends here,
   ;; Local Variables:
   ;; shorthand-shorthands: (("^s-" . "magnar-string-"))
   ;; End:

Theoretically, we could avoid this step altogether and "guess" the
shorthand from a list of known problematic cases.

Now, Richard, when you load the new magnar-string.el file into your
Emacs namespace won't be polluted with those two names.  Instead, the
the two symbols will be called `magnar-string-lines' and
`magnar-string-collapse-whitespace'.

In your hypothetical "foobarbaz.el"  you can now:

   (require 'magnar-string)
   (defun f-test () (interactive) (message (cadr (s-lines "this\nworks"))))
   ;; Local Variables:
   ;; shorthand-shorthands: (("^s-" . "magnar-string-") ("^f" . "foobarfaz"))
   ;; End:

Again, by loading foobarbaz.el you will have created the function
`foobarbaz-test', despite having typed `f-test'.

> After that, would you be willing to talk with me by voice so I can
> understand enough to see whether this is a good solution?

Yes.  What voice system do you prefer?  I live in GMT, btw.

João

PS: I attach to this message the shorthand.el file mentioned above,
followed by the modified magnar-string.el.  Please note that
shorthand.el is EXPERIMENTAL.  If you want to try it, you should read it
beforehand (it's less than 50 lines) and load it into a separate Emacs.

[-- Attachment #2: magnar-string.el --]
[-- Type: text/x-emacs-lisp, Size: 24761 bytes --]

;;; magnar-string.el --- Formerly s.el, now with 99% less namespace pain!

;; Copyright (C) 2012-2015 Magnar Sveen

;; Author: Magnar Sveen <magnars@gmail.com>
;; Hacked-by: João Távora <joaotavora@gmail.com>
;; Version: 1.12.0-xxx
;; Keywords: strings

;; 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 <http://www.gnu.org/licenses/>.

;;; Commentary:

;; The long lost Emacs string manipulation library,
;; now with 99% less namespace pain!
;;
;; See documentation on https://github.com/magnars/s.el#functions

;;; Code:

;; Silence byte-compiler
(defvar ucs-normalize-combining-chars)  ; Defined in `ucs-normalize'
(autoload 'slot-value "eieio")

(defun s-trim-left (s)
  "Remove whitespace at the beginning of S."
  (declare (pure t) (side-effect-free t))
  (save-match-data
    (if (string-match "\\`[ \t\n\r]+" s)
        (replace-match "" t t s)
      s)))

(defun s-trim-right (s)
  "Remove whitespace at the end of S."
  (save-match-data
    (declare (pure t) (side-effect-free t))
    (if (string-match "[ \t\n\r]+\\'" s)
        (replace-match "" t t s)
      s)))

(defun s-trim (s)
  "Remove whitespace at the beginning and end of S."
  (declare (pure t) (side-effect-free t))
  (s-trim-left (s-trim-right s)))

(defun s-collapse-whitespace (s)
  "Convert all adjacent whitespace characters to a single space."
  (declare (pure t) (side-effect-free t))
  (replace-regexp-in-string "[ \t\n\r]+" " " s))

(defun s-split (separator s &optional omit-nulls)
  "Split S into substrings bounded by matches for regexp SEPARATOR.
If OMIT-NULLS is non-nil, zero-length substrings are omitted.

This is a simple wrapper around the built-in `split-string'."
  (declare (side-effect-free t))
  (save-match-data
    (split-string s separator omit-nulls)))

(defun s-split-up-to (separator s n &optional omit-nulls)
  "Split S up to N times into substrings bounded by matches for regexp SEPARATOR.

If OMIT-NULLS is non-nil, zero-length substrings are omitted.

See also `s-split'."
  (declare (side-effect-free t))
  (save-match-data
    (let ((op 0)
          (r nil))
      (with-temp-buffer
        (insert s)
        (setq op (goto-char (point-min)))
        (while (and (re-search-forward separator nil t)
                    (< 0 n))
          (let ((sub (buffer-substring op (match-beginning 0))))
            (unless (and omit-nulls
                         (equal sub ""))
              (push sub r)))
          (setq op (goto-char (match-end 0)))
          (setq n (1- n)))
        (let ((sub (buffer-substring op (point-max))))
          (unless (and omit-nulls
                       (equal sub ""))
            (push sub r))))
      (nreverse r))))

(defun s-lines (s)
  "Splits S into a list of strings on newline characters."
  (declare (pure t) (side-effect-free t))
  (s-split "\\(\r\n\\|[\n\r]\\)" s))

(defun s-join (separator strings)
  "Join all the strings in STRINGS with SEPARATOR in between."
  (declare (pure t) (side-effect-free t))
  (mapconcat 'identity strings separator))

(defun s-concat (&rest strings)
  "Join all the string arguments into one string."
  (declare (pure t) (side-effect-free t))
  (apply 'concat strings))

(defun s-prepend (prefix s)
  "Concatenate PREFIX and S."
  (declare (pure t) (side-effect-free t))
  (concat prefix s))

(defun s-append (suffix s)
  "Concatenate S and SUFFIX."
  (declare (pure t) (side-effect-free t))
  (concat s suffix))

(defun s-repeat (num s)
  "Make a string of S repeated NUM times."
  (declare (pure t) (side-effect-free t))
  (let (ss)
    (while (> num 0)
      (setq ss (cons s ss))
      (setq num (1- num)))
    (apply 'concat ss)))

(defun s-chop-suffix (suffix s)
  "Remove SUFFIX if it is at end of S."
  (declare (pure t) (side-effect-free t))
  (let ((pos (- (length suffix))))
    (if (and (>= (length s) (length suffix))
             (string= suffix (substring s pos)))
        (substring s 0 pos)
      s)))

(defun s-chop-suffixes (suffixes s)
  "Remove SUFFIXES one by one in order, if they are at the end of S."
  (declare (pure t) (side-effect-free t))
  (while suffixes
    (setq s (s-chop-suffix (car suffixes) s))
    (setq suffixes (cdr suffixes)))
  s)

(defun s-chop-prefix (prefix s)
  "Remove PREFIX if it is at the start of S."
  (declare (pure t) (side-effect-free t))
  (let ((pos (length prefix)))
    (if (and (>= (length s) (length prefix))
             (string= prefix (substring s 0 pos)))
        (substring s pos)
      s)))

(defun s-chop-prefixes (prefixes s)
  "Remove PREFIXES one by one in order, if they are at the start of S."
  (declare (pure t) (side-effect-free t))
  (while prefixes
    (setq s (s-chop-prefix (car prefixes) s))
    (setq prefixes (cdr prefixes)))
  s)

(defun s-shared-start (s1 s2)
  "Returns the longest prefix S1 and S2 have in common."
  (declare (pure t) (side-effect-free t))
  (let ((search-length (min (length s1) (length s2)))
        (i 0))
    (while (and (< i search-length)
                (= (aref s1 i) (aref s2 i)))
      (setq i (1+ i)))
    (substring s1 0 i)))

(defun s-shared-end (s1 s2)
  "Returns the longest suffix S1 and S2 have in common."
  (declare (pure t) (side-effect-free t))
  (let* ((l1 (length s1))
         (l2 (length s2))
         (search-length (min l1 l2))
         (i 0))
    (while (and (< i search-length)
                (= (aref s1 (- l1 i 1)) (aref s2 (- l2 i 1))))
      (setq i (1+ i)))
    ;; If I is 0, then it means that there's no common suffix between
    ;; S1 and S2.
    ;;
    ;; However, since (substring s (- 0)) will return the whole
    ;; string, `s-shared-end' should simply return the empty string
    ;; when I is 0.
    (if (zerop i)
        ""
      (substring s1 (- i)))))

(defun s-chomp (s)
  "Remove one trailing `\\n`, `\\r` or `\\r\\n` from S."
  (declare (pure t) (side-effect-free t))
  (s-chop-suffixes '("\n" "\r") s))

(defun s-truncate (len s &optional ellipsis)
  "If S is longer than LEN, cut it down and add ELLIPSIS to the end.

The resulting string, including ellipsis, will be LEN characters
long.

When not specified, ELLIPSIS defaults to ‘...’."
  (declare (pure t) (side-effect-free t))
  (unless ellipsis
    (setq ellipsis "..."))
  (if (> (length s) len)
      (format "%s%s" (substring s 0 (- len (length ellipsis))) ellipsis)
    s))

(defun s-word-wrap (len s)
  "If S is longer than LEN, wrap the words with newlines."
  (declare (side-effect-free t))
  (save-match-data
    (with-temp-buffer
      (insert s)
      (let ((fill-column len))
        (fill-region (point-min) (point-max)))
      (buffer-substring (point-min) (point-max)))))

(defun s-center (len s)
  "If S is shorter than LEN, pad it with spaces so it is centered."
  (declare (pure t) (side-effect-free t))
  (let ((extra (max 0 (- len (length s)))))
    (concat
     (make-string (ceiling extra 2) ? )
     s
     (make-string (floor extra 2) ? ))))

(defun s-pad-left (len padding s)
  "If S is shorter than LEN, pad it with PADDING on the left."
  (declare (pure t) (side-effect-free t))
  (let ((extra (max 0 (- len (length s)))))
    (concat (make-string extra (string-to-char padding))
            s)))

(defun s-pad-right (len padding s)
  "If S is shorter than LEN, pad it with PADDING on the right."
  (declare (pure t) (side-effect-free t))
  (let ((extra (max 0 (- len (length s)))))
    (concat s
            (make-string extra (string-to-char padding)))))

(defun s-left (len s)
  "Returns up to the LEN first chars of S."
  (declare (pure t) (side-effect-free t))
  (if (> (length s) len)
      (substring s 0 len)
    s))

(defun s-right (len s)
  "Returns up to the LEN last chars of S."
  (declare (pure t) (side-effect-free t))
  (let ((l (length s)))
    (if (> l len)
        (substring s (- l len) l)
      s)))

(defun s-ends-with? (suffix s &optional ignore-case)
  "Does S end with SUFFIX?

If IGNORE-CASE is non-nil, the comparison is done without paying
attention to case differences.

Alias: `s-suffix?'"
  (declare (pure t) (side-effect-free t))
  (let ((start-pos (- (length s) (length suffix))))
    (and (>= start-pos 0)
         (eq t (compare-strings suffix nil nil
                                s start-pos nil ignore-case)))))

(defun s-starts-with? (prefix s &optional ignore-case)
  "Does S start with PREFIX?

If IGNORE-CASE is non-nil, the comparison is done without paying
attention to case differences.

Alias: `s-prefix?'. This is a simple wrapper around the built-in
`string-prefix-p'."
  (declare (pure t) (side-effect-free t))
  (string-prefix-p prefix s ignore-case))

(defun s--truthy? (val)
  (declare (pure t) (side-effect-free t))
  (not (null val)))

(defun s-contains? (needle s &optional ignore-case)
  "Does S contain NEEDLE?

If IGNORE-CASE is non-nil, the comparison is done without paying
attention to case differences."
  (declare (pure t) (side-effect-free t))
  (let ((case-fold-search ignore-case))
    (s--truthy? (string-match-p (regexp-quote needle) s))))

(defun s-equals? (s1 s2)
  "Is S1 equal to S2?

This is a simple wrapper around the built-in `string-equal'."
  (declare (pure t) (side-effect-free t))
  (string-equal s1 s2))

(defun s-less? (s1 s2)
  "Is S1 less than S2?

This is a simple wrapper around the built-in `string-lessp'."
  (declare (pure t) (side-effect-free t))
  (string-lessp s1 s2))

(defun s-matches? (regexp s &optional start)
  "Does REGEXP match S?
If START is non-nil the search starts at that index.

This is a simple wrapper around the built-in `string-match-p'."
  (declare (side-effect-free t))
  (s--truthy? (string-match-p regexp s start)))

(defun s-blank? (s)
  "Is S nil or the empty string?"
  (declare (pure t) (side-effect-free t))
  (or (null s) (string= "" s)))

(defun s-blank-str? (s)
  "Is S nil or the empty string or string only contains whitespace?"
  (declare (pure t) (side-effect-free t))
  (or (s-blank? s) (s-blank? (s-trim s))))

(defun s-present? (s)
  "Is S anything but nil or the empty string?"
  (declare (pure t) (side-effect-free t))
  (not (s-blank? s)))

(defun s-presence (s)
  "Return S if it's `s-present?', otherwise return nil."
  (declare (pure t) (side-effect-free t))
  (and (s-present? s) s))

(defun s-lowercase? (s)
  "Are all the letters in S in lower case?"
  (declare (side-effect-free t))
  (let ((case-fold-search nil))
    (not (string-match-p "[[:upper:]]" s))))

(defun s-uppercase? (s)
  "Are all the letters in S in upper case?"
  (declare (side-effect-free t))
  (let ((case-fold-search nil))
    (not (string-match-p "[[:lower:]]" s))))

(defun s-mixedcase? (s)
  "Are there both lower case and upper case letters in S?"
  (let ((case-fold-search nil))
    (s--truthy?
     (and (string-match-p "[[:lower:]]" s)
          (string-match-p "[[:upper:]]" s)))))

(defun s-capitalized? (s)
  "In S, is the first letter upper case, and all other letters lower case?"
  (declare (side-effect-free t))
  (let ((case-fold-search nil))
    (s--truthy?
     (string-match-p "^[[:upper:]][^[:upper:]]*$" s))))

(defun s-numeric? (s)
  "Is S a number?"
  (declare (pure t) (side-effect-free t))
  (s--truthy?
   (string-match-p "^[0-9]+$" s)))

(defun s-replace (old new s)
  "Replaces OLD with NEW in S."
  (declare (pure t) (side-effect-free t))
  (replace-regexp-in-string (regexp-quote old) new s t t))

(defalias 's-replace-regexp 'replace-regexp-in-string)

(defun s--aget (alist key)
  (declare (pure t) (side-effect-free t))
  (cdr (assoc-string key alist)))

(defun s-replace-all (replacements s)
  "REPLACEMENTS is a list of cons-cells. Each `car` is replaced with `cdr` in S."
  (declare (pure t) (side-effect-free t))
  (replace-regexp-in-string (regexp-opt (mapcar 'car replacements))
                            (lambda (it) (s--aget replacements it))
                            s t t))

(defun s-downcase (s)
  "Convert S to lower case.

This is a simple wrapper around the built-in `downcase'."
  (declare (side-effect-free t))
  (downcase s))

(defun s-upcase (s)
  "Convert S to upper case.

This is a simple wrapper around the built-in `upcase'."
  (declare (side-effect-free t))
  (upcase s))

(defun s-capitalize (s)
  "Convert the first word's first character to upper case and the rest to lower case in S."
  (declare (side-effect-free t))
  (concat (upcase (substring s 0 1)) (downcase (substring s 1))))

(defun s-titleize (s)
  "Convert each word's first character to upper case and the rest to lower case in S.

This is a simple wrapper around the built-in `capitalize'."
  (declare (side-effect-free t))
  (capitalize s))

(defmacro s-with (s form &rest more)
  "Threads S through the forms. Inserts S as the last item
in the first form, making a list of it if it is not a list
already. If there are more forms, inserts the first form as the
last item in second form, etc."
  (declare (debug (form &rest [&or (function &rest form) fboundp])))
  (if (null more)
      (if (listp form)
          `(,(car form) ,@(cdr form) ,s)
        (list form s))
    `(s-with (s-with ,s ,form) ,@more)))

(put 's-with 'lisp-indent-function 1)

(defun s-index-of (needle s &optional ignore-case)
  "Returns first index of NEEDLE in S, or nil.

If IGNORE-CASE is non-nil, the comparison is done without paying
attention to case differences."
  (declare (pure t) (side-effect-free t))
  (let ((case-fold-search ignore-case))
    (string-match-p (regexp-quote needle) s)))

(defun s-reverse (s)
  "Return the reverse of S."
  (declare (pure t) (side-effect-free t))
  (save-match-data
    (if (multibyte-string-p s)
        (let ((input (string-to-list s))
              output)
          (require 'ucs-normalize)
          (while input
            ;; Handle entire grapheme cluster as a single unit
            (let ((grapheme (list (pop input))))
              (while (memql (car input) ucs-normalize-combining-chars)
                (push (pop input) grapheme))
              (setq output (nconc (nreverse grapheme) output))))
          (concat output))
      (concat (nreverse (string-to-list s))))))

(defun s-match-strings-all (regex string)
  "Return a list of matches for REGEX in STRING.

Each element itself is a list of matches, as per
`match-string'. Multiple matches at the same position will be
ignored after the first."
  (declare (side-effect-free t))
  (save-match-data
    (let ((all-strings ())
          (i 0))
      (while (and (< i (length string))
                  (string-match regex string i))
        (setq i (1+ (match-beginning 0)))
        (let (strings
              (num-matches (/ (length (match-data)) 2))
              (match 0))
          (while (/= match num-matches)
            (push (match-string match string) strings)
            (setq match (1+ match)))
          (push (nreverse strings) all-strings)))
      (nreverse all-strings))))

(defun s-matched-positions-all (regexp string &optional subexp-depth)
  "Return a list of matched positions for REGEXP in STRING.
SUBEXP-DEPTH is 0 by default."
  (declare (side-effect-free t))
  (if (null subexp-depth)
      (setq subexp-depth 0))
  (save-match-data
    (let ((pos 0) result)
      (while (and (string-match regexp string pos)
                  (< pos (length string)))
        (let ((m (match-end subexp-depth)))
          (push (cons (match-beginning subexp-depth) (match-end subexp-depth)) result)
          (setq pos (match-end 0))))
      (nreverse result))))

(defun s-match (regexp s &optional start)
  "When the given expression matches the string, this function returns a list
of the whole matching string and a string for each matched subexpressions.
If it did not match the returned value is an empty list (nil).

When START is non-nil the search will start at that index."
  (declare (side-effect-free t))
  (save-match-data
    (if (string-match regexp s start)
        (let ((match-data-list (match-data))
              result)
          (while match-data-list
            (let* ((beg (car match-data-list))
                   (end (cadr match-data-list))
                   (subs (if (and beg end) (substring s beg end) nil)))
              (setq result (cons subs result))
              (setq match-data-list
                    (cddr match-data-list))))
          (nreverse result)))))

(defun s-slice-at (regexp s)
  "Slices S up at every index matching REGEXP."
  (declare (side-effect-free t))
  (if (= 0 (length s)) (list "")
    (save-match-data
      (let (i)
        (setq i (string-match regexp s 1))
        (if i
            (cons (substring s 0 i)
                  (s-slice-at regexp (substring s i)))
          (list s))))))

(defun s-split-words (s)
  "Split S into list of words."
  (declare (side-effect-free t))
  (s-split
   "[^[:word:]0-9]+"
   (let ((case-fold-search nil))
     (replace-regexp-in-string
      "\\([[:lower:]]\\)\\([[:upper:]]\\)" "\\1 \\2"
      (replace-regexp-in-string "\\([[:upper:]]\\)\\([[:upper:]][0-9[:lower:]]\\)" "\\1 \\2" s)))
   t))

(defun s--mapcar-head (fn-head fn-rest list)
  "Like MAPCAR, but applies a different function to the first element."
  (if list
      (cons (funcall fn-head (car list)) (mapcar fn-rest (cdr list)))))

(defun s-lower-camel-case (s)
  "Convert S to lowerCamelCase."
  (declare (side-effect-free t))
  (s-join "" (s--mapcar-head 'downcase 'capitalize (s-split-words s))))

(defun s-upper-camel-case (s)
  "Convert S to UpperCamelCase."
  (declare (side-effect-free t))
  (s-join "" (mapcar 'capitalize (s-split-words s))))

(defun s-snake-case (s)
  "Convert S to snake_case."
  (declare (side-effect-free t))
  (s-join "_" (mapcar 'downcase (s-split-words s))))

(defun s-dashed-words (s)
  "Convert S to dashed-words."
  (declare (side-effect-free t))
  (s-join "-" (mapcar 'downcase (s-split-words s))))

(defun s-capitalized-words (s)
  "Convert S to Capitalized words."
  (declare (side-effect-free t))
  (let ((words (s-split-words s)))
    (s-join " " (cons (capitalize (car words)) (mapcar 'downcase (cdr words))))))

(defun s-titleized-words (s)
  "Convert S to Titleized Words."
  (declare (side-effect-free t))
  (s-join " " (mapcar 's-titleize (s-split-words s))))

(defun s-word-initials (s)
  "Convert S to its initials."
  (declare (side-effect-free t))
  (s-join "" (mapcar (lambda (ss) (substring ss 0 1))
                     (s-split-words s))))

;; Errors for s-format
(progn
  (put 's-format-resolve
       'error-conditions
       '(error s-format s-format-resolve))
  (put 's-format-resolve
       'error-message
       "Cannot resolve a template to values"))

(defun s-format (template replacer &optional extra)
  "Format TEMPLATE with the function REPLACER.

REPLACER takes an argument of the format variable and optionally
an extra argument which is the EXTRA value from the call to
`s-format'.

Several standard `s-format' helper functions are recognized and
adapted for this:

    (s-format \"${name}\" 'gethash hash-table)
    (s-format \"${name}\" 'aget alist)
    (s-format \"$0\" 'elt sequence)

The REPLACER function may be used to do any other kind of
transformation."
  (let ((saved-match-data (match-data)))
    (unwind-protect
        (replace-regexp-in-string
         "\\$\\({\\([^}]+\\)}\\|[0-9]+\\)"
         (lambda (md)
           (let ((var
                  (let ((m (match-string 2 md)))
                    (if m m
                      (string-to-number (match-string 1 md)))))
                 (replacer-match-data (match-data)))
             (unwind-protect
                 (let ((v
                        (cond
                         ((eq replacer 'gethash)
                          (funcall replacer var extra))
                         ((eq replacer 'aget)
                          (funcall 's--aget extra var))
                         ((eq replacer 'elt)
                          (funcall replacer extra var))
                         ((eq replacer 'oref)
                          (funcall #'slot-value extra (intern var)))
                         (t
                          (set-match-data saved-match-data)
                          (if extra
                              (funcall replacer var extra)
                            (funcall replacer var))))))
                   (if v (format "%s" v) (signal 's-format-resolve md)))
               (set-match-data replacer-match-data)))) template
               ;; Need literal to make sure it works
               t t)
      (set-match-data saved-match-data))))

(defvar s-lex-value-as-lisp nil
  "If `t' interpolate lisp values as lisp.

`s-lex-format' inserts values with (format \"%S\").")

(defun s-lex-fmt|expand (fmt)
  "Expand FMT into lisp."
  (declare (side-effect-free t))
  (list 's-format fmt (quote 'aget)
        (append '(list)
                (mapcar
                 (lambda (matches)
                   (list
                    'cons
                    (cadr matches)
                    `(format
                      (if s-lex-value-as-lisp "%S" "%s")
                      ,(intern (cadr matches)))))
                 (s-match-strings-all "${\\([^}]+\\)}" fmt)))))

(defmacro s-lex-format (format-str)
  "`s-format` with the current environment.

FORMAT-STR may use the `s-format' variable reference to refer to
any variable:

 (let ((x 1))
   (s-lex-format \"x is: ${x}\"))

The values of the variables are interpolated with \"%s\" unless
the variable `s-lex-value-as-lisp' is `t' and then they are
interpolated with \"%S\"."
  (declare (debug (form)))
  (s-lex-fmt|expand format-str))

(defun s-count-matches (regexp s &optional start end)
  "Count occurrences of `regexp' in `s'.

`start', inclusive, and `end', exclusive, delimit the part of `s' to
match.  `start' and `end' are both indexed starting at 1; the initial
character in `s' is index 1.

This function starts looking for the next match from the end of the
previous match.  Hence, it ignores matches that overlap a previously
found match.  To count overlapping matches, use
`s-count-matches-all'."
  (declare (side-effect-free t))
  (save-match-data
    (with-temp-buffer
      (insert s)
      (goto-char (point-min))
      (count-matches regexp (or start 1) (or end (point-max))))))

(defun s-count-matches-all (regexp s &optional start end)
  "Count occurrences of `regexp' in `s'.

`start', inclusive, and `end', exclusive, delimit the part of `s' to
match.  `start' and `end' are both indexed starting at 1; the initial
character in `s' is index 1.

This function starts looking for the next match from the second
character of the previous match.  Hence, it counts matches that
overlap a previously found match.  To ignore matches that overlap a
previously found match, use `s-count-matches'."
  (declare (side-effect-free t))
  (let* ((anchored-regexp (format "^%s" regexp))
         (match-count 0)
         (i 0)
         (narrowed-s (substring s
                                (when start (1- start))
                                (when end (1- end)))))
    (save-match-data
      (while (< i (length narrowed-s))
        (when (s-matches? anchored-regexp (substring narrowed-s i))
          (setq match-count (1+ match-count)))
        (setq i (1+ i))))
    match-count))

(defun s-wrap (s prefix &optional suffix)
  "Wrap string S with PREFIX and optionally SUFFIX.

Return string S with PREFIX prepended.  If SUFFIX is present, it
is appended, otherwise PREFIX is used as both prefix and
suffix."
  (declare (pure t) (side-effect-free t))
  (concat prefix s (or suffix prefix)))

\f
;;; Aliases

(defalias 's-blank-p 's-blank?)
(defalias 's-blank-str-p 's-blank-str?)
(defalias 's-capitalized-p 's-capitalized?)
(defalias 's-contains-p 's-contains?)
(defalias 's-ends-with-p 's-ends-with?)
(defalias 's-equals-p 's-equals?)
(defalias 's-less-p 's-less?)
(defalias 's-lowercase-p 's-lowercase?)
(defalias 's-matches-p 's-matches?)
(defalias 's-mixedcase-p 's-mixedcase?)
(defalias 's-numeric-p 's-numeric?)
(defalias 's-prefix-p 's-starts-with?)
(defalias 's-prefix? 's-starts-with?)
(defalias 's-present-p 's-present?)
(defalias 's-starts-with-p 's-starts-with?)
(defalias 's-suffix-p 's-ends-with?)
(defalias 's-suffix? 's-ends-with?)
(defalias 's-uppercase-p 's-uppercase?)

\f
(provide 'magnar-string)
;;; magnar-string.el ends here,
;; Local Variables:
;; shorthand-shorthands: (("^s-" . "magnar-string-"))
;; End:

[-- Attachment #3: shorthand.el --]
[-- Type: text/x-emacs-lisp, Size: 2956 bytes --]

;;; shorthand.el --- namespacing system  -*- lexical-binding: t; -*-

;; Copyright (C) 2020  Free Software Foundation

;; Author: João Távora <joaotavora@gmail.com>
;; Keywords: languages, lisp

;; 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:

;;; Code:

(require 'cl-lib)

(defvar shorthand-shorthands nil)
(put 'shorthand-shorthands 'safe-local-variable #'consp)

(defun shorthand--expand-shorthand (form)
  (cl-typecase form
    (cons (setcar form (shorthand--expand-shorthand (car form)))
          (setcdr form (shorthand--expand-shorthand (cdr form))))
    (vector (cl-loop for i from 0 for e across form
                     do (aset form i (shorthand--expand-shorthand e))))
    (symbol (let* ((name (symbol-name form)))
              (cl-loop for (short-pat . long-pat) in shorthand-shorthands
                       when (string-match short-pat name)
                       do (setq name (replace-match long-pat t nil name)))
              (setq form (intern name))))
    (string) (number)
    (t       (message "[shorthand] unexpectged %s" (type-of form))))
  form)

(defun shorthand-read-wrapper (wrappee stream &rest stuff)
  (if (and load-file-name (string-match "\\.elc$" load-file-name))
      (apply wrappee stream stuff)
    (shorthand--expand-shorthand
     (let ((obarray (obarray-make))) (apply wrappee stream stuff)))))

(defun shorthand-intern-soft-wrapper (wrappee name &rest stuff)
  (let ((res (apply wrappee name stuff)))
    (or res (cl-loop
             for (short-pat . long-pat) in shorthand-shorthands
             thereis (apply wrappee
                            (replace-regexp-in-string short-pat
                                                      long-pat name)
                            stuff)))))

(defun shorthand-load-wrapper (wrappee file &rest stuff)
  (let (file-local-shorthands)
    (when (file-readable-p file)
      (with-temp-buffer
        (insert-file-contents file)
        (hack-local-variables)
        (setq file-local-shorthands shorthand-shorthands)))
    (let ((shorthand-shorthands file-local-shorthands))
      (apply wrappee file stuff)))))

(advice-add 'read        :around #'shorthand-read-wrapper)
(advice-add 'intern-soft :around #'shorthand-intern-soft-wrapper)
(advice-add 'load        :around #'shorthand-load-wrapper)

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

  reply	other threads:[~2020-05-09 18:37 UTC|newest]

Thread overview: 784+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <<CAGK7Mr6KHu_ab9c0b5RYvYp9+P91PFQ9emL3Fdy1436=VZ5gYA@mail.gmail.com>
     [not found] ` <<E1jUhoe-0005vE-KC@fencepost.gnu.org>
     [not found]   ` <<83368ivmym.fsf@gnu.org>
2020-05-02 16:49     ` Imports / inclusion of s.el into Emacs Drew Adams
2020-05-02 20:30       ` Philippe Vaucher
2020-05-02 20:50         ` Drew Adams
2020-05-02 21:11           ` Stefan Kangas
2020-05-02 21:17           ` Philippe Vaucher
2020-05-02 21:22           ` Dmitry Gutov
2020-05-03 14:30         ` Eli Zaretskii
2020-05-02 21:58       ` Stefan Monnier
2020-05-03  0:11         ` Drew Adams
2020-05-03  7:33           ` Philippe Vaucher
2020-05-03  8:05             ` tomas
2020-05-03  8:24               ` Philippe Vaucher
2020-05-03  8:56                 ` tomas
2020-05-03  9:14                   ` Philippe Vaucher
2020-05-03  9:36                     ` tomas
2020-05-04  3:12                   ` Richard Stallman
2020-05-04  7:54                     ` tomas
2020-05-04 17:12                       ` Drew Adams
2020-05-04 18:56                         ` tomas
2020-05-04 14:03                     ` Richard Stallman
2020-05-03 19:45             ` Drew Adams
2020-05-03 19:55               ` João Távora
2020-05-04  7:08               ` Philippe Vaucher
2020-05-04 17:19                 ` Drew Adams
2020-05-05  7:17                   ` Philippe Vaucher
2020-05-05 15:03                     ` Drew Adams
2020-05-05 15:18                       ` Eli Zaretskii
2020-05-06  4:46                       ` Richard Stallman
2020-05-06  4:55                         ` Drew Adams
2020-05-09  3:47                           ` Possible renamings of some string functions Richard Stallman
     [not found]   ` <<jwvwo5usda8.fsf-monnier+emacs@gnu.org>
     [not found]     ` <<831ro2tqqx.fsf@gnu.org>
     [not found]       ` <<4a1fd3f4-df92-c756-9874-4d07b54148ac@yandex.ru>
     [not found]         ` <<CALDnm50X097mYkC+p+JU11Uk2x0Y6LDbD_V9qPoGh7=aC-7HGg@mail.gmail.com>
     [not found]           ` <<3bd09dca-dcdc-7569-e5fb-f6b53397af9d@yandex.ru>
     [not found]             ` <<CALDnm53F16GY99-mNU-LJ6W9i0WV0zLuh0k8sSvC__-EgZfRNA@mail.gmail.com>
     [not found]               ` <<fca70a12-d0ee-1432-09ec-0006bf80b02a@yandex.ru>
     [not found]                 ` <<83bln6s5on.fsf@gnu.org>
     [not found]                   ` <<6d43996b-65ab-0bc6-9124-156520396910@yandex.ru>
     [not found]                     ` <<2152FEE0-987F-4816-9FB5-717EED2B47BE@icloud.com>
     [not found]                       ` <<83h7wyqiku.fsf@gnu.org>
     [not found]                         ` <<E1jVRPP-00060G-Od@fencepost.gnu.org>
     [not found]                           ` <<83imhbojx6.fsf@gnu.org>
2020-05-04 17:36                             ` Imports / inclusion of s.el into Emacs Drew Adams
2020-05-04 17:42                               ` João Távora
2020-05-05  7:25                               ` Philippe Vaucher
2020-05-05 10:14                                 ` João Távora
2020-05-05 11:57                                   ` Philippe Vaucher
2020-05-05 13:07                                     ` João Távora
2020-05-05 13:18                                       ` 조성빈
2020-05-05 13:40                                         ` João Távora
2020-05-05 13:55                                           ` 조성빈
2020-05-05 14:22                                             ` João Távora
2020-05-05 16:47                                               ` 조성빈
2020-05-05 21:48                                                 ` João Távora
2020-05-05 14:47                                       ` Philippe Vaucher
2020-05-05 16:20                                         ` Stefan Kangas
2020-05-05 17:29                                           ` Drew Adams
2020-05-06  4:45                                           ` Richard Stallman
2020-05-06 13:37                                             ` Stefan Monnier
2020-05-06 13:50                                               ` João Távora
2020-05-07  2:45                                                 ` Richard Stallman
2020-05-07 10:14                                                   ` João Távora
2020-05-08  2:49                                                     ` Richard Stallman
2020-05-09 18:37                                                       ` João Távora [this message]
2020-05-12  3:12                                                         ` Richard Stallman
2020-05-12 10:56                                                           ` João Távora
2020-05-12 19:14                                                             ` Adam Porter
2020-05-12 19:39                                                               ` João Távora
2020-05-12 21:03                                                                 ` Adam Porter
2020-05-12 21:18                                                                   ` João Távora
2020-05-13  4:05                                                                   ` Richard Stallman
2020-05-13  4:07                                                                 ` Richard Stallman
2020-05-18 22:31                                                                   ` João Távora
2020-05-24  3:52                                                                     ` Richard Stallman
2020-05-13  3:55                                                             ` Richard Stallman
2020-05-13  9:33                                                               ` João Távora
2020-05-13  3:55                                                             ` Richard Stallman
2020-05-06 14:04                                               ` Philippe Vaucher
2020-05-07  2:44                                                 ` Richard Stallman
2020-05-07  3:14                                                   ` Stefan Monnier
2020-05-07  7:23                                                     ` Philippe Vaucher
2020-05-07 13:42                                                       ` Stefan Monnier
2020-05-07 14:18                                                         ` Alfred M. Szmidt
2020-05-07 19:13                                                           ` Dmitry Gutov
2020-05-07 19:47                                                             ` Alfred M. Szmidt
2020-05-07 20:07                                                               ` Dmitry Gutov
2020-05-07 22:16                                                                 ` Alfred M. Szmidt
2020-05-08  2:47                                                         ` Richard Stallman
2020-05-08  3:38                                                           ` Stefan Monnier
2020-05-08  6:54                                                             ` ELPA policy (was: Imports / inclusion of s.el into Emacs) Eli Zaretskii
2020-05-08 14:57                                                               ` ELPA policy Stefan Monnier
2020-05-08 15:13                                                                 ` Eli Zaretskii
2020-05-08 23:16                                                                   ` Stefan Monnier
2020-05-09  6:22                                                                     ` Eli Zaretskii
2020-05-09  7:35                                                                       ` David Engster
2020-05-09  7:56                                                                         ` Eli Zaretskii
2020-05-09  8:16                                                                           ` David Engster
2020-05-09  8:27                                                                             ` Eli Zaretskii
2020-05-09  8:43                                                                               ` David Engster
2020-05-09  9:43                                                                                 ` Eli Zaretskii
2020-05-09 10:13                                                                                   ` David Engster
2020-05-09 10:24                                                                                     ` Eli Zaretskii
2020-05-09 10:29                                                                                       ` David Engster
2020-05-09 10:41                                                                                         ` Eli Zaretskii
2020-05-09 11:15                                                                                           ` David Engster
2020-05-10  2:29                                                                                         ` Richard Stallman
2020-05-09 11:09                                                                                       ` Alfred M. Szmidt
2020-05-09 15:06                                                                       ` Dmitry Gutov
2020-05-11 16:28                                                                         ` Eli Zaretskii
2020-05-12  3:16                                                                           ` Richard Stallman
2020-05-12 15:00                                                                             ` Eli Zaretskii
2020-05-08 22:34                                                               ` Phillip Lord
2020-05-09  7:21                                                               ` ELPA policy (was: Imports / inclusion of s.el into Emacs) Philippe Vaucher
2020-05-09  7:40                                                                 ` Philippe Vaucher
2020-05-09  7:48                                                                 ` Eli Zaretskii
2020-05-09 10:42                                                                   ` Philippe Vaucher
2020-05-09 11:11                                                                     ` Eli Zaretskii
2020-05-09 13:00                                                                       ` Philippe Vaucher
2020-05-10  2:29                                                                     ` Richard Stallman
2020-05-08  6:31                                                           ` Imports / inclusion of s.el into Emacs Alfred M. Szmidt
2020-05-08  8:16                                                             ` dash.el [was: Re: Imports / inclusion of s.el into Emacs] Joost Kremers
2020-05-08 10:41                                                               ` Alfred M. Szmidt
2020-05-08 17:53                                                                 ` Phillip Lord
2020-05-08 18:31                                                                   ` Alfred M. Szmidt
2020-05-08 22:23                                                                     ` Phillip Lord
2020-05-08 23:08                                                                       ` Stefan Kangas
2020-05-09  7:11                                                                       ` Alfred M. Szmidt
2020-05-10 11:48                                                                         ` Phillip Lord
2020-05-09  3:56                                                               ` Richard Stallman
2020-05-09  4:26                                                                 ` 조성빈
2020-05-09 10:57                                                                   ` Alfred M. Szmidt
2020-05-09 11:19                                                                     ` Eli Zaretskii
2020-05-09 11:29                                                                       ` octal escapes with rmail [was: Re: dash.el [was: Re: Imports / inclusion of s.el into Emacs]] Alfred M. Szmidt
2020-05-09 11:40                                                                         ` octal escapes with rmail Eli Zaretskii
2020-05-09 13:20                                                                           ` Alfred M. Szmidt
2020-05-09 12:53                                                                         ` octal escapes with rmail [was: Re: dash.el [was: Re: Imports / inclusion of s.el into Emacs]] Andreas Schwab
2020-05-09 13:07                                                                           ` Eli Zaretskii
2020-05-09 13:20                                                                             ` Alfred M. Szmidt
2020-05-09 13:30                                                                               ` Eli Zaretskii
2020-05-09 13:20                                                                           ` Alfred M. Szmidt
2020-05-09 13:36                                                                             ` Eli Zaretskii
2020-05-09 14:22                                                                         ` Stefan Monnier
2020-05-09 14:30                                                                           ` Lars Ingebrigtsen
2020-05-09 14:38                                                                           ` Andreas Schwab
2020-05-09 15:08                                                                           ` Eli Zaretskii
2020-05-09 15:14                                                                             ` Andreas Schwab
2020-05-09 19:37                                                                             ` Stefan Monnier
2020-05-09  7:38                                                                 ` dash.el [was: Re: Imports / inclusion of s.el into Emacs] Philippe Vaucher
2020-05-09  8:05                                                                   ` Eli Zaretskii
2020-05-09 10:56                                                                     ` Philippe Vaucher
2020-05-09 11:14                                                                       ` Eli Zaretskii
2020-05-09 12:13                                                                         ` Philippe Vaucher
2020-05-09 12:43                                                                           ` Eli Zaretskii
2020-05-09 12:52                                                                             ` Philippe Vaucher
2020-05-09 13:50                                                                       ` Richard Stallman
2020-05-09 14:11                                                                         ` Philippe Vaucher
2020-05-10  2:33                                                                           ` Richard Stallman
2020-05-10  7:23                                                                             ` Philippe Vaucher
2020-05-10  2:33                                                                           ` Richard Stallman
2020-05-10  2:44                                                                             ` Amin Bandali
2020-05-10  7:18                                                                               ` Philippe Vaucher
2020-05-11  2:41                                                                               ` Richard Stallman
2020-05-10 11:58                                                                         ` Phillip Lord
2020-05-11  2:38                                                                           ` Richard Stallman
2020-05-11  2:59                                                                             ` 조성빈
2020-05-11  5:49                                                                               ` Alfred M. Szmidt
2020-05-11 16:19                                                                                 ` Phillip Lord
2020-05-11 16:41                                                                                   ` Alfred M. Szmidt
2020-05-11 17:12                                                                                     ` 조성빈
2020-05-11 18:14                                                                                       ` Stefan Monnier
2020-05-11 19:28                                                                                       ` elpa part of emacs? [Re: dash.el [was: Re: Imports / inclusion of s.el into Emacs]] Alfred M. Szmidt
2020-05-11 20:05                                                                                         ` Stefan Monnier
2020-05-11 19:28                                                                                       ` dash.el [was: Re: Imports / inclusion of s.el into Emacs] Alfred M. Szmidt
2020-05-12  3:16                                                                                       ` Richard Stallman
2020-05-12  3:55                                                                                         ` Stefan Monnier
2020-05-12 17:01                                                                                           ` Eli Zaretskii
2020-05-12 17:30                                                                                             ` Phillip Lord
2020-05-12 17:46                                                                                               ` Eli Zaretskii
2020-05-12 18:03                                                                                                 ` Dmitry Gutov
2020-05-12 18:45                                                                                                   ` Eli Zaretskii
2020-05-13  4:04                                                                                                   ` Richard Stallman
2020-05-13 14:54                                                                                                     ` Dmitry Gutov
2020-05-12 18:51                                                                                                 ` Stefan Monnier
2020-05-12 21:38                                                                                                 ` Phillip Lord
2020-05-12 22:58                                                                                                   ` Yuan Fu
2020-05-13  8:52                                                                                                     ` Phillip Lord
2020-05-13 14:38                                                                                                   ` Eli Zaretskii
2020-05-13 15:11                                                                                                     ` Dmitry Gutov
2020-05-14  5:09                                                                                                       ` Richard Stallman
2020-05-14 12:22                                                                                                         ` Dmitry Gutov
2020-05-13  4:08                                                                                               ` Richard Stallman
2020-05-12 18:42                                                                                             ` Stefan Monnier
2020-05-12 19:07                                                                                               ` Eli Zaretskii
2020-05-12 19:50                                                                                                 ` Stefan Monnier
2020-05-13 16:20                                                                                                   ` Eli Zaretskii
2020-05-13 18:35                                                                                                     ` Stefan Monnier
2020-05-15  3:18                                                                                                     ` Richard Stallman
2020-05-13  4:07                                                                                                 ` Richard Stallman
2020-05-13 12:33                                                                                                   ` Stefan Monnier
2020-05-14  5:10                                                                                                     ` Richard Stallman
2020-05-13 14:54                                                                                                   ` Eli Zaretskii
2020-05-13  4:07                                                                                               ` Richard Stallman
2020-05-13  9:58                                                                                                 ` Phillip Lord
2020-05-13 11:48                                                                                                   ` Alfred M. Szmidt
2020-05-14  5:12                                                                                                   ` Richard Stallman
2020-05-14 12:25                                                                                                     ` Dmitry Gutov
2020-05-14 17:23                                                                                                       ` Drew Adams
2020-05-14 18:31                                                                                                         ` Dmitry Gutov
2020-05-12 18:43                                                                                             ` Stefan Monnier
2020-05-13  3:57                                                                                           ` Richard Stallman
2020-05-13 12:27                                                                                             ` Stefan Monnier
2020-05-14  5:10                                                                                               ` Richard Stallman
2020-05-14 13:44                                                                                                 ` Stefan Monnier
2020-05-14 15:28                                                                                                   ` Philippe Vaucher
2020-05-14 18:14                                                                                                     ` Eli Zaretskii
2020-05-14 18:32                                                                                                     ` Dmitry Gutov
2020-05-15  3:19                                                                                                       ` What is GNU ELPA? Richard Stallman
2020-05-15  3:46                                                                                                         ` Dmitry Gutov
2020-05-15  4:00                                                                                                           ` Jean-Christophe Helary
2020-05-15  4:21                                                                                                             ` Dmitry Gutov
2020-05-15  4:01                                                                                                           ` Stefan Monnier
2020-05-15  6:29                                                                                                           ` Alfred M. Szmidt
2020-05-15 15:08                                                                                                             ` Howard Melman
2020-05-15 20:43                                                                                                               ` Alfred M. Szmidt
2020-05-16  0:07                                                                                                               ` Dmitry Gutov
2020-05-18  3:46                                                                                                                 ` Richard Stallman
2020-05-18 10:57                                                                                                                   ` Dmitry Gutov
2020-05-18 13:01                                                                                                                     ` Alfred M. Szmidt
2020-05-18 13:21                                                                                                                       ` Dmitry Gutov
2020-05-18 12:54                                                                                                                   ` Arthur Miller
2020-05-19  3:57                                                                                                                     ` Richard Stallman
2020-05-19  3:58                                                                                                                     ` Richard Stallman
2020-05-16  4:16                                                                                                               ` Richard Stallman
2020-05-15  7:06                                                                                                           ` Eli Zaretskii
2020-05-15 12:25                                                                                                             ` Dmitry Gutov
2020-05-15 13:40                                                                                                               ` Eli Zaretskii
2020-05-15 13:59                                                                                                                 ` Dmitry Gutov
2020-05-15 15:11                                                                                                                   ` Stefan Monnier
2020-05-15 15:20                                                                                                                     ` Eli Zaretskii
2020-05-16  4:16                                                                                                                 ` Richard Stallman
2020-05-16  7:08                                                                                                                   ` Eli Zaretskii
2020-05-16  9:05                                                                                                                     ` Dmitry Gutov
2020-05-16  9:33                                                                                                                       ` Dmitry Gutov
2020-05-16  8:24                                                                                                                   ` Alfred M. Szmidt
2020-05-16 12:48                                                                                                                   ` Stefan Monnier
2020-05-16 14:43                                                                                                                     ` Eli Zaretskii
2020-05-16 20:24                                                                                                                       ` Dmitry Gutov
2020-05-17  2:52                                                                                                                       ` Richard Stallman
2020-05-16  4:18                                                                                                             ` Richard Stallman
2020-05-17  2:48                                                                                                           ` Richard Stallman
2020-05-17 12:59                                                                                                             ` Eli Zaretskii
2020-05-17  2:48                                                                                                           ` Richard Stallman
2020-05-17 18:05                                                                                                             ` Dmitry Gutov
2020-05-18  3:53                                                                                                               ` Richard Stallman
2020-05-18 10:49                                                                                                                 ` Dmitry Gutov
2020-05-19  3:59                                                                                                                   ` Richard Stallman
2020-05-17 14:49                                                                                                         ` Yoni Rabkin
2020-05-17 17:56                                                                                                           ` Dmitry Gutov
2020-05-18  2:42                                                                                                             ` Yoni Rabkin
2020-05-18 10:53                                                                                                               ` Dmitry Gutov
2020-05-18 13:01                                                                                                             ` Alfred M. Szmidt
2020-05-18  3:53                                                                                                           ` Richard Stallman
2020-05-18 10:54                                                                                                             ` Dmitry Gutov
2020-05-17  2:53                                                                                                   ` dash.el [was: Re: Imports / inclusion of s.el into Emacs] Richard Stallman
2020-05-17 13:01                                                                                                     ` Eli Zaretskii
2020-05-17 13:38                                                                                                       ` Dmitry Gutov
2020-05-17 14:24                                                                                                         ` Eli Zaretskii
2020-05-17 18:27                                                                                                           ` Dmitry Gutov
2020-05-17 18:38                                                                                                             ` Eli Zaretskii
2020-05-17 19:21                                                                                                               ` Dmitry Gutov
2020-05-17 19:30                                                                                                                 ` Eli Zaretskii
2020-05-17 19:47                                                                                                                   ` Dmitry Gutov
2020-05-17 18:52                                                                                                             ` "Write a new package" culture instead of patches? Stefan Kangas
2020-05-17 19:42                                                                                                               ` Dmitry Gutov
2020-05-17 22:14                                                                                                                 ` Yuan Fu
2020-05-17 22:44                                                                                                                   ` Arthur Miller
2020-05-17 23:13                                                                                                                   ` chad
2020-05-17 23:22                                                                                                                     ` Stefan Monnier
2020-05-18  1:31                                                                                                                       ` João Távora
2020-05-18  1:55                                                                                                                       ` Tim Cross
2020-05-19  3:51                                                                                                                       ` Richard Stallman
2020-05-19  3:51                                                                                                                   ` Richard Stallman
2020-05-19  4:33                                                                                                                     ` Stefan Kangas
2020-05-17 21:14                                                                                                               ` Alan Third
2020-05-17 22:02                                                                                                                 ` Arthur Miller
2020-05-18  7:58                                                                                                                   ` tomas
2020-05-18 12:08                                                                                                                     ` Arthur Miller
2020-05-18 12:26                                                                                                                       ` tomas
2020-05-18 23:07                                                                                                                         ` arthur miller
2020-05-19  7:27                                                                                                                           ` tomas
2020-05-17 21:51                                                                                                               ` Matthias Meulien
2020-05-18  3:49                                                                                                             ` dash.el [was: Re: Imports / inclusion of s.el into Emacs] Richard Stallman
2020-05-18 11:07                                                                                                               ` Dmitry Gutov
2020-05-19  3:59                                                                                                                 ` Splitting GNU ELPA Richard Stallman
2020-05-18 14:42                                                                                                               ` dash.el [was: Re: Imports / inclusion of s.el into Emacs] Eli Zaretskii
2020-05-19  3:55                                                                                                                 ` Splitting GNU ELPA Richard Stallman
2020-05-19  3:55                                                                                                                 ` Richard Stallman
2020-05-19 14:02                                                                                                                   ` Eli Zaretskii
2020-05-20  4:01                                                                                                                     ` Richard Stallman
2020-05-18  3:49                                                                                                         ` dash.el [was: Re: Imports / inclusion of s.el into Emacs] Richard Stallman
2020-05-18 11:24                                                                                                           ` Dmitry Gutov
2020-05-18 15:10                                                                                                             ` Eli Zaretskii
2020-05-18 16:13                                                                                                               ` Dmitry Gutov
2020-05-18 16:28                                                                                                                 ` Eli Zaretskii
2020-05-18 18:00                                                                                                                   ` Dmitry Gutov
2020-05-19 14:18                                                                                                                     ` João Távora
2020-05-19 14:21                                                                                                                       ` Dmitry Gutov
2020-05-19 15:14                                                                                                                       ` Stefan Kangas
2020-05-19 15:18                                                                                                                         ` Dmitry Gutov
2020-05-19 15:47                                                                                                                         ` Jean-Christophe Helary
2020-05-19  3:53                                                                                                                   ` Richard Stallman
2020-05-19 13:07                                                                                                                     ` Dmitry Gutov
2020-05-19 14:29                                                                                                                       ` João Távora
2020-05-19 14:46                                                                                                                         ` Dmitry Gutov
2020-05-19 15:20                                                                                                                       ` Stefan Kangas
2020-05-19 19:56                                                                                                                         ` Dmitry Gutov
2020-05-20  3:57                                                                                                                       ` Richard Stallman
2020-05-19  3:59                                                                                                             ` GNU ELPA package discoverability Richard Stallman
2020-05-19 14:30                                                                                                               ` Dmitry Gutov
2020-05-20  0:28                                                                                                               ` Tim Cross
2020-05-20 14:23                                                                                                                 ` Eli Zaretskii
2020-05-20 14:46                                                                                                                 ` Drew Adams
2020-05-21  3:42                                                                                                                 ` Richard Stallman
2020-05-21  6:03                                                                                                                   ` Tim Cross
2020-05-22  3:11                                                                                                                     ` Richard Stallman
2020-05-22  8:13                                                                                                                       ` Vasilij Schneidermann
2020-05-24  3:51                                                                                                                         ` Richard Stallman
2020-05-24 13:38                                                                                                                           ` Vasilij Schneidermann
2020-05-25  4:36                                                                                                                             ` Richard Stallman
2020-05-25  7:13                                                                                                                               ` Vasilij Schneidermann
2020-05-23  0:29                                                                                                                       ` Tim Cross
2020-05-24  3:53                                                                                                                         ` Richard Stallman
2020-05-24  9:15                                                                                                                           ` Tim Cross
2020-05-24 14:38                                                                                                                             ` Eli Zaretskii
2020-05-25  0:21                                                                                                                               ` Tim Cross
2020-05-25 15:20                                                                                                                                 ` Eli Zaretskii
2020-05-26  0:24                                                                                                                                   ` Tim Cross
2020-05-26 14:42                                                                                                                                     ` Eli Zaretskii
2020-05-27  1:06                                                                                                                                       ` Tim Cross
2020-05-27  2:40                                                                                                                                         ` Eli Zaretskii
2020-05-27  4:40                                                                                                                                           ` Tim Cross
2020-05-27 15:43                                                                                                                                             ` Eli Zaretskii
2020-05-27  5:39                                                                                                                                           ` Tim Cross
2020-05-27 15:45                                                                                                                                             ` Eli Zaretskii
2020-05-27 19:41                                                                                                                                               ` Tim Cross
2020-05-28  6:12                                                                                                                                                 ` Eli Zaretskii
2020-05-29  3:05                                                                                                                                                 ` Richard Stallman
2020-05-27  3:19                                                                                                                                         ` Richard Stallman
2020-05-27  3:52                                                                                                                                           ` Tim Cross
2020-05-27 15:39                                                                                                                                           ` Eli Zaretskii
2020-05-27 20:10                                                                                                                                             ` Tim Cross
2020-05-26  4:15                                                                                                                                   ` Richard Stallman
2020-05-26  7:34                                                                                                                                     ` Michael Albinus
2020-05-26 15:02                                                                                                                                     ` Eli Zaretskii
2020-05-25  4:36                                                                                                                             ` Richard Stallman
2020-05-25  5:37                                                                                                                               ` Tim Cross
2020-05-24  7:34                                                                                                               ` Bastien
2020-05-24 14:36                                                                                                                 ` Eli Zaretskii
2020-05-24 16:16                                                                                                                   ` Bastien
2020-05-24 16:38                                                                                                                     ` Eli Zaretskii
2020-05-24 16:44                                                                                                                       ` Yuri Khan
2020-05-24 17:01                                                                                                                       ` Bastien
2020-05-24 17:16                                                                                                                         ` Eli Zaretskii
2020-05-25  6:29                                                                                                                           ` Bastien
2020-05-25 14:37                                                                                                                             ` Eli Zaretskii
2020-05-25 14:42                                                                                                                               ` Dmitry Gutov
2020-05-25 15:09                                                                                                                                 ` Eli Zaretskii
2020-05-25 15:12                                                                                                                                   ` Dmitry Gutov
2020-05-25 16:06                                                                                                                                     ` Eli Zaretskii
2020-05-25 22:14                                                                                                                                       ` Dmitry Gutov
2020-05-27 20:33                                                                                                                                       ` Dmitry Gutov
2020-05-28  6:14                                                                                                                                         ` Eli Zaretskii
2020-05-25  2:57                                                                                                                         ` Sacha Chua
2020-05-25  7:51                                                                                                                           ` Bastien
2020-05-25 14:50                                                                                                                             ` Drew Adams
2020-05-26  2:44                                                                                                                             ` Sacha Chua
2020-06-01  9:26                                                                                                                               ` Bastien
2020-06-01 10:10                                                                                                                                 ` Stefan Kangas
2020-06-01 10:26                                                                                                                                   ` Bastien
2020-06-01 11:31                                                                                                                                     ` Stefan Kangas
2020-06-01 12:23                                                                                                                                       ` Bastien
2020-06-01 15:08                                                                                                                                 ` Eli Zaretskii
2020-06-01 15:18                                                                                                                                   ` Jean-Christophe Helary
2020-06-01 21:05                                                                                                                                     ` Corwin Brust
2020-06-01 23:25                                                                                                                                   ` Bastien
2020-06-02 17:21                                                                                                                                     ` Eli Zaretskii
2020-06-03  7:44                                                                                                                                       ` Bastien
2020-06-06  7:42                                                                                                                                         ` Eli Zaretskii
2020-06-07  9:18                                                                                                                                           ` Bastien
2020-06-13  7:26                                                                                                                                             ` Eli Zaretskii
2020-05-28  0:42                                                                                                                             ` Dmitry Gutov
2020-06-01  9:16                                                                                                                               ` Bastien
2020-06-01 15:07                                                                                                                                 ` Eli Zaretskii
2020-05-25 11:43                                                                                                                           ` Dmitry Gutov
2020-05-26  4:14                                                                                                                           ` Richard Stallman
2020-05-28  4:53                                                                                                                             ` Sacha Chua
2020-05-25  4:36                                                                                                                     ` Richard Stallman
2020-05-25  7:41                                                                                                                       ` Bastien
2020-05-25 20:48                                                                                                                         ` Alan Third
2020-05-25 21:54                                                                                                                           ` Dmitry Gutov
2020-06-01  9:12                                                                                                                           ` Bastien
2020-05-26  2:07                                                                                                                         ` Stefan Kangas
2020-05-27  3:06                                                                                                                           ` Richard Stallman
2020-05-27 20:34                                                                                                                             ` Dmitry Gutov
2020-05-29  3:00                                                                                                                               ` Richard Stallman
2020-05-29 13:54                                                                                                                                 ` Dmitry Gutov
2020-06-01  9:34                                                                                                                           ` Bastien
2020-05-25  4:36                                                                                                                 ` Richard Stallman
2020-05-19 14:11                                                                                                         ` dash.el [was: Re: Imports / inclusion of s.el into Emacs] João Távora
2020-05-19 14:35                                                                                                           ` Eli Zaretskii
2020-05-19 14:54                                                                                                             ` Dmitry Gutov
2020-05-19 14:59                                                                                                           ` Dmitry Gutov
2020-05-19 17:28                                                                                                             ` João Távora
2020-05-19 19:38                                                                                                               ` Dmitry Gutov
2020-05-19 20:56                                                                                                                 ` João Távora
2020-05-20  0:09                                                                                                                   ` Dmitry Gutov
2020-05-20  0:59                                                                                                                     ` João Távora
2020-05-20  1:17                                                                                                                       ` Dmitry Gutov
2020-05-20  1:37                                                                                                                         ` João Távora
2020-05-20 14:40                                                                                                                           ` Dmitry Gutov
2020-05-20 16:41                                                                                                                             ` João Távora
2020-05-20 17:20                                                                                                                               ` Dmitry Gutov
2020-05-22 10:49                                                                                                                                 ` João Távora
2020-05-22 12:26                                                                                                                                   ` Dmitry Gutov
2020-05-22 14:32                                                                                                                                     ` João Távora
2020-05-22 18:39                                                                                                                                       ` Dmitry Gutov
2020-05-22 19:44                                                                                                                                         ` João Távora
2020-05-22 21:49                                                                                                                                           ` Dmitry Gutov
2020-05-23  0:08                                                                                                                                             ` João Távora
2020-05-23  0:24                                                                                                                                               ` Dmitry Gutov
2020-05-23  0:48                                                                                                                                                 ` João Távora
2020-05-23 18:47                                                                                                                                                   ` Dmitry Gutov
2020-05-23 21:27                                                                                                                                                     ` João Távora
2020-05-19 22:17                                                                                                             ` arthur miller
2020-05-21  3:42                                                                                                               ` Discarding superfluous old alternative packages Richard Stallman
2020-05-18  3:48                                                                                                       ` dash.el [was: Re: Imports / inclusion of s.el into Emacs] Richard Stallman
2020-05-18 14:39                                                                                                         ` Eli Zaretskii
2020-05-19  3:55                                                                                                           ` Splitting GNU ELPA Richard Stallman
2020-05-19  3:56                                                                                                           ` Richard Stallman
2020-05-19 14:06                                                                                                             ` Eli Zaretskii
2020-05-20  4:01                                                                                                               ` Richard Stallman
2020-05-20 14:40                                                                                                                 ` Eli Zaretskii
2020-05-11 18:11                                                                                     ` dash.el [was: Re: Imports / inclusion of s.el into Emacs] Stefan Monnier
2020-05-12  3:16                                                                                   ` Richard Stallman
2020-05-12  4:59                                                                                     ` Alfred M. Szmidt
2020-05-11  4:46                                                                             ` Yuri Khan
2020-05-11 15:05                                                                               ` Drew Adams
2020-05-12  3:18                                                                                 ` Richard Stallman
2020-05-11  2:38                                                                           ` Richard Stallman
2020-05-09 14:11                                                                     ` Stefan Monnier
2020-05-11 16:24                                                                       ` Eli Zaretskii
2020-05-11 17:19                                                                         ` 조성빈
2020-05-11 18:15                                                                           ` Eli Zaretskii
2020-05-09 14:18                                                                     ` Stefan Monnier
2020-05-09  8:35                                                                   ` Alfred M. Szmidt
2020-05-09 12:05                                                                     ` Philippe Vaucher
2020-05-09 13:20                                                                       ` Alfred M. Szmidt
2020-05-09 14:05                                                                         ` Philippe Vaucher
2020-05-09 17:35                                                                           ` discoveribility [Re: dash.el [was: Re: Imports / inclusion of s.el into Emacs]] Alfred M. Szmidt
2020-05-09 17:54                                                                             ` Yuri Khan
2020-05-09 21:36                                                                             ` Philippe Vaucher
2020-05-09 21:38                                                                               ` Philippe Vaucher
2020-05-09 23:21                                                                               ` Alfred M. Szmidt
2020-05-10  2:34                                                                           ` dash.el [was: Re: Imports / inclusion of s.el into Emacs] Richard Stallman
2020-05-09 15:30                                                                         ` Philippe Vaucher
2020-05-09 17:35                                                                           ` Alfred M. Szmidt
2020-05-09 22:01                                                                             ` Philippe Vaucher
2020-05-09 23:21                                                                               ` Alfred M. Szmidt
2020-05-10  0:02                                                                                 ` Joost Kremers
2020-05-10  0:46                                                                                   ` Alfred M. Szmidt
2020-05-10  0:52                                                                                   ` Dmitry Gutov
2020-05-11  2:37                                                                                   ` Richard Stallman
2020-05-11  9:08                                                                                     ` Joost Kremers
2020-05-11  9:27                                                                                       ` tomas
2020-05-11  9:46                                                                                         ` Philippe Vaucher
2020-05-11 10:07                                                                                           ` tomas
2020-05-11 12:48                                                                                             ` Philippe Vaucher
2020-05-11 17:03                                                                                           ` 조성빈
2020-05-11 20:45                                                                                         ` Joost Kremers
2020-05-11  9:44                                                                                       ` Philippe Vaucher
2020-05-10  2:33                                                                           ` Richard Stallman
2020-05-10  7:55                                                                             ` Philippe Vaucher
2020-05-10 15:26                                                                               ` Drew Adams
2020-05-10 16:56                                                                                 ` Philippe Vaucher
2020-05-10 18:37                                                                                   ` Alfred M. Szmidt
2020-05-11 17:48                                                                                     ` Phillip Lord
2020-05-10 19:31                                                                                   ` Stefan Monnier
2020-05-10 19:35                                                                                     ` Drew Adams
2020-05-11  2:38                                                                                 ` Richard Stallman
2020-05-11  2:40                                                                               ` Richard Stallman
2020-05-11 17:55                                                                                 ` Phillip Lord
2020-05-12  3:18                                                                                   ` Richard Stallman
2020-05-12  7:03                                                                                     ` Joost Kremers
2020-05-12 13:50                                                                                       ` Stefan Monnier
2020-05-12 17:21                                                                                         ` Phillip Lord
2020-05-12 18:45                                                                                           ` Stefan Monnier
2020-05-12 21:20                                                                                             ` Phillip Lord
2020-05-12 23:21                                                                                               ` Stefan Monnier
2020-05-13 21:03                                                                                                 ` Jonas Bernoulli
2020-05-14  7:26                                                                                                   ` Adrián Medraño Calvo
2020-05-14 16:30                                                                                                     ` Göktuğ Kayaalp
2020-05-15  3:24                                                                                                     ` Richard Stallman
2020-05-15 22:47                                                                                                       ` Phillip Lord
2020-05-18  3:47                                                                                                         ` Richard Stallman
2020-05-18  4:42                                                                                                           ` Stefan Monnier
2020-05-18 18:29                                                                                                             ` Adrián Medraño Calvo
2020-05-18 20:19                                                                                                               ` Stefan Monnier
2020-05-19 13:09                                                                                                                 ` Lars Ingebrigtsen
2020-05-22 13:21                                                                                                                   ` Bastien
2020-05-18 23:46                                                                                                               ` Joost Kremers
2020-05-20  3:54                                                                                                                 ` Richard Stallman
2020-05-18 23:24                                                                                                             ` Göktuğ Kayaalp
2020-05-19  3:34                                                                                                               ` Stefan Monnier
2020-05-19  7:37                                                                                                                 ` tomas
2020-05-19 14:26                                                                                                                 ` Göktuğ Kayaalp
2020-05-19 15:52                                                                                                                   ` Stefan Monnier
2020-05-20 14:04                                                                                                                     ` Göktuğ Kayaalp
2020-05-20 15:01                                                                                                                       ` Eli Zaretskii
2020-05-18 14:40                                                                                                           ` Eli Zaretskii
2020-05-16 18:51                                                                                                       ` Göktuğ Kayaalp
2020-05-13  4:04                                                                                           ` Richard Stallman
2020-05-12 22:00                                                                                         ` Joost Kremers
2020-05-12 23:22                                                                                           ` Stefan Monnier
2020-05-13  6:23                                                                                             ` Joost Kremers
2020-05-13  4:00                                                                                       ` Richard Stallman
2020-05-13  7:41                                                                                         ` literal functions [was: Re: dash.el] Joost Kremers
2020-05-13  8:58                                                                                         ` dash.el [was: Re: Imports / inclusion of s.el into Emacs] Phillip Lord
2020-05-14  5:13                                                                                           ` Richard Stallman
2020-05-16  4:22                                                                                           ` Richard Stallman
2020-05-16  6:01                                                                                             ` Joost Kremers
2020-05-17  2:56                                                                                               ` Richard Stallman
2020-05-10 14:01                                                                             ` Eli Zaretskii
2020-05-09 17:49                                                                         ` Drew Adams
2020-05-09 13:59                                                                     ` Stefan Monnier
2020-05-10  2:34                                                                   ` Richard Stallman
2020-05-07 19:29                                                   ` Imports / inclusion of s.el into Emacs Dmitry Gutov
2020-05-07  2:45                                               ` Richard Stallman
2020-05-07  3:29                                                 ` Stefan Monnier
2020-05-07 15:29                                                 ` 조성빈
2020-05-07 18:22                                                   ` Stefan Monnier
2020-05-07 19:03                                                     ` Philippe Vaucher
2020-05-07 19:10                                                       ` Dmitry Gutov
2020-05-09  3:50                                                         ` Richard Stallman
2020-05-09  4:28                                                           ` 조성빈
2020-05-09 15:15                                                           ` Dmitry Gutov
2020-05-10  2:31                                                             ` Richard Stallman
2020-05-10  3:27                                                               ` Dmitry Gutov
2020-05-11  2:37                                                                 ` Richard Stallman
2020-05-11  2:54                                                                   ` Dmitry Gutov
2020-05-11 15:02                                                                     ` Eli Zaretskii
2020-05-11 16:24                                                                       ` Dmitry Gutov
2020-05-11 16:55                                                                         ` Eli Zaretskii
2020-05-11 17:01                                                                           ` Dmitry Gutov
2020-05-11 17:18                                                                             ` Eli Zaretskii
2020-06-03  4:24                                                                     ` Richard Stallman
2020-06-03 12:15                                                                       ` Dmitry Gutov
2020-06-04  3:31                                                                         ` Richard Stallman
2020-05-07  2:43                                         ` Richard Stallman
2020-05-05 12:22                                   ` Dmitry Gutov
2020-05-05 12:53                                     ` João Távora
2020-05-05 13:03                                       ` Dmitry Gutov
2020-05-05 13:09                                         ` João Távora
2020-05-05 13:10                                     ` 조성빈
2020-05-05 17:23                                     ` Stefan Monnier
2020-05-05 18:02                                       ` João Távora
2020-05-05 18:39                                         ` Stefan Monnier
2020-05-05 18:56                                           ` João Távora
2020-05-05 19:01                                             ` Dmitry Gutov
2020-05-05 19:04                                               ` João Távora
2020-05-05 19:06                                                 ` Dmitry Gutov
2020-05-05 19:09                                                   ` João Távora
2020-05-05 19:29                                             ` Stefan Monnier
2020-05-05 19:41                                               ` João Távora
2020-05-05 21:25                                                 ` Stefan Monnier
2020-05-05 19:44                                               ` Alfred M. Szmidt
2020-05-06  2:22                                               ` Eli Zaretskii
2020-05-06  2:44                                                 ` Stefan Monnier
2020-05-06 13:50                                                   ` Eli Zaretskii
2020-05-06 14:03                                                     ` Stefan Monnier
2020-05-06 14:09                                                       ` Eli Zaretskii
2020-05-06 14:12                                                         ` João Távora
2020-05-06 15:48                                                         ` Stefan Monnier
2020-05-06 16:41                                                           ` Alan Mackenzie
2020-05-06 17:49                                                             ` Stefan Monnier
2020-05-06 19:09                                                               ` Drew Adams
2020-05-06 16:46                                                           ` Eli Zaretskii
2020-05-05 19:58                                             ` Philippe Vaucher
2020-05-05 20:42                                               ` João Távora
2020-05-05 21:13                                                 ` Dmitry Gutov
2020-05-05 21:16                                                   ` João Távora
2020-05-06  9:20                                                 ` Philippe Vaucher
2020-05-06 19:21                                                   ` João Távora
2020-05-06 21:42                                                     ` Drew Adams
2020-05-06 21:59                                                       ` João Távora
2020-05-07  2:41                                           ` Richard Stallman
2020-05-05 16:42                                 ` Drew Adams
2020-05-06  4:48                                 ` Richard Stallman
2020-05-01 14:56 Philippe Vaucher
2020-05-01 15:11 ` Eli Zaretskii
2020-05-01 15:56   ` Philippe Vaucher
2020-05-01 16:01     ` Eli Zaretskii
2020-05-01 16:40 ` Stefan Kangas
2020-05-01 16:56   ` Philippe Vaucher
2020-05-01 17:16 ` Dmitry Gutov
2020-05-01 17:28   ` João Távora
2020-05-01 18:09     ` Stefan Monnier
2020-05-01 18:16       ` Dmitry Gutov
2020-05-01 18:19         ` Philippe Vaucher
2020-05-01 18:30           ` Dmitry Gutov
2020-05-01 18:44             ` Philippe Vaucher
2020-05-01 20:17               ` Joost Kremers
2020-05-01 18:32         ` Stefan Monnier
2020-05-01 18:48           ` Philippe Vaucher
2020-05-01 18:48           ` Dmitry Gutov
2020-05-03  3:40           ` Richard Stallman
2020-05-01 22:53         ` Yuan Fu
2020-05-01 23:00           ` Yuan Fu
2020-05-01 23:25             ` Rename regex functions to use prefix re- Stefan Kangas
2020-05-05 21:56               ` Phillip Lord
2020-05-02  8:13             ` Imports / inclusion of s.el into Emacs Philippe Vaucher
2020-05-02 10:45               ` Stefan Kangas
2020-05-03  3:39             ` Richard Stallman
2020-05-03  4:12               ` Stefan Monnier
2020-05-03  7:50               ` Philippe Vaucher
2020-05-04  3:09                 ` Richard Stallman
2020-05-03 12:00               ` Richard Stallman
2020-05-01 23:23       ` João Távora
2020-05-01 23:32         ` Stefan Kangas
2020-05-01 23:36           ` João Távora
2020-05-02  0:07             ` Stefan Kangas
2020-05-03  3:38               ` Richard Stallman
2020-05-05 22:35                 ` Stefan Kangas
2020-05-05 22:46                   ` Dmitry Gutov
2020-05-06  9:14                   ` Philippe Vaucher
2020-05-06 10:51                     ` Phillip Lord
2020-05-06 11:21                       ` Stefan Kangas
2020-05-06 13:43                       ` Stefan Monnier
2020-05-02  0:09             ` Dmitry Gutov
2020-05-03  3:39             ` Richard Stallman
2020-05-02 12:59         ` Stefan Monnier
2020-05-02 13:08           ` João Távora
2020-05-02 16:56             ` Stefan Monnier
2020-05-03  6:54             ` Lars Ingebrigtsen
2020-05-03  3:39         ` Richard Stallman
2020-05-05 22:05         ` Phillip Lord
2020-05-05 22:12           ` João Távora
2020-05-05 23:01             ` Stefan Monnier
2020-05-01 17:36   ` Philippe Vaucher
2020-05-01 18:36     ` Dmitry Gutov
2020-05-01 18:57       ` Stefan Monnier
2020-05-01 18:05   ` Philippe Vaucher
2020-05-01 18:47     ` Dmitry Gutov
2020-05-01 18:56       ` Philippe Vaucher
2020-05-03  3:40     ` Richard Stallman
2020-05-03  7:56       ` Philippe Vaucher
2020-05-04  3:13         ` Richard Stallman
2020-05-06  9:37       ` Phillip Lord
2020-05-02  2:23 ` Richard Stallman
2020-05-02  7:02   ` Eli Zaretskii
2020-05-02 13:03   ` Stefan Monnier
2020-05-02 13:23     ` Eli Zaretskii
2020-05-02 13:29       ` Dmitry Gutov
2020-05-02 13:34         ` João Távora
2020-05-02 13:42           ` tomas
2020-05-02 14:28             ` João Távora
2020-05-02 17:03             ` Stefan Monnier
2020-05-02 13:47           ` Dmitry Gutov
2020-05-02 14:18             ` João Távora
2020-05-02 15:03               ` Dmitry Gutov
2020-05-02 15:10                 ` João Távora
2020-05-02 15:48                   ` Dmitry Gutov
2020-05-02 16:04                     ` João Távora
2020-05-03  1:16                       ` Dmitry Gutov
2020-05-03  1:56                         ` Drew Adams
2020-05-04  0:12                   ` chad
2020-05-04 14:16                     ` Eli Zaretskii
2020-05-04 15:32                       ` tomas
2020-05-04 17:23                       ` Dmitry Gutov
2020-05-04 17:37                         ` Eli Zaretskii
2020-05-04 17:52                           ` Dmitry Gutov
2020-05-04 18:11                             ` Eli Zaretskii
2020-05-04 18:44                               ` Dmitry Gutov
2020-05-04 18:57                                 ` Eli Zaretskii
2020-05-04 19:22                                   ` Dmitry Gutov
2020-05-05  2:53                         ` Richard Stallman
2020-05-05 12:51                           ` Dmitry Gutov
2020-05-05  0:00                       ` chad
2020-05-05  2:50                     ` Richard Stallman
2020-05-02 15:43                 ` Eli Zaretskii
2020-05-02 15:47                   ` Philippe Vaucher
2020-05-02 16:06                     ` Eli Zaretskii
2020-05-02 16:49                     ` Drew Adams
2020-05-02 16:05                   ` Dmitry Gutov
2020-05-02 17:07                   ` Stefan Monnier
2020-05-02 18:25                   ` Dmitry Gutov
2020-05-02 18:35                     ` Eli Zaretskii
2020-05-02 21:14                       ` Dmitry Gutov
2020-05-02 18:40                     ` 조성빈
2020-05-02 18:48                       ` Eli Zaretskii
2020-05-02 18:53                         ` 조성빈
2020-05-02 19:13                           ` Eli Zaretskii
2020-05-02 19:19                             ` 조성빈
2020-05-04  3:04                         ` Richard Stallman
2020-05-04 14:26                           ` Eli Zaretskii
2020-05-02 21:09                       ` Stefan Monnier
2020-05-02 21:05                     ` Stefan Monnier
2020-05-02 21:19                       ` Dmitry Gutov
2020-05-02 22:03                       ` Drew Adams
2020-05-02 22:21                         ` Stefan Monnier
2020-05-02 23:10                           ` Drew Adams
2020-05-03  8:07                             ` tomas
2020-05-02 22:18                       ` Stefan Monnier
2020-05-03  3:42                   ` Richard Stallman
2020-05-03  3:43                 ` Richard Stallman
2020-05-03 12:51                   ` Dmitry Gutov
2020-05-04  3:10                     ` Richard Stallman
2020-05-02 18:07             ` Drew Adams
2020-05-02 13:51           ` Philippe Vaucher
2020-05-02 13:55         ` Eli Zaretskii
2020-05-02 14:05           ` Philippe Vaucher
2020-05-02 14:18             ` Eli Zaretskii
2020-05-02 14:36               ` 조성빈
2020-05-02 15:32                 ` Eli Zaretskii
2020-05-02 14:42               ` Philippe Vaucher
2020-05-02 14:55                 ` João Távora
2020-05-02 15:20                   ` Philippe Vaucher
2020-05-02 15:59                     ` Eli Zaretskii
2020-05-02 16:31                       ` Philippe Vaucher
2020-05-02 16:40                         ` Eli Zaretskii
2020-05-02 16:53                           ` Dmitry Gutov
2020-05-02 17:00                             ` Dmitry Gutov
2020-05-02 19:54                           ` Philippe Vaucher
2020-05-03 14:13                             ` Eli Zaretskii
2020-05-03 14:18                               ` Philippe Vaucher
2020-05-03 16:12                                 ` Eli Zaretskii
2020-05-03 16:32                                   ` Yuri Khan
2020-05-03 16:51                                     ` Eli Zaretskii
2020-05-04  3:09                                     ` Richard Stallman
2020-05-04  7:35                                       ` Jean-Christophe Helary
2020-05-04 14:35                                         ` Eli Zaretskii
2020-05-05  2:52                                           ` Richard Stallman
2020-05-05  7:10                                             ` Lars Ingebrigtsen
2020-05-05  2:50                                         ` Richard Stallman
2020-05-04 14:29                                       ` Eli Zaretskii
2020-05-05  2:52                                         ` Richard Stallman
2020-05-04  7:47                               ` Jean-Christophe Helary
2020-05-04 14:36                                 ` Eli Zaretskii
2020-05-04 15:07                                   ` 조성빈
2020-05-05  1:37                                   ` Jean-Christophe Helary
2020-05-05  2:33                                     ` Eli Zaretskii
2020-05-04  3:07                             ` Richard Stallman
2020-05-03  7:57                           ` Jean-Christophe Helary
2020-05-03  8:10                             ` Philippe Vaucher
2020-05-03  8:20                               ` Jean-Christophe Helary
2020-05-03  8:28                                 ` Philippe Vaucher
2020-05-03  8:50                                   ` Jean-Christophe Helary
2020-05-03  8:57                                     ` Philippe Vaucher
2020-05-02 18:01                       ` 조성빈
2020-05-02 18:24                         ` Eli Zaretskii
2020-05-02 18:50                           ` Arthur Miller
2020-05-04  3:04                             ` Richard Stallman
2020-05-02 21:02                           ` Stefan Monnier
2020-05-02 21:15                             ` João Távora
2020-05-03  3:42                       ` Richard Stallman
2020-05-03  3:43                     ` Richard Stallman
2020-05-02 17:01                   ` Stefan Monnier
2020-05-03  6:52     ` Lars Ingebrigtsen
2020-05-03  7:40       ` Philippe Vaucher
2020-05-03  8:15         ` Lars Ingebrigtsen
2020-05-04  3:13           ` Richard Stallman
2020-05-03  8:17         ` Lars Ingebrigtsen
2020-05-03  8:21           ` Jean-Christophe Helary
2020-05-03  9:39             ` Lars Ingebrigtsen
2020-05-03  9:43               ` Philippe Vaucher
2020-05-03  9:48               ` Jean-Christophe Helary
2020-05-05  7:59                 ` Lars Ingebrigtsen
2020-05-05  8:03                   ` Jean-Christophe Helary
2020-05-05 16:54                     ` Drew Adams
2020-05-03  9:32         ` João Távora
2020-05-03 10:06           ` Philippe Vaucher
2020-05-03 10:20             ` Philippe Vaucher
2020-05-03 10:55             ` Stefan Kangas
2020-05-03 11:56               ` João Távora
2020-05-03 14:51                 ` 조성빈
2020-05-03 17:36                   ` João Távora
2020-05-03 18:12                     ` 조성빈
2020-05-03 19:41                       ` João Távora
2020-05-03 13:31               ` Philippe Vaucher
2020-05-03 12:21             ` João Távora
2020-05-03 13:47               ` Philippe Vaucher
2020-05-03 14:13                 ` João Távora
2020-05-03 14:27                   ` Philippe Vaucher
2020-05-03 14:48                     ` João Távora
2020-05-04  3:10                   ` Richard Stallman
2020-05-04  3:10                 ` Richard Stallman
2020-05-04  3:12             ` Richard Stallman

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CALDnm50mxT1vVvv7QC0WZitBLc3zvwFC92U7SoMVcHg65N3jAg@mail.gmail.com \
    --to=joaotavora@gmail.com \
    --cc=emacs-devel@gnu.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 public inbox

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

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