unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: tumashu  <tumashu@163.com>
To: "rms@gnu.org" <rms@gnu.org>
Cc: "emacs-devel@gnu.org" <emacs-devel@gnu.org>
Subject: Re:Re: How to deal with GPL paper when the contributer can not contact with?
Date: Sat, 26 Sep 2020 15:12:22 +0800 (CST)	[thread overview]
Message-ID: <385c4c61.187e.174c9416c9d.Coremail.tumashu@163.com> (raw)
In-Reply-To: <E1kM1sj-0002jw-Tb@fencepost.gnu.org>

















At 2020-09-26 12:32:21, "Richard Stallman" <rms@gnu.org> wrote:
>[[[ To any NSA and FBI agents reading my email: please consider    ]]]
>[[[ whether defending the US Constitution against all enemies,     ]]]
>[[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
>  > 2.  his patchs are rewrite ivy.el and swiper.el's exist functions,
>  > so many code of his patch come from ivy.el and swiper.el, ivy.el
>  > and swiper.el are gnu-elpa packages.
>
>  > How should I do?  wait or elimit his commit?
>
>How many of those lines contain code he wrote?
>There is no need to count the code that he left unchanged.
>
>If what he wrote is short, and not crucial, then you can ignore
>the copyright issue for that.
>
>Or you can rewrite the code some other way.  It sounds like that
>won't be a lot of work.


1. ivy-posframe.el

;; (defun ivy-posframe--avy-action (pt)
;;   "Finish ivy session with the candidate at PT."
;;   (with-current-buffer ivy-posframe-buffer
;;     (ivy--done
;;      (substring-no-properties
;;       (nth (- (line-number-at-pos pt) 2) ivy--old-cands)))))

1. ivy.el (cdd7ada)

;; (defun ivy--avy-action (pt)
;;   (when (number-or-marker-p pt)
;;     (ivy--done
;;      (substring-no-properties
;;       (nth (- (line-number-at-pos pt) 2) ivy--old-cands)))))


about 3 lines
--------------------------------------------------------------------------

2. ivy-posframe.el

;; (defun ivy-posframe--window ()
;;   "Return the posframe window displaying `ivy-posframe-buffer'."
;;   (frame-selected-window
;;    (buffer-local-value 'posframe--frame
;;                        (get-buffer ivy-posframe-buffer))))


about 5 lines
-----------------------------------------------------------------------------

3. ivy-posframe.el
;; (defvar avy-all-windows)
;; (defvar avy-keys)
;; (defvar avy-keys-alist)
;; (defvar avy-style)
;; (defvar avy-styles-alist)
;; (defvar avy-action)
;; (declare-function avy--process "avy")
;; (declare-function avy--style-fn "avy")
;; (defun ivy-posframe-avy ()
;;   "Jump to one of the current ivy candidates."
;;   (interactive)
;;   (unless (require 'avy nil 'noerror)
;;     (error "Package avy isn't installed"))
;;   (unless (boundp 'avy-pre-action)
;;     (error "A newer version of avy is required for this command"))
;;   (let* ((avy-all-windows nil)
;;          (avy-keys (or (cdr (assq 'ivy-avy avy-keys-alist))
;;                        avy-keys))
;;          (avy-style (or (cdr (assq 'ivy-avy
;;                                    avy-styles-alist))
;;                         avy-style))
;;          ;; prevent default pre action, which calls
;;          ;; `select-frame-set-input-focus', deselecting the minibuffer and
;;          ;; causing `ivy-posframe-cleanup' to run prematurely
;;          (avy-pre-action #'ignore)
;;          (window (ivy-posframe--window))
;;          candidates)
;;     (with-current-buffer ivy-posframe-buffer
;;       (save-excursion
;;         (save-restriction
;;           (narrow-to-region
;;            (window-start window)
;;            (window-end window))
;;           (goto-char (point-min))
;;           (forward-line)
;;           (while (< (point) (point-max))
;;             (push (cons (point) window) candidates)
;;             (forward-line)))))
;;     (setq avy-action #'ivy-posframe--avy-action)
;;     (avy--process
;;      (nreverse candidates)
;;      (avy--style-fn avy-style))))


3. ivy.el (cdd7ada)
;; (defun ivy-avy ()
;;   "Jump to one of the current ivy candidates."
;;   (interactive)
;;   (unless (require 'avy nil 'noerror)
;;     (error "Package avy isn't installed"))
;;   (let* ((avy-all-windows nil)
;;          (avy-keys (or (cdr (assq 'ivy-avy avy-keys-alist))
;;                        avy-keys))
;;          (avy-style (or (cdr (assq 'ivy-avy avy-styles-alist))
;;                         avy-style))
;;          (avy-action #'ivy--avy-action))
;;     (avy--process
;;      (ivy--avy-candidates))))

;; (defun ivy--avy-candidates ()
;;   (let (candidates)
;;     (save-excursion
;;       (save-restriction
;;         (narrow-to-region
;;          (window-start)
;;          (window-end))
;;         (goto-char (point-min))
;;         (forward-line)
;;         (while (< (point) (point-max))
;;           (push
;;            (cons (point)
;;                  (selected-window))
;;            candidates)
;;           (forward-line))))
;;     (nreverse candidates)))

about 5 lines without count (defvar xxx)
------------------------------------------------------------------------------
4. ivy-posframe.el
;; (declare-function avy--make-backgrounds "avy")
;; (declare-function avy-window-list "avy")
;; (declare-function avy-read-de-bruijn "avy")
;; (declare-function avy-read "avy")
;; (declare-function avy-tree "avy")
;; (declare-function avy--overlay-post "avy")
;; (declare-function avy--remove-leading-chars "avy")
;; (declare-function avy-push-mark "avy")
;; (declare-function avy--done "avy")
;; (defun ivy-posframe--swiper-avy-candidate ()
;;   (let* ((avy-all-windows nil)
;;          ;; We'll have overlapping overlays, so we sort all the
;;          ;; overlays in the visible region by their start, and then
;;          ;; throw out non-Swiper overlays or overlapping Swiper
;;          ;; overlays.
;;          (visible-overlays (cl-sort (with-ivy-window
;;                                       (overlays-in (window-start)
;;                                                    (window-end)))
;;                                     #'< :key #'overlay-start))
;;          (min-overlay-start 0)
;;          (overlays-for-avy (cl-remove-if-not
;;                             (lambda (ov)
;;                               (when (and (>= (overlay-start ov)
;;                                              min-overlay-start)
;;                                          (memq (overlay-get ov 'face)
;;                                                swiper-faces))
;;                                 (setq min-overlay-start (overlay-start ov))))
;;                             visible-overlays))
;;          (offset (if (eq (ivy-state-caller ivy-last) 'swiper) 1 0))
;;          (window (ivy-posframe--window))
;;          (candidates (nconc
;;                       (mapcar (lambda (ov)
;;                                 (cons (overlay-start ov)
;;                                       (overlay-get ov 'window)))
;;                               overlays-for-avy)
;;                       (with-current-buffer ivy-posframe-buffer
;;                         (save-excursion
;;                           (save-restriction
;;                             (narrow-to-region (window-start window)
;;                                               (window-end window))
;;                             (goto-char (point-min))
;;                             (forward-line)
;;                             (let (cands)
;;                               (while (not (eobp))
;;                                 (push (cons (+ (point) offset) window)
;;                                       cands)
;;                                 (forward-line))
;;                               cands)))))))
;;     (unwind-protect
;;         (prog2
;;             (avy--make-backgrounds
;;              (append (avy-window-list)
;;                      (list (ivy-state-window ivy-last))))
;;             (if (eq avy-style 'de-bruijn)
;;                 (avy-read-de-bruijn candidates avy-keys)
;;               (avy-read (avy-tree candidates avy-keys)
;;                         #'avy--overlay-post
;;                         #'avy--remove-leading-chars))
;;           (avy-push-mark))
;;       (avy--done))))

4. ivy.el (cdd7ada)
;; (defun swiper--avy-candidate ()
;;   (let* ((avy-all-windows nil)
;;          ;; We'll have overlapping overlays, so we sort all the
;;          ;; overlays in the visible region by their start, and then
;;          ;; throw out non-Swiper overlays or overlapping Swiper
;;          ;; overlays.
;;          (visible-overlays (cl-sort (with-ivy-window
;;                                       (overlays-in (window-start)
;;                                                    (window-end)))
;;                                     #'< :key #'overlay-start))
;;          (min-overlay-start 0)
;;          (overlays-for-avy (cl-remove-if-not
;;                             (lambda (ov)
;;                               (when (and (>= (overlay-start ov)
;;                                              min-overlay-start)
;;                                          (memq (overlay-get ov 'face)
;;                                                swiper-faces))
;;                                 (setq min-overlay-start (overlay-start ov))))
;;                             visible-overlays))
;;          (offset (if (eq (ivy-state-caller ivy-last) 'swiper) 1 0))
;;          (candidates (nconc
;;                       (mapcar (lambda (ov)
;;                                 (cons (overlay-start ov)
;;                                       (overlay-get ov 'window)))
;;                               overlays-for-avy)
;;                       (save-excursion
;;                         (save-restriction
;;                           (narrow-to-region (window-start) (window-end))
;;                           (goto-char (point-min))
;;                           (forward-line)
;;                           (let ((win (selected-window))
;;                                 cands)
;;                             (while (not (eobp))
;;                               (push (cons (+ (point) offset) win)
;;                                     cands)
;;                               (forward-line))
;;                             cands))))))
;;     (unwind-protect
;;         (prog2
;;             (avy--make-backgrounds
;;              (append (avy-window-list)
;;                      (list (ivy-state-window ivy-last))))
;;             (if (eq avy-style 'de-bruijn)
;;                 (avy-read-de-bruijn candidates avy-keys)
;;               (avy-read (avy-tree candidates avy-keys)
;;                         #'avy--overlay-post
;;                         #'avy--remove-leading-chars))
;;           (avy-push-mark))
;;       (avy--done))))

about 3 line without count (defvar xxx)
-----------------------------------------------------------------


the rest code have been rewrite by me.



----------------------------------------------------------------




















>
>-- 
>Dr Richard Stallman
>Chief GNUisance of the GNU Project (https://gnu.org)
>Founder, Free Software Foundation (https://fsf.org)
>Internet Hall-of-Famer (https://internethalloffame.org)
>
>

  reply	other threads:[~2020-09-26  7:12 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-25  1:36 How to deal with GPL paper when the contributer can not contact with? tumashu
2020-09-25  2:40 ` Stefan Monnier
2020-09-25  4:07   ` tumashu
2020-09-26  4:32 ` Richard Stallman
2020-09-26  7:12   ` tumashu [this message]
2020-09-27  2:45     ` 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=385c4c61.187e.174c9416c9d.Coremail.tumashu@163.com \
    --to=tumashu@163.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).