summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-emacs/imaxima')
-rw-r--r--app-emacs/imaxima/Manifest1
-rw-r--r--app-emacs/imaxima/files/50imaxima-gentoo.el3
-rw-r--r--app-emacs/imaxima/files/imaxima-1.0-1.03.patch140
-rw-r--r--app-emacs/imaxima/files/imaxima-1.0-mlabel.patch26
-rw-r--r--app-emacs/imaxima/imaxima-1.0-r3.ebuild50
-rw-r--r--app-emacs/imaxima/metadata.xml15
6 files changed, 235 insertions, 0 deletions
diff --git a/app-emacs/imaxima/Manifest b/app-emacs/imaxima/Manifest
new file mode 100644
index 000000000000..645e7d6a0d4a
--- /dev/null
+++ b/app-emacs/imaxima/Manifest
@@ -0,0 +1 @@
+DIST imaxima-imath-1.0.tar.gz 407857 SHA256 cce63323ed7d1a77012f81cbc5ded51ceb5be6d13eec79f8660fec638d92ce74 SHA512 d3cbf6f3a8ee7f0b952052f72be684f2143a377a9b896d328db1c46a06d5ec64d6f20d69604536a3abf44a5d5e5b09ec9862992270e5470c561083d183372991 WHIRLPOOL 186fcb8fce7091b350470f6704652020e264427824fee6c3a00cea79bdb0da83a7706ac7098507a164d286b293d06e5ac3dfefd84c5d7d92dc8d9d04f709cb01
diff --git a/app-emacs/imaxima/files/50imaxima-gentoo.el b/app-emacs/imaxima/files/50imaxima-gentoo.el
new file mode 100644
index 000000000000..2a735af1c2f4
--- /dev/null
+++ b/app-emacs/imaxima/files/50imaxima-gentoo.el
@@ -0,0 +1,3 @@
+(add-to-list 'load-path "@SITELISP@")
+(autoload 'imaxima "imaxima" "Image support for Maxima." t)
+(autoload 'imath-mode "imath" "Interactive Math minor mode." t)
diff --git a/app-emacs/imaxima/files/imaxima-1.0-1.03.patch b/app-emacs/imaxima/files/imaxima-1.0-1.03.patch
new file mode 100644
index 000000000000..93d332f6bc0f
--- /dev/null
+++ b/app-emacs/imaxima/files/imaxima-1.0-1.03.patch
@@ -0,0 +1,140 @@
+Patch extracted from maxima git repository.
+
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,19 @@
++2012-03-25 Yasuaki Honda <yasuaki.honda@gmail.com>
++ * version 1.03
++ * A new command "reinit-imaxima" is added. This command reset the
++ communication status of Emacs Lisp and Maxima. When imaxima does
++ not respond to any input, this command will help to resolve such
++ situation.
++
++2011-10-02 Yasuaki Honda <yasuaki.honda@gmail.com>
++ * version 1.01
++ * An old workaround code for tex prevented imaxima on Mac OS X
++ Lion from working. This is related to the placing of the temporary
++ file directory and the name of the file path containing the
++ character "_". This is fixed in this version.
++ * Special treatment of greek character gamma is removed from
++ imaxima.el and commited to maxima mactex.lisp.
++
+ 2009-02-07 Yasuaki Honda <yasuaki.honda@gmail.com>
+ * As for inline graph, if the emacs buffer window is too small for
+ the generated graph image, the graph is not displayed, but a file
+--- a/imaxima-autoconf-variables.el
++++ b/imaxima-autoconf-variables.el
+@@ -19,6 +19,6 @@
+ ;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ ;; MA 02111-1307 USA
+ (defconst *imaxima-autoconf-package* "imaxima-imath")
+-(defconst *imaxima-autoconf-version* "1.0")
++(defconst *imaxima-autoconf-version* "1.03")
+
+ (provide 'imaxima-autoconf-variables)
+--- a/imaxima.el
++++ b/imaxima.el
+@@ -420,6 +420,17 @@
+ (message "%s %s" *imaxima-autoconf-package* *imaxima-autoconf-version*))
+
+ ;;
++;; Reset
++;;
++
++(defun reinit-imaxima ()
++ "Re-initialize imaxima"
++ (interactive)
++ (setq imaxima-filter-running nil
++ imaxima-output nil
++ continuation nil))
++
++;;
+ ;; Geometry
+ ;;
+
+@@ -1174,6 +1185,7 @@
+ (switch-to-buffer imaxima-buffer)
+ (set-buffer imaxima-buffer))
+ (return-from imaxima t)))
++ (reinit-imaxima)
+ (unless (imaxima-image-type-available-p imaxima-image-type)
+ (error "Your version of Emacs does not support the image type %s"
+ imaxima-image-type))
+@@ -1183,9 +1195,7 @@
+ (setq imaxima-file-counter 0)
+ (make-directory
+ (setq imaxima-tmp-subdir
+- ;; For some reason TeX doesn't grok underscores in file names
+- (imaxima-subst-char-in-string ?_ ?=
+- (make-temp-name (expand-file-name "imaxima" imaxima-tmp-dir)))))
++ (make-temp-name (expand-file-name "imaxima" imaxima-tmp-dir))) t)
+ (set-file-modes imaxima-tmp-subdir 448) ; 700 in octal
+ (let ((process-connection-type process-connection-type-flag))
+ (if imaxima-use-maxima-mode-flag
+--- a/imaxima.lisp
++++ b/imaxima.lisp
+@@ -109,9 +109,9 @@
+ ;;; SBCL.
+ ;;; by yasuaki honda
+ #-sbcl
+-(if (not (fboundp (find-symbol "PRINT-INVERT-CASE" :maxima)))
+- (defun print-invert-case (obj)
+- (princ-to-string obj)))
++(unless (fboundp 'maxima::print-invert-case)
++ (defun print-invert-case (obj)
++ (princ-to-string obj)))
+
+ (defun print-case-sensitive (obj)
+ (if obj
+@@ -126,7 +126,7 @@
+
+ (defun main-prompt ()
+ (format () (concatenate 'string (string (code-char 3)) "(~A~D) " (string (code-char 4)))
+- (STRIPDOLLAR (print-case-sensitive $inchar)) $linenum))
++ (stripdollar (print-case-sensitive $inchar)) $linenum))
+
+ (defun break-dbm-loop (at)
+ (let* (
+@@ -142,7 +142,7 @@
+ (declare (special *mread-prompt* ))
+ (and (consp at) (set-env at))
+ (cond ((null at)
+- ($frame 0 nil)))
++ (break-frame 0 nil)))
+ (catch 'step-continue
+ (catch *quit-tag*
+ (unwind-protect
+@@ -672,9 +672,12 @@
+ (setq res (apply (symbol-function '$draw)
+ (append
+ `(
+- ((mequal simp) $terminal $eps)
+- ((mequal simp) $pic_width ,($first $wxplot_size))
+- ((mequal simp) $pic_height ,($second $wxplot_size))
++ ((mequal simp) $terminal $eps_color)
++ ((mequal simp) $dimensions
++ ((mlist simp)
++ ;; convert points to 1/100 of cm
++ ,(* 3.53 ($first $wxplot_size))
++ ,(* 3.53 ($second $wxplot_size))))
+ ((mequal simp) $file_name ,filename))
+ args)))
+ ($ldisp `((wxxmltag simp) ,(format nil "~a.eps" filename) "img"))
+--- a/imaxima.texi
++++ b/imaxima.texi
+@@ -223,6 +223,15 @@
+ information when you want to make bug reports.
+ @end defun
+
++@defun reinit-imaxima
++Initialize the imaxima program. Sometimes you may encounter situations
++where imaxima does not repond to your input. This is caused by the
++inconsistency between Emacs Lisp and Maxima. Such situations can be
++resolved by using this command. After calling this command from the
++Emacs mini buffer, you should type simple Maxima expression such as
++1+2; to ensure that the imaxima does respond to you now.
++@end defun
++
+ @node Inline Graph
+ @chapter Inline Graph
+
diff --git a/app-emacs/imaxima/files/imaxima-1.0-mlabel.patch b/app-emacs/imaxima/files/imaxima-1.0-mlabel.patch
new file mode 100644
index 000000000000..4b23ee761731
--- /dev/null
+++ b/app-emacs/imaxima/files/imaxima-1.0-mlabel.patch
@@ -0,0 +1,26 @@
+Rename mlable to mlabel, accounting for corresponding change in maxima-5.29.
+https://bugs.gentoo.org/show_bug.cgi?id=448242
+
+Patch taken from maxima git repo:
+http://maxima.git.sourceforge.net/git/gitweb.cgi?p=maxima/maxima;a=commit;h=620f23e27328a58bfa81fe101734b7488a2b93f5
+
+--- a/imaxima.lisp
++++ b/imaxima.lisp
+@@ -498,7 +498,7 @@
+
+ (defun tex-mtext (x l r) (tex-list (cdr x) l r ""))
+
+-(defun tex-mlable (x l r)
++(defun tex-mlabel (x l r)
+ (tex (caddr x)
+ (append l
+ (if (cadr x)
+@@ -517,7 +517,7 @@
+ (defun latex (x)
+ ; (princ x) ;; uncomment to debug.
+ (if (and (listp x) (car x) (listp (car x)) (caar x)
+- (equal (caar x) 'mlable)
++ (equal (caar x) 'mlabel)
+ (cdr x)
+ (cadr x)
+ (input-label-p (cadr x)))
diff --git a/app-emacs/imaxima/imaxima-1.0-r3.ebuild b/app-emacs/imaxima/imaxima-1.0-r3.ebuild
new file mode 100644
index 000000000000..5c5ec8137e35
--- /dev/null
+++ b/app-emacs/imaxima/imaxima-1.0-r3.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit elisp
+
+MY_P="${PN}-imath-${PV/_}"
+DESCRIPTION="Imaxima enables graphical output in Maxima sessions with emacs"
+HOMEPAGE="http://sites.google.com/site/imaximaimath/"
+SRC_URI="https://sites.google.com/site/imaximaimath/download-and-install/${MY_P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="examples"
+
+# texlive-latexrecommended needed for breqn.sty
+RDEPEND="virtual/latex-base
+ app-text/ghostscript-gpl
+ >=dev-texlive/texlive-latexrecommended-2012
+ >=sci-mathematics/maxima-5.29"
+
+S="${WORKDIR}/${MY_P}"
+ELISP_PATCHES="${P}-1.03.patch ${P}-mlabel.patch"
+ELISP_REMOVE="imaxima.info" # remove broken Info file (will be recreated)
+SITEFILE="50${PN}-gentoo.el"
+
+src_configure() {
+ econf \
+ --with-lispdir="${EPREFIX}${SITELISP}/${PN}" \
+ EMACS="${EMACS} ${EMACSFLAGS}"
+}
+
+src_compile() {
+ default
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}" || die
+ dodoc ChangeLog NEWS README
+
+ if use examples; then
+ docinto imath-example
+ dodoc imath-example/*.txt
+ dohtml -r imath-example/.
+ fi
+}
diff --git a/app-emacs/imaxima/metadata.xml b/app-emacs/imaxima/metadata.xml
new file mode 100644
index 000000000000..b2c87461ee65
--- /dev/null
+++ b/app-emacs/imaxima/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci-mathematics</herd>
+<herd>emacs</herd>
+<longdescription lang="en">
+ Imaxima provides support for interacting with the computer algebra system
+ Maxima in an Emacs buffer. Imaxima processes the output from Maxima with TeX
+ and inserts the resulting image in the buffer. The command imaxima provides
+ a simple comint derived CLI mode. The command imaxima-latex prepares a LaTeX
+ version of the Maxima buffer. Imaxima can also be hooked in to the Emacs
+ mode included with Maxima, which provides more key bindings and other
+ conveniences.
+</longdescription>
+</pkgmetadata>