From 83713e4a7dc419fcdaa2abaa11209e5fe1799a88 Mon Sep 17 00:00:00 2001 From: Chris Roberts Date: Sat, 2 Jan 2010 07:11:41 +0000 Subject: [PATCH] Added the latest version of less. Contains a patch to move settings/history into B_USER_SETTINGS_DIRECTORY. --- sys-apps/less/less-436.bep | 18 +++ sys-apps/less/less.OptionalPackageDescription | 5 + sys-apps/less/patches/less-436.patch | 128 ++++++++++++++++++ 3 files changed, 151 insertions(+) create mode 100644 sys-apps/less/less-436.bep create mode 100644 sys-apps/less/less.OptionalPackageDescription create mode 100644 sys-apps/less/patches/less-436.patch diff --git a/sys-apps/less/less-436.bep b/sys-apps/less/less-436.bep new file mode 100644 index 000000000..9ac1eab6f --- /dev/null +++ b/sys-apps/less/less-436.bep @@ -0,0 +1,18 @@ +DESCRIPTION="Less is a free, open-source file pager." +HOMEPAGE="http://www.greenwoodsoftware.com/less/" +SRC_URI="http://www.greenwoodsoftware.com/less/less-436.tar.gz" +CHECKSUM_MD5="817bf051953ad2dea825a1cdf460caa4" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd less-436 + autoreconf -fvi + ./configure --prefix=/boot/common + make +} + +INSTALL { + cd less-436 + make install +} diff --git a/sys-apps/less/less.OptionalPackageDescription b/sys-apps/less/less.OptionalPackageDescription new file mode 100644 index 000000000..e261241ec --- /dev/null +++ b/sys-apps/less/less.OptionalPackageDescription @@ -0,0 +1,5 @@ +Package: less +Version: 436 +Copyright: 1984-2009 Mark Nudelman +License: GPL v3 +URL: http://www.greenwoodsoftware.com/less/ diff --git a/sys-apps/less/patches/less-436.patch b/sys-apps/less/patches/less-436.patch new file mode 100644 index 000000000..4c7f04d90 --- /dev/null +++ b/sys-apps/less/patches/less-436.patch @@ -0,0 +1,128 @@ +diff -up less-436/cmdbuf.c.orig less-436/cmdbuf.c +--- less-436/cmdbuf.c.orig 2010-01-01 16:33:39.000000000 -0700 ++++ less-436/cmdbuf.c 2010-01-01 16:39:46.000000000 -0700 +@@ -1325,7 +1325,11 @@ cmd_lastpattern() + static char * + histfile_name() + { ++#ifdef __HAIKU__ ++ char home[B_PATH_NAME_LENGTH+B_FILE_NAME_LENGTH]; ++#else + char *home; ++#endif + char *name; + int len; + +@@ -1339,6 +1343,13 @@ histfile_name() + return (save(name)); + } + ++#ifdef __HAIKU__ ++ { ++ dev_t volume = dev_for_path("/boot"); ++ if (find_directory(B_USER_SETTINGS_DIRECTORY, volume, true, home, sizeof(home)) != B_OK) ++ return (NULL); ++ } ++#else + /* Otherwise, file is in $HOME. */ + home = lgetenv("HOME"); + if (home == NULL || *home == '\0') +@@ -1349,6 +1360,8 @@ histfile_name() + #endif + return (NULL); + } ++#endif ++ + len = strlen(home) + strlen(LESSHISTFILE) + 2; + name = (char *) ecalloc(len, sizeof(char)); + SNPRINTF2(name, len, "%s/%s", home, LESSHISTFILE); +diff -up less-436/configure.ac.orig less-436/configure.ac +--- less-436/configure.ac.orig 2010-01-01 16:06:56.000000000 -0700 ++++ less-436/configure.ac 2010-01-01 16:16:09.000000000 -0700 +@@ -562,10 +562,17 @@ AH_TOP([ + * LESSHISTFILE is the filename of the history file + * (in the HOME directory). + */ +-#define LESSKEYFILE ".less" +-#define LESSKEYFILE_SYS SYSDIR "/sysless" +-#define DEF_LESSKEYINFILE ".lesskey" +-#define LESSHISTFILE ".lesshst" ++#ifdef __HAIKU__ ++# define LESSKEYFILE "less" ++# define LESSKEYFILE_SYS SYSDIR "/sysless" ++# define DEF_LESSKEYINFILE "lesskey" ++# define LESSHISTFILE "lesshst" ++#else ++# define LESSKEYFILE ".less" ++# define LESSKEYFILE_SYS SYSDIR "/sysless" ++# define DEF_LESSKEYINFILE ".lesskey" ++# define LESSHISTFILE ".lesshst" ++#endif + + + /* Settings always true on Unix. */ +diff -up less-436/filename.c.orig less-436/filename.c +--- less-436/filename.c.orig 2010-01-01 16:25:25.000000000 -0700 ++++ less-436/filename.c 2010-01-01 16:23:03.000000000 -0700 +@@ -267,12 +267,23 @@ homefile(filename) + { + register char *pathname; + ++#ifdef __HAIKU__ ++ char path[B_PATH_NAME_LENGTH+B_FILE_NAME_LENGTH]; ++ dev_t volume = dev_for_path("/boot"); ++ if (find_directory(B_USER_SETTINGS_DIRECTORY, volume, true, path, sizeof(path)) != B_OK) ++ return (NULL); ++ ++ pathname = dirfile(&path, filename); ++ if (pathname != NULL) ++ return (pathname); ++#else + /* + * Try $HOME/filename. + */ + pathname = dirfile(lgetenv("HOME"), filename); + if (pathname != NULL) + return (pathname); ++#endif + #if OS2 + /* + * Try $INIT/filename. +diff -up less-436/less.h.orig less-436/less.h +--- less-436/less.h.orig 2010-01-01 16:27:31.000000000 -0700 ++++ less-436/less.h 2010-01-01 16:28:33.000000000 -0700 +@@ -94,6 +94,11 @@ + #include + #endif + ++#ifdef __HAIKU__ ++#include ++#include ++#endif ++ + #if MSDOS_COMPILER==WIN32C || OS2 + #include + #endif +diff -up less-436/lesskey.c.orig less-436/lesskey.c +--- less-436/lesskey.c.orig 2010-01-01 16:25:42.000000000 -0700 ++++ less-436/lesskey.c 2010-01-01 16:24:17.000000000 -0700 +@@ -244,8 +244,19 @@ homefile(filename) + char *p; + char *pathname; + ++#ifdef __HAIKU__ ++ char path[B_PATH_NAME_LENGTH+B_FILE_NAME_LENGTH]; ++ dev_t volume = dev_for_path("/boot"); ++ if (find_directory(B_USER_SETTINGS_DIRECTORY, volume, true, path, sizeof(path)) != B_OK) ++ return (NULL); ++ ++ pathname = mkpathname(&path, filename); ++ if (pathname != NULL) ++ return (pathname); ++#else + if ((p = getenv("HOME")) != NULL && *p != '\0') + pathname = mkpathname(p, filename); ++#endif + #if OS2 + else if ((p = getenv("INIT")) != NULL && *p != '\0') + pathname = mkpathname(p, filename);