>>> Anyway, from what I understand, you have no intention of moving >>> smalltalk-mode.el elsewhere nor to spend your time with a 2-way sync. >>> In that case, I think it's best not to add smalltalk-mode.el to GNU >>> ELPA to avoid the risk of a fork. >> i am not a member of the smalltalk dev team, they are listed on >> savannah[1] - i was only offering some general observations, >> anticipating what i would expect to be the response of most upstreams >> when asked to to do the things you are suggesting > I am currently not a GNU Emacs user and as a result have been quiet on > this topic. > There seems to be benefit[1] to move the smalltalk-model.el into the GNU > ELPA repository. I can check what rms wrote but I need one of you to do > the actual move.
Here's what I suggest: - I used `filter-branch` to get a Git branch which only contains the Elisp files of the GNU Smalltalk distribution (i.e. smalltalk-mode.el, gst-mode.el.in, and smalltalk-mode-init.el.in, but not snprintfv/doc/gnome-doc.el which seems unrelated). - I wrote the tentative patch below which converts gst-mode.el.in to gst-mode.el (by assuming `gst` can be found in $PATH), and moves the content of smalltalk-mode-init.el.in into smalltalk-mode.el (with autoload annotations so that these get executed at startup when the smalltalk-mode package is activated rather than only later when/if the smalltalk-mode.el file is loaded). It also slightly reformats the copyright blurbs to better follow the conventions and changes the GPLv2+ to GPLv3+. I can add the result to elpa.git (from where elpa.gnu.org will create a GNU ELPA package). As things stand, this package would be labeled "version 3.2.92". If you disagree with some part of the patch below, feel free to point it out so I can adjust it. After that's done, I guess you could annotate your copy of those files with a blurb explaining that the upstream version of the code can be found in http://elpa.gnu.org/packages/smalltalk-mode.html. Does that sound good? Stefan diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..fcf24f130 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.elc +smalltalk-mode-pkg.el +smalltalk-mode-autoloads.el diff --git a/gst-mode.el.in b/gst-mode.el similarity index 91% rename from gst-mode.el.in rename to gst-mode.el index 15713acdd..02f820d9c 100644 --- a/gst-mode.el.in +++ b/gst-mode.el @@ -1,29 +1,31 @@ +;;; gst-mode.el --- Interaction with GNU Smalltalk subprocess +;; +;; Copyright 1988-2019 Free Software Foundation, Inc. +;; Written by Steve Byrne. +;; +;; This file is part of GNU Smalltalk. +;; +;; GNU Smalltalk 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, or (at your option) any later +;; version. +;; +;; GNU Smalltalk 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/>. +;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; -;;; Copyright 1988-92, 1994-95, 1999, 2000, 2003, 2007, 2008 -;;; Free Software Foundation, Inc. -;;; Written by Steve Byrne. -;;; -;;; This file is part of GNU Smalltalk. -;;; -;;; GNU Smalltalk 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 2, or (at your option) any later -;;; version. -;;; -;;; GNU Smalltalk 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 GNU Smalltalk; see the file COPYING. If not, write to the Free -;;; Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -;;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Incorporates Frank Caggiano's changes for Emacs 19. -;;; Updates and changes for Emacs 20 and 21 by David Forster +;;; Commentary: + +;; Incorporates Frank Caggiano's changes for Emacs 19. +;; Updates and changes for Emacs 20 and 21 by David Forster + +;;; Code: (require 'comint) @@ -32,7 +34,7 @@ (defvar *gst-process* nil "Holds the GNU Smalltalk process") -(defvar gst-program-name "@bindir@/gst -V" +(defvar gst-program-name "gst -V" "GNU Smalltalk command to run. Do not use the -a, -f or -- options.") (defvar smalltalk-command-string nil @@ -63,6 +65,7 @@ keymap) "Keymap used in Smalltalk interactor mode.") +;;;###autoload (defun gst (command-line) "Invoke GNU Smalltalk" (interactive (list (if (null current-prefix-arg) diff --git a/smalltalk-mode-init.el.in b/smalltalk-mode-init.el.in deleted file mode 100644 index a2dbef9d4..000000000 --- a/smalltalk-mode-init.el.in +++ /dev/null @@ -1,19 +0,0 @@ -;; Autoload file for smalltalk-mode - -;; duplicate zip files' setup for star files or fall back on -;; archive-mode, which scans file contents to determine type so is -;; safe to use -(push (cons "\\.star\\'" - (catch 'archive-mode - (dolist (mode-assoc auto-mode-alist 'archive-mode) - (and (string-match (car mode-assoc) "Starfile.zip") - (functionp (cdr mode-assoc)) - (throw 'archive-mode (cdr mode-assoc)))))) - auto-mode-alist) - -(if (boundp 'inhibit-local-variables-regexps) - (push "\\.star\\'" inhibit-local-variables-regexps) - (push "\\.star\\'" inhibit-first-line-modes-regexp)) - -@WITH_EMACS_COMINT_TRUE@(autoload 'gst "@lispdir@/gst-mode.elc" "" t) - diff --git a/smalltalk-mode.el b/smalltalk-mode.el index 6eb3b566c..e92d410b2 100644 --- a/smalltalk-mode.el +++ b/smalltalk-mode.el @@ -2,14 +2,13 @@ ;; Author: Steve Byrne ;; Version: 3.2.92 -;; Copyright 1988-92, 1994-95, 1999, 2000, 2003, 2007, 2008, 2009 -;; Free Software Foundation, Inc. +;; Copyright 1988-2019 Free Software Foundation, Inc. ;; This file is part of GNU Smalltalk. ;; GNU Smalltalk 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 2, or (at your option) any later +;; Software Foundation; either version 3, or (at your option) any later ;; version. ;; GNU Smalltalk is distributed in the hope that it will be useful, but @@ -231,6 +230,27 @@ Commands: ;;;###autoload (add-to-list 'auto-mode-alist '("\\.st\\'" . smalltalk-mode)) +;; GNU Smalltalk uses files with name `.star' which use the zip format. +;; Duplicate zip files' setup for star files or fall back on +;; archive-mode, which scans file contents to determine type so is +;; safe to use. +;;;###autoload +(add-to-list + 'auto-mode-alist + (cons "\\.star\\'" + (catch 'archive-mode + (dolist (mode-assoc auto-mode-alist 'archive-mode) + (and (string-match (car mode-assoc) "Starfile.zip") + (functionp (cdr mode-assoc)) + (throw 'archive-mode (cdr mode-assoc))))))) + +;;;###autoload +(add-to-list (if (boundp 'inhibit-local-variables-regexps) + 'inhibit-local-variables-regexps + 'inhibit-first-line-modes-regexp) + "\\.star\\'") + + (defun smalltalk-tab () (interactive) (let (col) _______________________________________________ help-smalltalk mailing list [email protected] https://lists.gnu.org/mailman/listinfo/help-smalltalk
