summaryrefslogtreecommitdiff
path: root/src/emacs
diff options
context:
space:
mode:
authorThomas Ulmer <thomasmulmer02@gmail.com>2026-02-04 14:33:05 -0800
committerThomas Ulmer <thomasmulmer02@gmail.com>2026-02-04 14:33:05 -0800
commit72aa4910006b9d2343b748ea15f587ceb8857af5 (patch)
tree47687d99b378b1ba7fa41bd58e47b66dae2712ee /src/emacs
parent90ebb61d9352ce5fbc04588231a8408097e0dfac (diff)
suckless includes
Diffstat (limited to 'src/emacs')
-rw-r--r--src/emacs/emacs-source/.clang-format44
-rw-r--r--src/emacs/emacs-source/.clangd6
-rw-r--r--src/emacs/emacs-source/.dir-locals.el56
-rw-r--r--src/emacs/emacs-source/.gitattributes122
-rw-r--r--src/emacs/emacs-source/.gitignore393
-rw-r--r--src/emacs/emacs-source/.gitlab-ci.yml28
-rw-r--r--src/emacs/emacs-source/.mailmap215
-rwxr-xr-xsrc/emacs/setup.sh28
8 files changed, 892 insertions, 0 deletions
diff --git a/src/emacs/emacs-source/.clang-format b/src/emacs/emacs-source/.clang-format
new file mode 100644
index 0000000..7929a74
--- /dev/null
+++ b/src/emacs/emacs-source/.clang-format
@@ -0,0 +1,44 @@
+BasedOnStyle: GNU
+AlignEscapedNewlinesLeft: true
+AlignOperands: Align
+AlwaysBreakAfterReturnType: TopLevelDefinitions
+BreakBeforeBinaryOperators: All
+BreakBeforeBraces: GNU
+ColumnLimit: 70
+ContinuationIndentWidth: 2
+IndentPPDirectives: AfterHash
+PPIndentWidth: 1
+ForEachMacros:
+ - FOR_EACH_TAIL
+ - FOR_EACH_TAIL_SAFE
+ - FOR_EACH_LIVE_BUFFER
+ - ITREE_FOREACH
+ - FOR_EACH_ALIST_VALUE
+IncludeCategories:
+ - Regex: '^<config\.h>$'
+ Priority: -1
+ - Regex: '^<'
+ Priority: 1
+ - Regex: '^"lisp\.h"$'
+ Priority: 2
+ - Regex: '.*'
+ Priority: 3
+WhitespaceSensitiveMacros:
+ - STR
+ - CALL1I
+ - CALL2I
+ - STR_VALUE
+KeepEmptyLinesAtTheStartOfBlocks: false
+MaxEmptyLinesToKeep: 1
+PenaltyBreakBeforeFirstCallParameter: 2000
+SpaceAfterCStyleCast: true
+SpaceBeforeParens: Always
+UseTab: Always
+---
+Language: Cpp
+---
+Language: ObjC
+
+# Local Variables:
+# mode: yaml
+# End:
diff --git a/src/emacs/emacs-source/.clangd b/src/emacs/emacs-source/.clangd
new file mode 100644
index 0000000..5c7308d
--- /dev/null
+++ b/src/emacs/emacs-source/.clangd
@@ -0,0 +1,6 @@
+---
+If:
+ PathMatch: "src/*.c"
+CompileFlags:
+ Add: [-Wno-unused-macros, -include=config.h, -fstrict-flex-arrays=3]
+ Remove: [-fstrict-flex-arrays]
diff --git a/src/emacs/emacs-source/.dir-locals.el b/src/emacs/emacs-source/.dir-locals.el
new file mode 100644
index 0000000..af92eac
--- /dev/null
+++ b/src/emacs/emacs-source/.dir-locals.el
@@ -0,0 +1,56 @@
+;;; Directory Local Variables -*- no-byte-compile: t; -*-
+;;; For more information see (info "(emacs) Directory Variables")
+
+((nil . ((tab-width . 8)
+ (sentence-end-double-space . t)
+ (fill-column . 72)
+ (emacs-lisp-docstring-fill-column . 72)
+ (vc-git-annotate-switches . "-w")
+ (bug-reference-url-format . "https://debbugs.gnu.org/%s")
+ (diff-add-log-use-relative-names . t)
+ (etags-regen-regexp-alist
+ .
+ ((("c" "objc") .
+ ("/[ \t]*DEFVAR_[A-Z_ \t(]+\"\\([^\"]+\\)\"/\\1/"
+ "/[ \t]*DEFVAR_[A-Z_ \t(]+\"[^\"]+\",[ \t]\\([A-Za-z0-9_]+\\)/\\1/"))))
+ (etags-regen-ignores . ("test/manual/etags/"))
+ (vc-prepare-patches-separately . nil)
+ (vc-default-patch-addressee . "bug-gnu-emacs@gnu.org")))
+ (c-mode . ((c-file-style . "GNU")
+ (c-noise-macro-names . ("INLINE" "NO_INLINE" "ATTRIBUTE_NO_SANITIZE_UNDEFINED"
+ "ATTRIBUTE_NO_SANITIZE_ADDRESS"
+ "UNINIT" "CALLBACK" "ALIGN_STACK" "ATTRIBUTE_MALLOC"
+ "ATTRIBUTE_DEALLOC_FREE" "ANDROID_EXPORT" "TEST_STATIC"
+ "INLINE_HEADER_BEGIN" "INLINE_HEADER_END"))
+ (electric-quote-comment . nil)
+ (electric-quote-string . nil)
+ (indent-tabs-mode . t)
+ (mode . bug-reference-prog)))
+ (java-mode . ((c-file-style . "GNU")
+ (electric-quote-comment . nil)
+ (electric-quote-string . nil)
+ (indent-tabs-mode . t)
+ (mode . bug-reference-prog)))
+ (objc-mode . ((c-file-style . "GNU")
+ (electric-quote-comment . nil)
+ (electric-quote-string . nil)
+ (indent-tabs-mode . t)
+ (mode . bug-reference-prog)))
+ (c-ts-mode . ((c-ts-mode-indent-style . gnu))) ;Inherits `c-mode' settings.
+ (log-edit-mode . ((log-edit-font-lock-gnu-style . t)
+ (log-edit-setup-add-author . t)
+ (vc-git-log-edit-summary-target-len . 50)
+ (fill-column . 64)))
+ (change-log-mode . ((add-log-time-zone-rule . t)
+ (fill-column . 74)
+ (mode . bug-reference)))
+ (diff-mode . ((mode . whitespace)))
+ (emacs-lisp-mode . ((indent-tabs-mode . nil)
+ (electric-quote-comment . nil)
+ (electric-quote-string . nil)
+ (mode . bug-reference-prog)))
+ (lisp-data-mode . ((indent-tabs-mode . nil)))
+ (texinfo-mode . ((electric-quote-comment . nil)
+ (electric-quote-string . nil)
+ (mode . bug-reference-prog)))
+ (outline-mode . ((mode . bug-reference))))
diff --git a/src/emacs/emacs-source/.gitattributes b/src/emacs/emacs-source/.gitattributes
new file mode 100644
index 0000000..5c0a591
--- /dev/null
+++ b/src/emacs/emacs-source/.gitattributes
@@ -0,0 +1,122 @@
+# Attributes of Emacs files in the Git repository.
+
+# Copyright 2015-2025 Free Software Foundation, Inc.
+
+# This file is part of GNU Emacs.
+
+# GNU Emacs 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 of the License, or
+# (at your option) any later version.
+
+# GNU Emacs 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 Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+# A few UTF-8-compatible text files use CRLF endings,
+# even on non-Microsoft platforms.
+# Do not warn about trailing whitespace with these files.
+*.bat whitespace=cr-at-eol
+admin/charsets/mapfiles/PTCP154 whitespace=cr-at-eol
+test/manual/etags/c-src/dostorture.c whitespace=cr-at-eol
+test/manual/etags/cp-src/c.C whitespace=cr-at-eol
+test/manual/etags/html-src/algrthms.html whitespace=cr-at-eol
+
+# The todo-mode file format includes trailing whitespace.
+*.tod[aorty] -whitespace=blank-at-eol
+
+# The following text files use encodings incompatible with UTF-8.
+# They should not be treated as text when diffing, as that could
+# cause the output to mix encodings.
+*.tit -diff
+admin/charsets/mapfiles/cns2ucsdkw.txt -diff
+leim/MISC-DIC/CTLau* -diff
+leim/MISC-DIC/cangjie-table.* -diff
+leim/MISC-DIC/pinyin.map -diff
+leim/MISC-DIC/ziranma.cin -diff
+leim/SKK-DIC/SKK-JISYO.L -diff
+src/msdos.c -diff
+test/lisp/gnus/mm-decode-resources/win1252-multipart.bin -diff
+
+# Some files should not be treated as text when diffing or merging.
+*.bmp binary
+*.cur binary
+*.gif binary
+*.gpg binary
+*.gz binary
+*.icns binary
+*.ico binary
+*.jpg binary
+*.kbx binary
+*.key binary
+*.pbm binary
+*.pdf binary
+*.pif binary
+*.png binary
+*.sig binary
+*.tiff binary
+*.webp binary
+*.zip binary
+etc/e/eterm-color binary
+etc/e/eterm-direct binary
+java/emacs.keystore binary
+
+# Git's builtin diff hunk header styles.
+*.ad[abs] diff=ada
+*.[Cch] diff=cpp
+*.cc diff=cpp
+*.[ch]pp diff=cpp
+*.hh diff=cpp
+*.for diff=fortran
+*.html diff=html
+*.shtml diff=html
+*.xml diff=html
+*.java diff=java
+*.[HMm] diff=objc
+*.pas diff=pascal
+*.perl diff=perl
+*.pl diff=perl
+*.php diff=php
+*.py diff=python
+*.rb diff=ruby
+*.tex diff=tex
+
+# Hooks for non-default diff hunk headers; see autogen.sh.
+*.el diff=elisp
+*.ac diff=m4
+*.m4 diff=m4
+*.mk diff=make
+*[Mm]akefile diff=make
+Makefile.in diff=make
+*[-.]sh diff=shell
+*.texi diff=texinfo
+#
+# Diff hunk header special-case file names.
+admin/build-configs diff=perl
+admin/charsets/mapconv diff=shell
+admin/diff-tar-files diff=shell
+admin/make-emacs diff=perl
+admin/merge-gnulib diff=shell
+admin/merge-pkg-config diff=shell
+admin/quick-install-emacs diff=shell
+admin/update-copyright diff=shell
+admin/update_autogen diff=shell
+build-aux/config.guess diff=shell
+build-aux/config.sub diff=shell
+build-aux/git-hooks/commit-msg diff=shell
+build-aux/git-hooks/pre-commit diff=shell
+build-aux/gitlog-to-emacslog diff=shell
+build-aux/make-info-dir diff=shell
+build-aux/move-if-change diff=shell
+build-aux/msys-to-w32 diff=shell
+build-aux/update-subdirs diff=shell
+lib-src/rcs2log diff=shell
+/make-dist diff=shell
+
+# This file contains in-line diffs, which can include trailing
+# whitespace.
+java/INSTALL -whitespace
diff --git a/src/emacs/emacs-source/.gitignore b/src/emacs/emacs-source/.gitignore
new file mode 100644
index 0000000..6e700e0
--- /dev/null
+++ b/src/emacs/emacs-source/.gitignore
@@ -0,0 +1,393 @@
+# Files that Git should ignore in the Emacs source directory.
+
+# Copyright 2009-2025 Free Software Foundation, Inc.
+
+# This file is part of GNU Emacs.
+
+# GNU Emacs 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 of the License, or
+# (at your option) any later version.
+
+# GNU Emacs 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 Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+
+# Ignore all dot-files except for those under version control.
+.*
+!.clang-format
+!.clangd
+!.dir-locals.el
+!.gitattributes
+!.gitignore
+!.gitlab-ci.yml
+!.mailmap
+
+# Built by 'autogen.sh'.
+/aclocal.m4
+/configure
+src/config.in
+
+# Built by 'configure'.
+Info.plist
+InfoPlist.strings
+Makefile
+makefile
+!etc/refcards/Makefile
+!test/lisp/progmodes/flymake-resources/Makefile
+!test/manual/etags/Makefile
+!test/manual/etags/make-src/Makefile
+!test/manual/indent/Makefile
+/*.cache
+/confdefs.h
+/config.status
+/configure.lineno
+/conftest*
+lib/gnulib.mk
+src/config.h
+src/epaths.h
+src/emacs-module.h
+
+# Built by recursive call to `configure'.
+*.android
+!INSTALL.android
+!verbose.mk.android
+
+# Built by `javac'.
+java/install_temp/*
+java/*.apk*
+java/*.dex
+java/org/gnu/emacs/*.class
+
+# Built by `aapt'.
+java/org/gnu/emacs/R.java
+
+# Built by `make'.
+java/org/gnu/emacs/EmacsConfig.java
+java/cf-stamp
+
+# Built by `config.status'.
+java/AndroidManifest.xml
+
+# C-level sources built by 'make'.
+lib/alloca.h
+lib/assert.h
+lib/byteswap.h
+lib/dirent.h
+lib/endian.h
+lib/errno.h
+lib/execinfo.h
+lib/fcntl.h
+lib/getopt.h
+lib/getopt-cdefs.h
+lib/gmp.h
+lib/ieee754.h
+lib/inttypes.h
+lib/libgnu.a
+lib/limits.h
+lib/malloc/*.gl.h
+lib/signal.h
+lib/std*.h
+lib/math.h
+!lib/std*.in.h
+!lib/stdio-impl.h
+!lib/_Noreturn.h
+lib/string.h
+lib/sys/
+lib/time.h
+lib/unistd.h
+src/buildobj.h
+src/globals.h
+src/lisp.mk
+src/verbose.mk
+
+# Stuff built during cross compilation
+cross/lib/*
+cross/src/*
+cross/lib-src/*
+cross/sys/*
+cross/config.status
+cross/*.bak
+cross/etc/DOC
+
+cross/ndk-build/Makefile
+cross/ndk-build/ndk-build.mk
+cross/ndk-build/*.o
+
+# Lisp-level sources built by 'make'.
+lisp/**/*cus-load.el
+lisp/**/*loaddefs.el
+lisp/cedet/semantic/bovine/c-by.el
+lisp/cedet/semantic/bovine/make-by.el
+lisp/cedet/semantic/bovine/scm-by.el
+lisp/cedet/semantic/wisent/javat-wy.el
+lisp/cedet/semantic/wisent/js-wy.el
+lisp/cedet/semantic/wisent/python-wy.el
+lisp/cedet/srecode/srt-wy.el
+lisp/cedet/semantic/grammar-wy.el
+lisp/eshell/esh-module-loaddefs.el
+lisp/eshell/esh-groups.el
+lisp/finder-inf.el
+lisp/leim/ja-dic/
+leim/small-ja-dic-option
+lisp/leim/leim-list.el
+lisp/leim/quail/4Corner.el
+lisp/leim/quail/ARRAY30.el
+lisp/leim/quail/CCDOSPY.el
+lisp/leim/quail/CTLau.el
+lisp/leim/quail/CTLau-b5.el
+lisp/leim/quail/ECDICT.el
+lisp/leim/quail/ETZY.el
+lisp/leim/quail/PY-b5.el
+lisp/leim/quail/PY.el
+lisp/leim/quail/Punct.el
+lisp/leim/quail/Punct-b5.el
+lisp/leim/quail/QJ.el
+lisp/leim/quail/QJ-b5.el
+lisp/leim/quail/SW.el
+lisp/leim/quail/TONEPY.el
+lisp/leim/quail/ZIRANMA.el
+lisp/leim/quail/ZOZY.el
+lisp/leim/quail/quick-b5.el
+lisp/leim/quail/quick-cns.el
+lisp/leim/quail/tsang-b5.el
+lisp/leim/quail/tsang-cns.el
+lisp/mh-e/mh-autoloads.el
+lisp/subdirs.el
+
+# Dependencies.
+deps/
+
+# Logs and temporaries.
+*.log
+*.tmp
+
+# Time stamps.
+*.stamp
+stamp_BLD
+src/gl-stamp
+
+# Object files and debugging.
+*.a
+*.dSYM/
+*.dll
+*.core
+*.elc
+*.eln
+*.o
+*.res
+*.so
+*.dylib
+core
+core.*[0-9]
+gmon.out
+native-lisp/
+oo/
+oo-spd/
+src/*.map
+vgcore.*[0-9]
+
+# Tests.
+test/manual/biditest.txt
+test/manual/etags/srclist
+test/manual/etags/regexfile
+test/manual/etags/ETAGS
+test/manual/etags/CTAGS
+test/manual/etags/CTAGS*.sorted
+test/manual/indent/*.new
+test/lisp/gnus/mml-sec-resources/random_seed
+test/lisp/play/fortune-resources/fortunes.dat
+test/**/*.xml
+test/infra/android/**/*.class
+test/infra/android/**/*.dex
+test/infra/android/**/*.zip
+test/infra/android/**/*.jar
+test/infra/android/bin/build.sh
+
+# etags.
+TAGS
+!admin/notes/tags
+
+# GNU global.
+GPATH
+GSYMS
+GRTAGS
+GTAGS
+
+# auto-generated compilation database
+compile_commands.json
+
+# ccls, a LSP-compliant server for C
+/.ccls-cache
+
+# GNU idutils.
+ID
+
+# Executables.
+*.exe
+a.out
+lib-src/asset-directory-tool
+lib-src/be-resources
+lib-src/blessmail
+lib-src/ebrowse
+lib-src/emacsclient
+lib-src/etags
+lib-src/hexl
+lib-src/make-docfile
+lib-src/make-fingerprint
+lib-src/movemail
+lib-src/profile
+lib-src/seccomp-filter
+lib-src/test-distrib
+lib-src/update-game-score
+nextstep/Cocoa/Emacs.base/Contents/Info.plist
+nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj
+nextstep/Emacs.app/
+nextstep/GNUstep/Emacs.base/Resources/Emacs.desktop
+nextstep/GNUstep/Emacs.base/Resources/Info-gnustep.plist
+src/bootstrap-emacs
+src/emacs
+src/emacs-[0-9]*
+src/sfnt
+src/Emacs
+src/temacs
+src/dmpstruct.h
+src/*.pdmp
+
+# Character-set info.
+admin/charsets/jisx2131-filter
+admin/unidata/unidata.txt
+etc/charsets/*.map
+lisp/international/charprop.el
+lisp/international/charscript.el
+lisp/international/cp51932.el
+lisp/international/emoji-zwj.el
+lisp/international/emoji-labels.el
+lisp/international/eucjp-ms.el
+lisp/international/uni-*.el
+lisp/international/idna-mapping.el
+lisp/language/pinyin.el
+
+# Documentation.
+*.aux
+*.cm
+*.cms
+*.cp
+*.cps
+*.doc
+*.dvi
+*.fn
+*.fns
+*.info
+*.ky
+*.kys
+*.op
+*.ops
+*.pdf
+!doc/lispintro/cons-*.pdf
+!doc/lispintro/drawers.pdf
+!doc/lispintro/lambda-*.pdf
+!etc/refcards/gnus-logo.pdf
+*.pg
+*.pgs
+*.pj
+*.pjs
+*.sc
+*.scs
+*.t2d/
+*.tg
+*.tgs
+*.toc
+*.tp
+*.tps
+*.vr
+*.vrs
+doc/*/*.html
+doc/*/*/*.html
+doc/*/*.ps
+doc/*/*/*.ps
+doc/emacs/emacsver.texi
+doc/man/emacs.1
+doc/misc/cc-mode.ss
+doc/misc/modus-themes.texi
+doc/misc/org.texi
+etc/DOC
+etc/refcards/emacsver.tex
+gnustmp*
+/info/
+
+# Version control and locks.
+*.orig
+*.swp
+*~
+\#*\#
+ChangeLog
+[0-9]*.txt
+/vc-dwim-log-*
+
+# Built by 'make install'.
+etc/emacs.tmpdesktop
+
+# Built by 'make-dist'.
+/MANIFEST
+
+# Distribution directories.
+/emacs-[1-9]*/
+
+# Microsoft-related builds and installations.
+*.in-h
+_*
+!lib/_Noreturn.h
+!m4/_*.m4
+/bin/
+/BIN/
+/data/
+etc/icons/
+lib/cxxdefs.h
+lib/SYS/
+/libexec/
+/lock/
+/README.W32
+/share/
+/site-lisp/
+nt/emacs.rc
+nt/emacsclient.rc
+src/gdb.ini
+/var/
+
+# Seccomp filter files.
+lib-src/seccomp-filter.bpf
+lib-src/seccomp-filter.pfc
+lib-src/seccomp-filter-exec.bpf
+lib-src/seccomp-filter-exec.pfc
+
+# gsettings schema
+/etc/*.gschema.valid
+
+# Ignore directory made by admin/make-manuals.
+/manual/
+
+/test/gmp.h
+
+# Files ignored in exec/.
+exec/aclocal.m4
+exec/config.guess
+exec/config.sub
+exec/config.status
+exec/install-sh
+exec/loader
+exec/test
+exec/exec1
+exec/deps/*
+exec/aclocal.m4
+exec/autom4te.cache
+exec/config.h
+exec/config.h.in
+exec/config-mips.m4
+exec/configure
+exec/*.s.s
diff --git a/src/emacs/emacs-source/.gitlab-ci.yml b/src/emacs/emacs-source/.gitlab-ci.yml
new file mode 100644
index 0000000..904f10b
--- /dev/null
+++ b/src/emacs/emacs-source/.gitlab-ci.yml
@@ -0,0 +1,28 @@
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
+#
+# This file is part of GNU Emacs.
+#
+# GNU Emacs 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 of the License, or
+# (at your option) any later version.
+#
+# GNU Emacs 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 Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+# GNU Emacs support for the GitLab protocol for CI.
+
+# The presence of this file does not imply any FSF/GNU endorsement of
+# any particular service that uses that protocol. Also, it is intended for
+# evaluation purposes, thus possibly temporary.
+
+# Maintainer: Ted Zlatanov <tzz@lifelogs.com>
+# URL: https://emba.gnu.org/emacs/emacs
+
+# Just load from test/infra, to keep build automation files there.
+include: '/test/infra/gitlab-ci.yml'
diff --git a/src/emacs/emacs-source/.mailmap b/src/emacs/emacs-source/.mailmap
new file mode 100644
index 0000000..5350ead
--- /dev/null
+++ b/src/emacs/emacs-source/.mailmap
@@ -0,0 +1,215 @@
+#
+# This list is used to fix a few misspelled names in various git
+# listings (e.g., "git log"). This can be used to fix incorrect
+# attribution, poor display, or names showing up more than once.
+# It also allows updating an old email addresses to a new one.
+#
+# See "man git-shortlog" for more information on the format.
+#
+# Keep file sorted using `M-x sort-lines'.
+#
+Aaron S. Hawley <aaron.s.hawley@gmail.com> <Aaron.Hawley@vtinfo.com>
+Aaron S. Hawley <aaron.s.hawley@gmail.com> <Aaron.S.Hawley@gmail.com>
+Aaron S. Hawley <aaron.s.hawley@gmail.com> <ashawley@burlingtontelecom.net>
+Alan Third <alan@idiocy.org>
+Alan Third <alan@idiocy.org> <alan@breton-build.holly.idiocy.org>
+Alan Third <alan@idiocy.org> Alan Third <address@hidden>
+Alan Third <alan@idiocy.org> bug-gnu-emacs@gnu.org <bug-gnu-emacs@gnu.org>
+Alex Harsanyi <AlexHarsanyi@gmail.com> <harsanyi@mac.com>
+Alexander Gramiak <agrambot@gmail.com>
+Amin Bandali <bandali@gnu.org> <mab@gnu.org>
+Andrea Corallo <akrl@sdf.org>
+Andrea Corallo <akrl@sdf.org> <akrl@sdf.com>
+Andrea Corallo <akrl@sdf.org> <andcor03@e112547.nice.arm.com>
+Andrea Corallo <akrl@sdf.org> <andrea_corallo@yahoo.it>
+Andrea Corallo <andrea.corallo@arm.com> <andcor03@e112547.nice.arm.com>
+Andrea Corallo <andrea.corallo@arm.com> <andcor03@e130743.arm.com>
+Andrea Corallo <andrea.corallo@arm.com> <andcor03@e132096.arm.com>
+Andrew G Cohen <cohen@andy.bu.edu>
+Andrew G Cohen <cohen@andy.bu.edu> <cohen@bu.edu>
+Arash Esbati <arash@gnu.org> <arash.esbati@gmail.com>
+Arash Esbati <arash@gnu.org> <esbati@gmx.de>
+Arni Magnusson <thisisarni@gmail.com> <arnima@hafro.is>
+Arsen Arsenović <arsen@aarsen.me>
+Artur Malabarba <bruce.connor.am@gmail.com> <am12548@it055607.users.bris.ac.uk>
+Artur Malabarba <bruce.connor.am@gmail.com> Artur Malabarba <address@hidden>
+Basil L. Contovounesios <basil@contovou.net> <contovob@tcd.ie>
+Bastien Guerry <bzg@gnu.org>
+Bastien Guerry <bzg@gnu.org> <bastien1@free.fr>
+Bastien Guerry <bzg@gnu.org> <bzg@altern.org>
+Benjamin Schwerdtner <Benjamin.Schwerdtner@gmail.com>
+Bob Rogers <rogers@rgrjr.com> <rogers-emacs@rgrjr.homedns.org>
+Bruno Félix Rezende Ribeiro <oitofelix@gnu.org> <oitofelix@gmail.com>
+Carlos Pita <carlosjosepita@gmail.com>
+Chong Yidong <cyd@gnu.org> <cyd@stupidchicken.com>
+Christoph Scholtes <cschol2112@gmail.com>
+Christoph Scholtes <cschol2112@gmail.com> <cschol2112@googlemail.com>
+Christoph Scholtes <cschol2112@gmail.com> Christoph Scholtes <>
+Clément Pit-Claudel <clement.pitclaudel@live.com>
+Clément Pit-Claudel <clement.pitclaudel@live.com> <clement.pit@gmail.com>
+Courtney Bane <emacs-bugs-7626@cbane.org>
+Daiki Ueno <ueno@gnu.org> <ueno@unixuser.org>
+Daiki Ueno <ueno@gnu.org> Daiki Ueno <ueno@debian>
+Dan Nicolaescu <dann@ics.uci.edu> <dann@gnu.org>
+Dan Nicolaescu <dann@ics.uci.edu> <done@ece.arizona.edu>
+Daniel Colascione <dancol@dancol.org> <dan.colascione@gmail.com>
+David Abrahams <dave@boostpro.com>
+David M. Koppelman <koppel@ece.lsu.edu>
+Deniz Dogan <deniz@dogan.se> <deniz.a.m.dogan@gmail.com>
+Dick R. Chiang <dick.r.chiang@gmail.com>
+Dick R. Chiang <dick.r.chiang@gmail.com> dickmao <none>
+Earl Hyatt <okamsn@protonmail.com> <ej32u@protonmail.com>
+Edward M. Reingold <reingold@emr.cs.iit.edu>
+Eli Zaretskii <eliz@gnu.org> <eliz@is.elta.co.il>
+Emilio C. Lopes <eclig@gmx.net>
+Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
+Era Eriksson <era+emacs@iki.fi> <era+emacsbugs@iki.fi>
+Eric Ludlam <zappo@gnu.org>
+Eric Ludlam <zappo@gnu.org> <eric@siege-engine.com>
+Eric Ludlam <zappo@gnu.org> <ericludlam@gmail.com>
+Eric S. Raymond <esr@thyrsus.com> <esr@snark.thyrsus.com>
+Etienne Prud’homme <e.e.f.prudhomme@gmail.com>
+Fabián Ezequiel Gallina <fgallina@gnu.org> <fgallina@cuca>
+Fabián Ezequiel Gallina <fgallina@gnu.org> <galli.87@gmail.com>
+Felicián Németh <felician.nemeth@gmail.com>
+Francis Litterio <flitterio@gmail.com>
+Gabor Vida <vidagabor@gmail.com>
+Gerd Möllmann <gerd.moellmann@gmail.com>
+Gerd Möllmann <gerd.moellmann@gmail.com> <gerd,moellmann@gmail.com>
+Gerd Möllmann <gerd.moellmann@gmail.com> <gerd@gnu.org>
+Glenn Morris <rgm@gnu.org>
+Glenn Morris <rgm@gnu.org> <rgm@fencepost>
+Glenn Morris <rgm@gnu.org> <rgm@stanford.edu>
+Gnus developers <ding@gnus.org.noreply> <ding@gnus.org>
+Gregory Heytings <gregory@heytings.org> <ghe@sdf.org>
+Grégoire Jadi <daimrod@gmail.com>
+Ian Dunn <dunni@gnu.org>
+Ignacio Casso <ignaciocasso@hotmail.com>
+Jan Djärv <jan.h.d@swipnet.se>
+Jan Djärv <jan.h.d@swipnet.se> <jhd@f20.localdomain>
+Jan Synáček <jan.synacek@gmail.com>
+Jason Rumney <jasonr@gnu.org> <jasonr@wanchan>
+Jeff Walsh <fejfighter@gmail.com> <jawalsh@localhost.localdomain>
+Jeff Walsh <fejfighter@gmail.com> <jeff.walsh@drtusers-MacBook-Pro.local>
+Jeff Walsh <fejfighter@gmail.com> <jewalsh@redhat.com>
+Jens Lechtenbörger <jens.lechtenboerger@fsfe.org>
+Jim Blandy <jimb@red-bean.com> <jimb@redhat.com>
+Jim Meyering <meyering@redhat.com> U. Ser <user@example.com>
+Jimmy Aguilar Mena <spacibba@aol.com>
+Joakim Verona <joakim@verona.se>
+Joakim Verona <joakim@verona.se> <root@exodia.verona.se>
+John Wiegley <johnw@newartisans.com> <jwiegley@gmail.com>
+Jose A. Ortega Ruiz <jao@gnu.org>
+João Távora <joaotavora@gmail.com>
+João Távora <joaotavora@gmail.com> <capitaomorte@archlinux2022.linuxvmimages.local>
+Julien Danjou <julien@danjou.info> <jd@dex.adm.naquadah.org>
+Julien Danjou <julien@danjou.info> Julien Danjou <jd@abydos>
+Juri Linkov <juri@linkov.net> <juri@jurta.org>
+Jérémy Compostella <jeremy.compostella@gmail.com>
+Jürgen Hötzel <juergen@archlinux.org>
+Justin Burkett <justin@burkett.cc>
+Karl Fogel <kfogel@red-bean.com> <karl.fogel@canonical.com>
+Katsumi Yamaoka <yamaoka@jpl.org> <katsumi@flagship2>
+Kaushal Modi <kaushal.modi@gmail.com>
+Kelvin White <kwhite@gnu.org>
+Kelvin White <kwhite@gnu.org> <kelvin.white77@gmail.com>
+Ken Raeburn <raeburn@raeburn.org> <raeburn@permabit.com>
+Kenichi Handa <handa@gnu.org>
+Kenichi Handa <handa@gnu.org> <handa@etlken>
+Kenichi Handa <handa@gnu.org> <handa@m17n.org>
+Kenjiro Nakayama <nakayamakenjiro@gmail.com>
+Kjartan Óli Ágústsson <kjartanoli@outlook.com>
+Károly Lőrentey <lorentey@elte.hu>
+Lars Ingebrigtsen <larsi@gnus.org>
+Lars Ingebrigtsen <larsi@gnus.org> <larsi@emkay.local>
+Lars Ingebrigtsen <larsi@gnus.org> <larsi@openbsd6.gnus.org>
+Lars Ingebrigtsen <larsi@gnus.org> <larsi@quimbies.gnus.org>
+Lars Ingebrigtsen <larsi@gnus.org> <larsi@stories.gnus.org>
+Laurence Warne <laurencewarne@gmail.com>
+Lin Sun <lin.sun@zoom.us>
+Liu Hui <liuhui1610@gmail.com> <ilupin@users.noreply.github.com>
+Ludovic Courtès <ludo@gnu.org>
+Luke Lee <luke.yx.lee@gmail.com>
+Martin Rudalics <rudalics@gmx.at>
+Martin Rudalics <rudalics@gmx.at> <“rudalics@gmx.at”>
+Masatake YAMATO <yamato@redhat.com> <jet@gyve.org>
+Matt Armstrong <matt@rfc20.org> <marmstrong@google.com>
+Matt Armstrong <matt@rfc20.org> <matt@mdeb>
+Mattias Engdegård <mattias.engdegard@gmail.com>
+Mattias Engdegård <mattias.engdegard@gmail.com> <mattiase@acm.org>
+Maxim Nikulin <manikulin@gmail.com>
+Michael Albinus <michael.albinus@gmx.de> <albinus@detlef>
+Michalis V <mvar.40k@gmail.com>
+Miha Rihtaršič <miha@kamnitnik.top>
+Morgan Smith <Morgan.J.Smith@outlook.com>
+Nick Drozd <nicholasdrozd@gmail.com>
+Nicolas Petton <nicolas@petton.fr> <petton.nicolas@gmail.com>
+Nitish Chandra <nitishchandrachinta@gmail.com>
+Noam Postavsky <npostavs@gmail.com> <npostavs@users.sourceforge.net>
+Noam Postavsky <npostavs@gmail.com> <npostavs@users.sourceforget.net>
+Paul Eggert <eggert@cs.ucla.edu> <eggert@Penguin.CS.UCLA.EDU>
+Paul Eggert <eggert@cs.ucla.edu> <eggert@day>
+Paul Eggert <eggert@cs.ucla.edu> <eggert@twinsun.com>
+Paul Eggert <eggert@cs.ucla.edu> <eggert@union>
+Peter J. Weisberg <pj@irregularexpressions.net>
+Peter Oliver <p.d.oliver@mavit.org.uk> <bzr@mavit.org.uk>
+Peter Oliver <p.d.oliver@mavit.org.uk> <git@mavit.org.uk>
+Philip Kaludercic <philipk@posteo.net>
+Philip Kaludercic <philipk@posteo.net> <philip.kaludercic@fau.de>
+Philip Kaludercic <philipk@posteo.net> <philip@icterid>
+Philip Kaludercic <philipk@posteo.net> <philip@warpmail.net>
+Philipp Stephani <p.stephani2@gmail.com>
+Philipp Stephani <phst@google.com>
+Phillip Lord <phillip.lord@russet.org.uk> <phillip.lord@newcastle.ac.uk>
+Pierre Lorenzon <devel@pollock-nageoire.net>
+Pieter van Oostrum <pieter@vanoostrum.org> <pieter-l@vanoostrum.org>
+Pip Cet <pipcet@gmail.com>
+Po Lu <luangruo@yahoo.com>
+Po Lu <luangruo@yahoo.com> Po Lu via <emacs-devel@gnu.org>
+Przemysław Wojnowski <esperanto@cumego.com>
+Rasmus Pank Roulund <rasmus@gmx.us>
+Richard M. Stallman <rms@gnu.org>
+Robert Brown <robert.brown@gmail.com>
+Robert J. Chassell <bob@gnu.org> <bob@rattlesnake.com>
+Robert Weiner <rsw@gnu.org> <rswgnu@gmail.com>
+Roland Winkler <winkler@gnu.org> <Roland.Winkler@physik.uni-erlangen.de>
+Ronnie Schnell <ronnie@driver-aces.com>
+Ryan C. Thompson <rct@thompsonclan.org>
+Sam Steingold <sds@gnu.org> <sdsg@amazon.com>
+Simen Heggestøyl <simenheg@runbox.com>
+Simen Heggestøyl <simenheg@runbox.com> <simenheg@gmail.com>
+Simen Heggestøyl <simenheg@runbox.com> <simenheg@ifi.uio.no>
+Simon Josefsson <simon@josefsson.org> <jas@extundo.com>
+Stefan Kangas <stefankangas@gmail.com> <stefan@marxist.se>
+Stefan Monnier <monnier@iro.umontreal.ca> <monnier@IRO.UMontreal.CA>
+Stephen Berman <stephen.berman@gmx.net> <Stephen.Berman@gmx.net>
+Stephen Berman <stephen.berman@gmx.net> <Stephen.Berman@gmx.net>
+Stephen Berman <stephen.berman@gmx.net> <steve@rosalinde.fritz.box>
+Stephen Gildea <stepheng+emacs@gildea.com>
+Stephen Gildea <stepheng+emacs@gildea.com> <gildea@stop.mail-abuse.org>
+Stephen Gildea <stepheng+emacs@gildea.com> <stepheng+git-config-global@gildea.com>
+Stephen Gildea <stepheng+emacs@gildea.com> <stepheng+savannah@gildea.com>
+Tassilo Horn <tsdh@gnu.org> <tassilo@member.fsf.org>
+Ted Zlatanov <tzz@lifelogs.com>
+Thien-Thi Nguyen <ttn@gnu.org> <ttn@gnuvola.org>
+Thierry Volpiatto <thievol@posteo.net> <thierry.volpiatto@gmail.com>
+Thuna <thuna.cing@gmail.com>
+Tino Calancha <ccalancha@suse.com> <f92capac@gmail.com>
+Tino Calancha <ccalancha@suse.com> <tino.calancha@gmail.com>
+Tom Tromey <tom@tromey.com> <tromey@redhat.com>
+Ulf Jasper <ulf.jasper@web.de> Ulf Jasper <>
+Ulf Jasper <ulf.jasper@web.de> Ulf Jasper <ulf@uthinkpad>
+Ulrich Müller <ulm@gentoo.org>
+Vinicius Jose Latorre <viniciusjl@ig.com.br> <viniciusjl.gnu@gmail.com>
+Vladimir Nikishkin <lockywolf@gmail.com> <for.emacs-table.el-environment-patch_2022-05-09@lockywolf.net>
+Werner Lemberg <wl@gnu.org>
+Wolfgang Scherer <wolfgang.scherer@gmx.de> <Wolfgang.Scherer@gmx.de>
+Xi Lu <lx@shellcodes.org>
+Xue Fuqiao <xfq.free@gmail.com> <xfq@gnu.org>
+Yilkal Argaw <yilkalargawworkneh@gmail.com>
+Yuan Fu <casouri@gmail.com> <yuan@debian-BULLSEYE-live-builder-AMD64>
+Yuuki Harano <masm+github@masm11.me> <masm@masm11.ddo.jp>
+Óscar Fuentes <ofv@wanadoo.es>
+İ. Göktuğ Kayaalp <self@gkayaalp.com>
+Łukasz Stelmach <stlman@poczta.fm> <l.stelmach@samsung.com>
+Łukasz Stelmach <stlman@poczta.fm> <lukasz.stelmach@iem.pw.edu.pl>
diff --git a/src/emacs/setup.sh b/src/emacs/setup.sh
new file mode 100755
index 0000000..e7ca491
--- /dev/null
+++ b/src/emacs/setup.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+set -e
+
+EMACSFULL="--with-x-toolkit=gtk3 --disable-build-details --with-cairo \
+ --with-harfbuzz --with-libsystemd=no --with-modules \
+ --with-tree-sitter"
+
+EMACSMIN="--without-all \
+ --with-x-toolkit=no --without-xwidgets --without-x --without-ns --disable-ns-self-contained \
+ --with-xpm=no --with-jpeg=no --with-png=no --with-gif=no --with-tiff=no \
+ --without-internationalization --without-tree-sitter --without-mailutils"
+
+EMACSALWAYS="--with-gnutls --with-file-notification=yes --with-native-compilation=yes --with-zlib=yes"
+
+
+if [[ "$(read -e -p 'Build minimal emacs? [y/N]> '; echo $REPLY)" == [Yy]* ]]; then
+ EMACSOPT="${EMACSMIN} ${EMACSALWAYS}"
+else
+ EMACSOPT="${EMACSFULL} ${EMACSALWAYS}"
+fi
+cd emacs-source
+./autogen.sh
+./configure --prefix="${HOME}/.local" \
+ ${EMACSOPT} \
+ CFLAGS='-O2 -pipe'
+make
+make install