gnu: Add qemacs.

* gnu/packages/text-editors.scm (qemacs): New variable.
This commit is contained in:
Nicolas Goaziou 2020-01-26 19:24:38 +01:00
parent 2cbede5935
commit 3fad9a6923
No known key found for this signature in database
GPG key ID: DA00B4F048E92F2D

View file

@ -305,6 +305,113 @@ (define-public mg
OpenBSD team.")
(license license:public-domain)))
(define-public qemacs
(package
(name "qemacs")
(version "0.3.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://bellard.org/qemacs/"
"qemacs-" version ".tar.gz"))
(sha256
(base32 "156z4wpj49i6j388yjird5qvrph7hz0grb4r44l4jf3q8imadyrg"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;no test
#:phases
(modify-phases %standard-phases
(add-before 'build 'build-qhtml
;; Build fails without first creating qHTML library.
(lambda _ (invoke "make" "-C" "libqhtml")))
(add-before 'install 'fix-man-pages-directory
;; Install in $out/share/man instead of $out/man.
(lambda _
(substitute* "Makefile"
(("/man/man1" all) (string-append "/share" all)))
#t))
(add-before 'install 'create-directories
;; Ensure directories exist before installing files.
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(for-each (lambda (d) (mkdir-p (string-append out d)))
'("/bin" "/share/man/man1" "/share/qe"))
#t)))
(add-after 'install 'install-extra-documentation
;; Install sample configuration file, Info, and HTML manual.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((share (string-append (assoc-ref outputs "out") "/share"))
(doc (string-append share "/doc/" ,name "-" ,version))
(html (string-append share "/html"))
(info (string-append share "/info"))
(makeinfo (string-append (assoc-ref %build-inputs "texinfo")
"/bin/makeinfo")))
;; First fix Texinfo documentation, create appropriate
;; directories, then generate Info and HTML files there.
(substitute* "qe-doc.texi"
(("^M-([{}])" _ bracket) (string-append "M-@" bracket)))
(for-each (lambda (d) (mkdir-p d)) (list html info))
(invoke makeinfo "qe-doc.texi" "-o" info)
(invoke makeinfo "qe-doc.texi" "--html" "--no-split" "-o" html)
;; Install sample configuration file.
(install-file "config.eg" doc)
#t))))))
(native-inputs
`(("texinfo" ,texinfo)))
(inputs
`(("libx11" ,libx11)
("libxext" ,libxext)
("libxv" ,libxv)))
(home-page "https://bellard.org/qemacs/")
(synopsis "Small but powerful text editor")
(description "QEmacs (for Quick Emacs) is a very small but
powerful editor. It has features that even big editors lack:
@itemize
@item Full screen editor with an Emacs look and feel with all Emacs
common features: multi-buffer, multi-window, command mode, universal
argument, keyboard macros, config file with C-like syntax, minibuffer
with completion and history.
@item Can edit files of hundreds of Megabytes without being slow by
using a highly optimized internal representation and by mmaping the
file.
@item Full Unicode support, including multi charset handling (8859-x,
UTF8, SJIS, EUC-JP, ...) and bidirectional editing respecting the
Unicode bidi algorithm. Arabic and Indic scripts handling (in
progress).
@item WYSIWYG HTML/XML/CSS2 mode graphical editing. Also supports
Lynx like rendering on VT100 terminals.
@item WYSIWYG DocBook mode based on XML/CSS2 renderer.
@item C mode: coloring with immediate update. Emacs like auto-indent.
@item Shell mode: colorized VT100 emulation so that your shell work
exactly as you expect. Compile mode with next/prev error.
@item Input methods for most languages, including Chinese (input
methods come from the Yudit editor).
@item Hexadecimal editing mode with insertion and block commands.
Unicode hexa editing is also supported.
@item Works on any VT100 terminals without termcap. UTF8 VT100
support included with double width glyphs.
@item X11 support. Support multiple proportional fonts at the same
time (as XEmacs). X Input methods supported. Xft extension supported
for anti aliased font display.
@item Small! Full version (including HTML/XML/CSS2/DocBook rendering
and all charsets): 200KB big. Basic version (without bidir/unicode
scripts/input/X11/C/Shell/HTML/Dired): 49KB.
@end itemize")
(license license:lgpl2.1+)))
(define-public ghostwriter
(package
(name "ghostwriter")