nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

commit ba8d71f4478bff4d76bbc2f5fbda60ec1f7a7739
parent 9d0331dea205337178015386472bbef8a7004428
Author: Mike Frysinger <vapier@gentoo.org>
Date:   Tue, 21 Feb 2017 17:04:35 -0500

add support for gnulib

On a system with up-to-date GNU tools, this does not change
the size of nano's binary.

We start off with importing only a few modules, although we
don't yet delete the fallback logic for them.

Diffstat:
M.gitignore | 8++++++++
MMakefile.am | 2+-
Mautogen.sh | 26++++++++++++++++++++++++++
Mconfigure.ac | 7+++++++
Mm4/Makefile.am | 1+
Msrc/Makefile.am | 5+++--
6 files changed, 46 insertions(+), 3 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -16,6 +16,7 @@ core /ABOUT-NLS /INSTALL /aclocal.m4 +/ar-lib /autom4te.cache /compile /config.cache @@ -68,6 +69,13 @@ core /m4/wint_t.m4 /m4/xsize.m4 +# gnulib entries +/gnulib/ +/lib/ +/m4/.gitignore +/m4/gnulib-cache.m4 +/snippet/ + /nano.spec /src/nano /src/revision.h diff --git a/Makefile.am b/Makefile.am @@ -1,6 +1,6 @@ AUTOMAKE_OPTIONS = gnu no-dependencies -SUBDIRS = doc m4 po src +SUBDIRS = doc lib m4 po src if USE_COLOR SUBDIRS += syntax diff --git a/autogen.sh b/autogen.sh @@ -1,4 +1,30 @@ #!/bin/sh # Generate configure & friends for GIT users. +gnulib_url="git://git.sv.gnu.org/gnulib.git" +gnulib_hash="4084b3a1094372b960ce4a97634e08f4538c8bdd" + +modules=" + strcase + strcasestr-simple + strnlen +" + +# Make sure the local gnulib git repo is up-to-date. +if [ ! -d "gnulib" ]; then + git clone --depth=123 ${gnulib_url} +fi +cd gnulib >/dev/null || exit 1 +curr_hash=$(git log -1 --format=%H) +if [ "${gnulib_hash}" != "${curr_hash}" ]; then + git pull + git checkout -f ${gnulib_hash} +fi +cd .. >/dev/null || exit 1 + +rm -rf lib +./gnulib/gnulib-tool \ + --import \ + ${modules} + autoreconf -f -i -s diff --git a/configure.ac b/configure.ac @@ -26,10 +26,16 @@ dnl Make sure the ONCE macros are available. AC_PREREQ([2.69]) +dnl Lie about gnulib features we don't use to speed up & shrink down. + +gl_cv_func_printf_infinite_long_double=yes + dnl Checks for programs. AC_GNU_SOURCE AC_PROG_CC +gl_EARLY +gl_INIT AC_PROG_LN_S AC_ISC_POSIX AC_SYS_LARGEFILE @@ -747,6 +753,7 @@ AC_CONFIG_FILES([ Makefile doc/Makefile doc/sample.nanorc +lib/Makefile m4/Makefile po/Makefile.in src/Makefile diff --git a/m4/Makefile.am b/m4/Makefile.am @@ -8,6 +8,7 @@ EXTRA_DIST = \ glib-2.0.m4 \ glibc21.m4 \ glibc2.m4 \ + gnulib-cache.m4 \ iconv.m4 \ intdiv0.m4 \ intldir.m4 \ diff --git a/src/Makefile.am b/src/Makefile.am @@ -1,4 +1,5 @@ -AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\" -DSYSCONFDIR=\"$(sysconfdir)\" +AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\" -DSYSCONFDIR=\"$(sysconfdir)\" \ + -I$(top_builddir)/lib -I$(top_srcdir)/lib CLEANFILES = revision.h @@ -37,7 +38,7 @@ nano_SOURCES = browser.c \ utils.c \ winio.c -nano_LDADD = @GLIB_LIBS@ @LIBINTL@ +nano_LDADD = @GLIB_LIBS@ @LIBINTL@ $(top_builddir)/lib/libgnu.a install-exec-hook: cd $(DESTDIR)$(bindir) && rm -f rnano && $(LN_S) nano rnano