diff options
author | Mike Frysinger <vapier@gentoo.org> | 2003-10-25 05:32:49 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2003-10-25 05:32:49 +0000 |
commit | 1f3090974569838b47a9fa38889a1182073805af (patch) | |
tree | e0be4bd7246c29600e0db3b34482cc8945992acd /app-editors | |
parent | bumped to stable (diff) | |
download | gentoo-2-1f3090974569838b47a9fa38889a1182073805af.tar.gz gentoo-2-1f3090974569838b47a9fa38889a1182073805af.tar.bz2 gentoo-2-1f3090974569838b47a9fa38889a1182073805af.zip |
wsconvert patch
Diffstat (limited to 'app-editors')
-rw-r--r-- | app-editors/nano/files/1.3.0-wsconvert.patch | 197 | ||||
-rw-r--r-- | app-editors/nano/nano-1.3.0.ebuild | 8 |
2 files changed, 204 insertions, 1 deletions
diff --git a/app-editors/nano/files/1.3.0-wsconvert.patch b/app-editors/nano/files/1.3.0-wsconvert.patch new file mode 100644 index 000000000000..d56067c21237 --- /dev/null +++ b/app-editors/nano/files/1.3.0-wsconvert.patch @@ -0,0 +1,197 @@ +diff -ur nano-1.3.0.orig/doc/nanorc.sample nano-1.3.0/doc/nanorc.sample +--- nano-1.3.0.orig/doc/nanorc.sample 2003-10-25 01:13:28.280054984 -0400 ++++ nano-1.3.0/doc/nanorc.sample 2003-10-25 01:16:13.805891232 -0400 +@@ -86,6 +86,16 @@ + ## Use this tab size instead of the default; it must be greater than 0 + # set tabsize 8 + ++## Use this tab char instead of the default space; it can either be the ++## ascii value of the character you wish to see (refer to ascii(7)) or ++## it can be a single character. 187 seems to be a 'good' value. ++# set tabconvert 32 ++## Same as tabconverting above, but applied to spaces. ++## it can be a single character. 183 seems to be a 'good' value. ++# set spaceconvert 32 ++## Finally, you can toggle whitespace converting with this ++# set wsconvert ++ + ## Save automatically on exit, don't prompt + # set tempfile + +diff -ur nano-1.3.0.orig/src/global.c nano-1.3.0/src/global.c +--- nano-1.3.0.orig/src/global.c 2003-10-25 01:13:28.287053920 -0400 ++++ nano-1.3.0/src/global.c 2003-10-25 01:14:47.756972656 -0400 +@@ -84,6 +84,9 @@ + int tabsize = -1; /* Our internal tabsize variable. The + default value 8 is set in main(). */ + ++int tabconvert = ' '; ++int spaceconvert = ' '; ++ + char *hblank = NULL; /* A horizontal blank line */ + #ifndef DISABLE_HELP + char *help_text; /* The text in the help window */ +@@ -227,7 +230,7 @@ + char *toggle_const_msg, *toggle_autoindent_msg, *toggle_suspend_msg, + *toggle_nohelp_msg, *toggle_cuttoend_msg, + *toggle_noconvert_msg, *toggle_dos_msg, *toggle_mac_msg, +- *toggle_backup_msg, *toggle_smooth_msg; ++ *toggle_backup_msg, *toggle_smooth_msg, *toggle_wsconvert_msg; + #ifndef DISABLE_MOUSE + char *toggle_mouse_msg; + #endif +@@ -259,6 +262,7 @@ + toggle_mac_msg = _("Writing file in Mac format"); + toggle_backup_msg = _("Backing up file"); + toggle_smooth_msg = _("Smooth scrolling"); ++ toggle_wsconvert_msg = _("Whitespace converting"); + #ifdef ENABLE_COLOR + toggle_syntax_msg = _("Color syntax highlighting"); + #endif +@@ -273,6 +277,7 @@ + toggle_init_one(TOGGLE_AUTOINDENT_KEY, toggle_autoindent_msg, AUTOINDENT); + toggle_init_one(TOGGLE_SUSPEND_KEY, toggle_suspend_msg, SUSPEND); + toggle_init_one(TOGGLE_NOHELP_KEY, toggle_nohelp_msg, NO_HELP); ++ toggle_init_one(TOGGLE_WSCONVERT_KEY, toggle_wsconvert_msg, WS_CONVERT); + #ifndef DISABLE_WRAPPING + toggle_init_one(TOGGLE_WRAP_KEY, toggle_wrap_msg, NO_WRAP); + #endif +diff -ur nano-1.3.0.orig/src/nano.c nano-1.3.0/src/nano.c +--- nano-1.3.0.orig/src/nano.c 2003-10-25 01:13:28.288053768 -0400 ++++ nano-1.3.0/src/nano.c 2003-10-25 01:21:58.101550336 -0400 +@@ -3009,6 +3009,9 @@ + edit_refresh(); + break; + #endif ++ case TOGGLE_WSCONVERT_KEY: ++ edit_refresh(); ++ break; + } + + /* We are assuming here that shortcut_init() above didn't free and +diff -ur nano-1.3.0.orig/src/nano.h nano-1.3.0/src/nano.h +--- nano-1.3.0.orig/src/nano.h 2003-10-25 01:13:28.288053768 -0400 ++++ nano-1.3.0/src/nano.h 2003-10-25 01:15:49.714553672 -0400 +@@ -272,6 +272,7 @@ + #define HISTORY_CHANGED (1<<28) + #define HISTORYLOG (1<<29) + #define JUSTIFY_MODE (1<<30) ++#define WS_CONVERT (1<<31) + + /* Control key sequences, changing these would be very very bad */ + +@@ -427,6 +428,7 @@ + #define TOGGLE_MAC_KEY NANO_ALT_O + #define TOGGLE_SMOOTH_KEY NANO_ALT_S + #define TOGGLE_NOCONVERT_KEY NANO_ALT_N ++#define TOGGLE_WSCONVERT_KEY NANO_ALT_V + #define TOGGLE_BACKUP_KEY NANO_ALT_B + #define TOGGLE_SYNTAX_KEY NANO_ALT_Y + #endif /* !NANO_SMALL */ +diff -ur nano-1.3.0.orig/src/proto.h nano-1.3.0/src/proto.h +--- nano-1.3.0.orig/src/proto.h 2003-10-25 01:13:28.288053768 -0400 ++++ nano-1.3.0/src/proto.h 2003-10-25 01:16:41.660656664 -0400 +@@ -41,7 +41,7 @@ + extern long totsize; + extern int temp_opt; + extern int flags; +-extern int tabsize; ++extern int tabsize, tabconvert, spaceconvert; + extern int search_last_line; + extern int search_offscreen; + extern int currslen; +diff -ur nano-1.3.0.orig/src/rcfile.c nano-1.3.0/src/rcfile.c +--- nano-1.3.0.orig/src/rcfile.c 2003-10-25 01:13:28.288053768 -0400 ++++ nano-1.3.0/src/rcfile.c 2003-10-25 01:29:20.587282280 -0400 +@@ -60,6 +60,7 @@ + #endif + #ifndef NANO_SMALL + {"noconvert", NO_CONVERT}, ++ {"wsconvert", WS_CONVERT}, + #endif + {"nofollow", NOFOLLOW_SYMLINKS}, + {"nohelp", NO_HELP}, +@@ -85,6 +86,8 @@ + #endif + {"suspend", SUSPEND}, + {"tabsize", 0}, ++ {"tabconvert", ' '}, ++ {"spaceconvert", ' '}, + {"tempfile", TEMP_OPT}, + {"view", VIEW_MODE}, + {NULL, 0} +@@ -531,6 +534,8 @@ + #endif + if (set == 1) { + if (!strcasecmp(rcopts[i].name, "tabsize") ++ || !strcasecmp(rcopts[i].name, "tabconvert") ++ || !strcasecmp(rcopts[i].name, "spaceconvert") + #ifndef DISABLE_OPERATINGDIR + || !strcasecmp(rcopts[i].name, "operatingdir") + #endif +@@ -594,12 +599,30 @@ + * accept 0 while checking other + * errors. */ + j = (int)strtol(option, &first_error, 10); +- if (errno == ERANGE || *option == '\0' || *first_error != '\0') +- rcfile_error(_("Requested tab size %d invalid"), +- j); +- else +- tabsize = j; +- } ++ if (!strcasecmp(rcopts[i].name, "tabconvert")) { ++ if (errno == ERANGE || *first_error != '\0') { ++ if (*option == '\0') ++ rcfile_error(_("requested tab convert is invalid")); ++ else ++ tabconvert = option[0]; ++ } else ++ tabconvert = j; ++ } else if (!strcasecmp(rcopts[i].name, "spaceconvert")) { ++ if (errno == ERANGE || *first_error != '\0') { ++ if (*option == '\0') ++ rcfile_error(_("requested space convert is invalid")); ++ else ++ spaceconvert = option[0]; ++ } else ++ spaceconvert = j; ++ } else { ++ if (errno == ERANGE || *option == '\0' || *first_error != '\0') ++ rcfile_error(_("requested tab size %d invalid"), ++ j); ++ else ++ tabsize = j; ++ } ++ } + } else + SET(rcopts[i].flag); + #ifdef DEBUG +diff -ur nano-1.3.0.orig/src/winio.c nano-1.3.0/src/winio.c +--- nano-1.3.0.orig/src/winio.c 2003-10-25 01:13:28.289053616 -0400 ++++ nano-1.3.0/src/winio.c 2003-10-25 01:27:12.934688424 -0400 +@@ -471,11 +471,12 @@ + index = 0; + + for (; index < alloc_len; buf++) { +- if (*buf == '\t') +- do { ++ if (*buf == '\t') { ++ converted[index++] = (ISSET(WS_CONVERT) ? tabconvert : ' '); ++ while ((column + index) % tabsize) { + converted[index++] = ' '; +- } while ((column + index) % tabsize); +- else if (is_cntrl_char(*buf)) { ++ } ++ } else if (is_cntrl_char(*buf)) { + converted[index++] = '^'; + if (*buf == '\n') + /* Treat newlines embedded in a line as encoded nulls; +@@ -487,7 +488,7 @@ + else + converted[index++] = *buf + 64; + } else +- converted[index++] = *buf; ++ converted[index++] = (*buf==' '&&ISSET(WS_CONVERT)) ? spaceconvert : *buf; + } + assert(len <= alloc_len + column - start_col); + charmove(converted, converted + start_col - column, len); diff --git a/app-editors/nano/nano-1.3.0.ebuild b/app-editors/nano/nano-1.3.0.ebuild index 725dc0d09d9a..a2c8ef26db73 100644 --- a/app-editors/nano/nano-1.3.0.ebuild +++ b/app-editors/nano/nano-1.3.0.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2003 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-editors/nano/nano-1.3.0.ebuild,v 1.1 2003/10/25 05:06:18 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-editors/nano/nano-1.3.0.ebuild,v 1.2 2003/10/25 05:32:49 vapier Exp $ inherit eutils @@ -21,6 +21,12 @@ PROVIDE="virtual/editor" S=${WORKDIR}/${MY_P} +src_unpack() { + unpack ${A} + cd ${S} + epatch ${FILESDIR}/${PV}-wsconvert.patch +} + src_compile() { local myconf="" use build && myconf="${myconf} --disable-wrapping-as-root" |