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)
>
>
next prev parent 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
* 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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.