Package: guix-patches;
Reported by: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
Date: Sat, 28 Dec 2019 15:38:01 UTC
Severity: normal
Tags: patch
Done: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr> To: 38776 <at> debbugs.gnu.org Subject: [bug#38776] [PATCH] Add qemacs Date: Sat, 28 Dec 2019 16:37:32 +0100
[Message part 1 (text/plain, inline)]
Hello, The following patch adds qemacs. Note that it is built /without/ ffmpeg support (to read audio and video files from the editor). I can try to include the feature, if necessary. As always, feedback welcome. Regards, -- Nicolas Goaziou
[0001-gnu-Add-qemacs.patch (text/x-diff, inline)]
From a4a93fbf71746f8e27e048fa7b72173a1a01e2c7 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr> Date: Sat, 28 Dec 2019 16:32:25 +0100 Subject: [PATCH] gnu: Add qemacs. * gnu/packages/text-editors.scm (qemacs): New variable. --- gnu/packages/text-editors.scm | 109 ++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index ac4c5b82ac..3945a5f8a7 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -58,6 +58,8 @@ #:use-module (gnu packages regex) #:use-module (gnu packages ruby) #:use-module (gnu packages terminals) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages xorg) #:use-module (gnu packages xml)) (define-public vis @@ -613,3 +615,110 @@ card. It offers: @item Compose function for Latin 1 characters @end itemize") (license license:gpl2+))) + +(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+))) -- 2.24.1
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.