emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re:Re: How to deal with GPL paper when the contributer can not contact w


From: tumashu
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)
















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 via email to

[Prev in Thread] Current Thread [Next in Thread]