17 Commits

Author SHA1 Message Date
Joachim Nilsson
2a3575495a Add make release target for simplified maintenance
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2016-06-06 20:09:47 +02:00
Joachim Nilsson
8aa36184e6 Update ChangeLog and bump version for v1.15.2 release
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2016-06-06 20:04:35 +02:00
Joachim Nilsson
0a8f2ef420 Add pkg-config libeditline.pc file
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2016-06-06 19:56:48 +02:00
Joachim Nilsson
8078ff69cc Add ABI version info for libtool, start with 0.0.0
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2016-06-06 19:56:08 +02:00
Joachim Nilsson
6db7c7d440 Minor cleanup and simplification of build system
- Move 'foreign' declaration from Makefile.am's to configure script
- Move CFLAGS from configure script to src/Makefile.am
- Remove faltering license blurb at top of configure script, no need
  for this since we a) do not care, b) falls under project license

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2016-06-01 07:26:16 +02:00
Joachim Nilsson
e02339c3ae Do not assume -ltermcap, check for tgetent() instead
This is a followup patch for issue #8.  When the user elects
to enable Termcap checks for window resizing we need to check
what library on the system provides this functionality.  Do
not assume -ltermcap, but instead check for tgetent() in all
possible libraries.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2016-06-01 07:26:09 +02:00
Joachim Nilsson
f66e8cc151 Merge pull request #10 from rofl0r/patch-1
README.md: libedit depends on libtermcap
2016-05-31 23:27:53 +02:00
rofl0r
782ce4a7a9 README.md: libedit depends on libtermcap
netbsd's libedit only relies on functions offered by the traditional
libtermcap (such as tgetent()), which are *usually* (i.e. on the
majority of modern UNIX systems) supplied by ncurses, but there
exist standalone versions as well which can be used instead.
2016-05-31 13:42:10 +01:00
Joachim Nilsson
059d97d7a9 Remove Emacs version-control handling
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2016-05-07 22:42:24 +02:00
Jakub Pawlowski
edc38768ff Add tty_flush() to rl_forced_update_display()
Forcing update should flush, otherwise weird stuff happen when writing
to console asynchronously (cursor is moved, text is not displayed).

Signed-off-by: Jakub Pawlowski <jakubpawlo@gmail.com>
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2016-01-28 19:46:53 +01:00
Joachim Nilsson
59a2db7217 Test build with both GCC and Clang (LLVM)
- Test build with both GCC and Clang (LLVM)
- Only run Coverity Scan on dev branch, not master

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2016-01-27 10:12:25 +01:00
Joachim Nilsson
ba005dc0d0 Update ChangeLog, give Jakub proper credit with correct last name
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2016-01-27 09:49:33 +01:00
Joachim Nilsson
a1002f6984 Update .gitignore with generated files
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2016-01-27 09:32:19 +01:00
Joachim Nilsson
7a0c292a82 Bump version for v1.15.2 release cycle
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2016-01-27 09:24:23 +01:00
Jakub Pawlo
91398ceb34 Prevent mangling of symbols when linking with C++
Signed-off-by: Jakub Pawlo <jakubpawlo@gmail.com>
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2016-01-27 09:23:14 +01:00
Joachim Nilsson
3dbeaa0637 Fix link to version
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2015-11-16 21:21:44 +01:00
Joachim Nilsson
2f08585884 Fix heading
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2015-11-16 21:21:00 +01:00
18 changed files with 135 additions and 69 deletions

45
.gitignore vendored
View File

@@ -1,25 +1,24 @@
Makefile
archive
autom4te.cache
config.h
config.log
config.status
libtool
examples/.deps
examples/Makefile
examples/cli
examples/cli.o
examples/testit
examples/testit.o
include/Makefile
man/Makefile
man/Makefile
src/.deps
src/Makefile
src/*.o
src/*.lo
src/libeditline.a
src/libeditline.la
stamp-h1
*~
*/.libs/
*.lo
*.o
.deps
Makefile
Makefile.in
aclocal.m4
archive
autom4te.cache
compile
config.guess
config.h
config.h.in
config.log
config.status
config.sub
configure
depcomp
install-sh
libtool
ltmain.sh
missing
stamp-h1

View File

@@ -5,6 +5,11 @@ language: c
# We don't need to install packages, use dockerized build, quicker
sudo: false
# Test build with both GCC and Clang (LLVM)
compiler:
- gcc
- clang
env:
global:
# The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
@@ -19,7 +24,7 @@ addons:
notification_email: troglobit@gmail.com
build_command_prepend: "./autogen.sh && ./configure --enable-sigstop --enable-terminal-bell"
build_command: "make -j5"
branch_pattern: master
branch_pattern: dev
# We don't store generated files (configure and Makefile) in GIT,
# so we must customize the default build script to run ./autogen.sh

View File

@@ -3,6 +3,24 @@ Change Log
All notable changes to the project are documented in this file.
[1.15.2][] - 2016-06-06
-----------------------
Bug fixes and minor feature creep in `pkg-config` support.
### Changes
- Prevent mangling of symbols when linking with C++. Patch courtesy of
Jakub Pawlowski
- Add `libeditline.pc` for `pkg-config`
### Fixes
- Do not assume a termcap library exists, check for `tgetent()` in
curses, ncurses, tinfo and termcap libraries
- Call `tty_flush()` when user calls `rl_forced_update_display()`
to prevent screen becoming garbled. Patch by Jakub Pawlowski
[1.15.1][] - 2015-11-16
-----------------------
@@ -11,7 +29,7 @@ Bug fixes only.
### Changes
- Update README with origin of this version of editline
##¤ Fixes
### Fixes
- Fix build system, don't force automake v1.11, require at least v1.11
- Fix build problem with examples using `--enable-termcap`
@@ -136,8 +154,9 @@ Adaptations to Debian editline package.
- First version, forked from Minix current 2008-06-06
[UNRELEASED]: https://github.com/troglobit/finit/compare/1.15.0...HEAD
[1.15.0]: https://github.com/troglobit/finit/compare/1.15.0...1.15.1
[UNRELEASED]: https://github.com/troglobit/finit/compare/1.15.1...HEAD
[1.15.2]: https://github.com/troglobit/finit/compare/1.15.1...1.15.2
[1.15.1]: https://github.com/troglobit/finit/compare/1.15.0...1.15.1
[1.15.0]: https://github.com/troglobit/finit/compare/1.14.2...1.15.0
[1.14.2]: https://github.com/troglobit/finit/compare/1.14.1...1.14.2
[1.14.1]: https://github.com/troglobit/finit/compare/1.14.0...1.14.1

View File

@@ -1,4 +1,38 @@
AUTOMAKE_OPTIONS = foreign
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libeditline.pc
doc_DATA = README LICENSE CHANGELOG
EXTRA_DIST = LICENSE CHANGELOG INSTALL
SUBDIRS = src include man examples
## Generate MD5 checksum file
MD5 = md5sum
md5-dist:
@for file in $(DIST_ARCHIVES); do \
$(MD5) $$file > $$file.md5; \
done
## Check if tagged in git
release-hook:
if [ ! `git tag | grep $(PACKAGE_VERSION)` ]; then \
echo; \
printf "\e[1m\e[41mCannot find release tag $(PACKAGE_VERSION)\e[0m\n"; \
printf "\e[1m\e[5mDo release anyway?\e[0m "; read yorn; \
if [ "$$yorn" != "y" -a "$$yorn" != "Y" ]; then \
printf "OK, aborting release.\n"; \
exit 1; \
fi; \
echo; \
else \
echo; \
printf "\e[1m\e[42mFound GIT release tag $(PACKAGE_VERSION)\e[0m\n"; \
printf "\e[1m\e[44m>>Remember to push tags!\e[0m\n"; \
echo; \
fi
## Target to run when building a release
release: dist release-hook md5-dist
@for file in $(DIST_ARCHIVES); do \
printf "$$file \tDistribution tarball\n"; \
printf "$$file.md5\t"; cat $$file.md5 | cut -f1 -d' '; \
mv $$file* ../; \
done

View File

@@ -147,8 +147,8 @@ This version of the editline library was forked from the [Minix 3][]
source tree and is *not* related to the similarily named NetBSD version
that [Jess Thrysøe][jess] disitributes to the world outside BSD. The
libraries have much in common, but the latter is heavily refactored and
also relies on ncurses, whereas this library only uses termios from the
standard C library.
also relies on libtermcap (usually supplied by ncurses), whereas this
library only uses termios from the standard C library.
Patches and bug fixes from the following forks, all based on the
original comp.sources.unix posting, have been merged:

View File

@@ -1,26 +1,11 @@
# Minix libeditline -*- Autoconf -*-
#
# Copyright (c) 2008-2013 Joachim Nilsson <troglobit()gmail!com>
#
# Process this file with autoconf to produce a configure script.
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
AC_PREREQ(2.61)
AC_INIT(editline, 1.15.1, https://github.com/troglobit/editline/issues)
AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz])
AC_INIT(editline, 1.15.2, https://github.com/troglobit/editline/issues)
AM_INIT_AUTOMAKE([1.11 foreign no-dist-gzip dist-xz])
AM_SILENT_RULES([yes])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_SRCDIR([src/editline.c])
AC_CONFIG_HEADER([config.h])
AC_CONFIG_FILES([Makefile src/Makefile include/Makefile man/Makefile examples/Makefile])
AC_CONFIG_FILES([Makefile libeditline.pc src/Makefile include/Makefile man/Makefile examples/Makefile])
# Checks for programs.
AC_PROG_CC
@@ -83,8 +68,15 @@ AC_ARG_ENABLE(termcap,
[AS_HELP_STRING([--enable-termcap], [Use termcap library to query terminal size.])],
AC_DEFINE([CONFIG_USE_TERMCAP], 1, [Define to use the termcap library for terminal size.]))
AM_CONDITIONAL([USE_LIBTERMCAP], [test "$enable_termcap" != no])
AM_CFLAGS="-std=gnu99 $inline_cflags -W -Wall -Wundef -Wunused -Wstrict-prototypes -Werror-implicit-function-declaration $nopointersign_cflags -Wshadow -Wcast-qual"
AC_SUBST(AM_CFLAGS)
# Check for a termcap compatible library if enabled
AS_IF([test "$enable_termcap" != no],
AC_CHECK_LIB(termcap, tgetent, , [
AC_CHECK_LIB(tinfo, tgetent, , [
AC_CHECK_LIB(curses, tgetent, , [
AC_CHECK_LIB(ncurses, tgetent, , [
AC_MSG_ERROR([Cannot find a termcap capable library, try installing Ncurses.])])
])
])
]))
AC_OUTPUT

3
examples/.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
*.o
cli
testit

View File

@@ -1,11 +1,4 @@
AUTOMAKE_OPTIONS = foreign
noinst_PROGRAMS = testit cli
LDADD = $(top_builddir)/src/libeditline.la
AM_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/include
AM_LDFLAGS = -static
if USE_LIBTERMCAP
LDADD += -ltermcap
endif

View File

@@ -1,4 +1,2 @@
AUTOMAKE_OPTIONS = foreign
library_includedir = $(includedir)
library_include_HEADERS = editline.h

View File

@@ -29,6 +29,10 @@
#define ISMETA(x) ((x) & 0x80)
#define UNMETA(x) ((x) & 0x7F)
#ifdef __cplusplus
extern "C" {
#endif
/* Command status codes. */
typedef enum {
CSdone = 0, /* OK */
@@ -100,4 +104,8 @@ void rl_deprep_terminal(void);
int rl_getc(void);
#ifdef __cplusplus
}
#endif
#endif /* __EDITLINE_H__ */

12
libeditline.pc.in Normal file
View File

@@ -0,0 +1,12 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
Name: @PACKAGE@
Description: A small line editing library without termcap/curses
Version: @VERSION@
Requires:
Libs: -L${libdir} -leditline
Cflags: -I${includedir}

1
m4/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
*.m4

2
src/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
libeditline.a
libeditline.la

View File

@@ -1,3 +1,6 @@
AUTOMAKE_OPTIONS = foreign
lib_LTLIBRARIES = libeditline.la
libeditline_la_SOURCES = editline.c editline.h complete.c sysunix.c unix.h
libeditline_la_CFLAGS = -std=gnu99
libeditline_la_CFLAGS += -W -Wall -Wundef -Wunused -Wstrict-prototypes
libeditline_la_CFLAGS += -Werror-implicit-function-declaration -Wshadow -Wcast-qual
libeditline_la_LDFLAGS = $(AM_LDFLAGS) -version-info 0:0:0

View File

@@ -277,7 +277,6 @@ int rl_list_possib(char *token, char ***av)
/**
* Local Variables:
* version-control: t
* indent-tabs-mode: t
* c-file-style: "ellemtel"
* c-basic-offset: 4

View File

@@ -1170,6 +1170,7 @@ void rl_clear_message(void)
void rl_forced_update_display()
{
redisplay();
tty_flush();
}
char *readline(const char *prompt)
@@ -1734,7 +1735,6 @@ el_status_t el_bind_key_in_metamap(int key, el_keymap_func_t function)
/**
* Local Variables:
* version-control: t
* indent-tabs-mode: t
* c-file-style: "ellemtel"
* c-basic-offset: 4

View File

@@ -57,7 +57,6 @@ void rl_add_slash(char *path, char *p)
/**
* Local Variables:
* version-control: t
* indent-tabs-mode: t
* c-file-style: "ellemtel"
* c-basic-offset: 4

View File

@@ -232,7 +232,6 @@ void rl_add_slash(char *path, char *p)
/**
* Local Variables:
* version-control: t
* indent-tabs-mode: t
* c-file-style: "ellemtel"
* c-basic-offset: 4