diff options
author | B. Watson <yalhcru@gmail.com> | 2021-09-07 14:31:51 -0400 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2021-10-13 00:52:01 +0700 |
commit | 58a7d08fb7e849c988800c32e80e974b97799197 (patch) | |
tree | 5f3af0e15d3baa911164e5f45d341ced2c7d077e /development/tweak | |
parent | b4ea36ae6f68d119838c454a5fddea92b971f63a (diff) |
development/tweak: Updated for version 3.02+20200601.
Signed-off-by: B. Watson <yalhcru@gmail.com>
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'development/tweak')
-rw-r--r-- | development/tweak/20200601.diff | 1315 | ||||
-rw-r--r-- | development/tweak/README | 2 | ||||
-rw-r--r-- | development/tweak/slack-desc | 2 | ||||
-rw-r--r-- | development/tweak/tweak.SlackBuild | 20 | ||||
-rw-r--r-- | development/tweak/tweak.info | 2 |
5 files changed, 1331 insertions, 10 deletions
diff --git a/development/tweak/20200601.diff b/development/tweak/20200601.diff new file mode 100644 index 000000000000..2fc610999af8 --- /dev/null +++ b/development/tweak/20200601.diff @@ -0,0 +1,1315 @@ +diff -Naur tweak-3.02/actions.c tweak-3.02.patched/actions.c +--- tweak-3.02/actions.c 2016-03-22 17:12:51.000000000 -0400 ++++ tweak-3.02.patched/actions.c 2021-09-07 14:21:21.913810300 -0400 +@@ -112,11 +112,11 @@ + display_write_str (question); + display_refresh(); + } +- safe_update = TRUE; ++ safe_update = true; + #endif + c = display_getkey(); + #if defined(unix) && !defined(GO32) +- safe_update = FALSE; ++ safe_update = false; + #endif + if (c >= 'a' && c <= 'z') + c += 'A'-'a'; +@@ -130,32 +130,43 @@ + return; /* don't even quit */ + } + } +- finished = TRUE; ++ finished = true; + } + +-static void act_save(void) { +- static int backed_up = FALSE; ++static bool act_save_internal(void) { ++ static bool backed_up = false; + ++ if (look_mode) { ++ display_beep(); ++ strcpy (message, "Cannot save in LOOK mode!"); ++ return false; ++ } + if (!backed_up) { + if (!backup_file()) { + display_beep(); + strcpy (message, "Unable to back up file!"); +- return; ++ return false; + } +- backed_up = TRUE; ++ backed_up = true; + } + if (!save_file()) { + display_beep(); + strcpy (message, "Unable to save file!"); +- return; ++ return false; + } +- modified = FALSE; ++ modified = false; ++ return true; ++} ++ ++static void act_save(void) { ++ act_save_internal(); /* just discard the bool return value */ + } + + static void act_exitsave(void) { +- act_save(); +- draw_scr(); /* update ** on status line */ +- act_exit(); ++ if (act_save_internal()) { ++ draw_scr(); /* update ** on status line */ ++ act_exit(); ++ } + } + + static void act_top (void) { +@@ -294,7 +305,7 @@ + display_beep(); + sprintf(message, "Can't engage Insert mode when in %s mode", + (look_mode ? "LOOK" : "FIX")); +- insert_mode = FALSE; /* safety! */ ++ insert_mode = false; /* safety! */ + } else + insert_mode = !insert_mode; + } +@@ -307,7 +318,7 @@ + } + + void act_self_ins(void) { +- int insert = insert_mode; ++ bool insert = insert_mode; + unsigned char c; + + if (look_mode) { +@@ -352,17 +363,17 @@ + buf_fetch_data(filedata, &c, 1, cur_pos); + c &= 0xF0; + c |= last_char; +- insert = FALSE; ++ insert = false; + break; + } + + if (insert) { + buf_insert_data(filedata, &c, 1, cur_pos); + file_size++; +- modified = TRUE; ++ modified = true; + } else if (cur_pos < file_size) { + buf_overwrite_data(filedata, &c, 1, cur_pos); +- modified = TRUE; ++ modified = true; + } else { + display_beep(); + strcpy(message, "End of file reached"); +@@ -379,7 +390,7 @@ + buf_delete (filedata, 1, cur_pos); + file_size--; + edit_type = !!edit_type; +- modified = TRUE; ++ modified = true; + } + } + +@@ -391,7 +402,7 @@ + buf_delete (filedata, 1, cur_pos); + file_size--; + edit_type = !!edit_type; +- modified = TRUE; ++ modified = true; + } + } + +@@ -399,7 +410,7 @@ + if (look_mode) { + display_beep(); + strcpy (message, "Can't cut or paste in LOOK mode"); +- marking = FALSE; /* safety */ ++ marking = false; /* safety */ + return; + } + marking = !marking; +@@ -435,8 +446,8 @@ + if (top_pos > cur_pos) + top_pos = begline(cur_pos); + edit_type = !!edit_type; +- modified = TRUE; +- marking = FALSE; ++ modified = true; ++ marking = false; + } + + static void act_copy (void) { +@@ -456,7 +467,7 @@ + if (cutbuffer) + buf_free (cutbuffer); + cutbuffer = buf_copy (filedata, marksize, marktop); +- marking = FALSE; ++ marking = false; + } + + static void act_paste (void) { +@@ -475,7 +486,7 @@ + file_size -= cutsize; + } + buf_paste (filedata, cutbuffer, cur_pos); +- modified = TRUE; ++ modified = true; + cur_pos += cutsize; + file_size += cutsize; + edit_type = !!edit_type; +@@ -494,9 +505,9 @@ + static void act_goto (void) { + char buffer[80]; + fileoffset_t position, new_top; +- int error; ++ bool error; + +- if (!get_str("Enter position to go to: ", buffer, FALSE)) ++ if (!get_str("Enter position to go to: ", buffer, false)) + return; /* user break */ + + position = parse_num (buffer, &error); +@@ -531,16 +542,16 @@ + statfmt = decstatus; + } + +-static int search_prompt(char *withdef, char *withoutdef) ++static bool search_prompt(char *withdef, char *withoutdef) + { + char buffer[80]; + int len; + +- if (!get_str(last_search ? withdef : withoutdef, buffer, TRUE)) +- return 0; /* user break */ ++ if (!get_str(last_search ? withdef : withoutdef, buffer, true)) ++ return false; /* user break */ + if (!last_search && !*buffer) { + strcpy (message, "Search aborted."); +- return 0; ++ return false; + } + + if (!*buffer) { +@@ -550,14 +561,14 @@ + if (len == -1) { + display_beep(); + strcpy (message, "Invalid escape sequence in search string"); +- return 0; ++ return false; + } + if (last_search) + free_search(last_search); + last_search = build_search (buffer, len); + } + +- return 1; ++ return true; + } + + static void act_search (void) { +@@ -660,10 +671,10 @@ + char prompt[80]; + fileoffset_t w; + fileoffset_t new_top; +- int error; ++ bool error; + + sprintf (prompt, "Enter screen width in bytes (now %"OFF"d): ", width); +- if (!get_str (prompt, buffer, FALSE)) ++ if (!get_str (prompt, buffer, false)) + return; + w = parse_num (buffer, &error); + if (error) { +@@ -686,11 +697,11 @@ + char prompt[80]; + fileoffset_t o; + fileoffset_t new_top; +- int error; ++ bool error; + + sprintf (prompt, "Enter start-of-file offset in bytes (now %"OFF"d): ", + realoffset); +- if (!get_str (prompt, buffer, FALSE)) ++ if (!get_str (prompt, buffer, false)) + return; + o = parse_num (buffer, &error); + if (error) { +diff -Naur tweak-3.02/btree.c tweak-3.02.patched/btree.c +--- tweak-3.02/btree.c 2016-03-22 17:12:51.000000000 -0400 ++++ tweak-3.02.patched/btree.c 2021-09-07 14:21:21.902810301 -0400 +@@ -47,7 +47,7 @@ + * - user-supplied copy function. + * - bt_add when element already exists. + * - bt_del when element doesn't. +- * - splitpos with before==TRUE. ++ * - splitpos with before==true. + * - split() on sorted elements (but it should be fine). + * - bt_replace, at all (it won't be useful until we get user read + * properties). +@@ -162,13 +162,6 @@ + free(p); + } + +-#ifndef FALSE +-#define FALSE 0 +-#endif +-#ifndef TRUE +-#define TRUE 1 +-#endif +- + /* We could probably do with more compiler-specific branches of this #if. */ + #if defined(__GNUC__) + #define INLINE __inline +@@ -274,7 +267,7 @@ + /* + * Determine whether a node is a leaf node or not. + */ +-static INLINE int bt_is_leaf(btree *bt, nodeptr n) ++static INLINE bool bt_is_leaf(btree *bt, nodeptr n) + { + return n[0].na.p == NULL; + } +@@ -292,7 +285,7 @@ + #else + memset((char *)ret + bt->propoffset, 0, bt->propsize); + #endif +- testlock(TRUE, TRUE, ret); ++ testlock(true, true, ret); + return ret; + } + +@@ -301,7 +294,7 @@ + */ + static INLINE void bt_destroy_node(btree *bt, nodeptr n) + { +- testlock(TRUE, FALSE, n); ++ testlock(true, false, n); + /* Free the property. */ + bt->propmerge(bt->userstate, NULL, NULL, n + bt->maxdegree * 2 + 2); + sfree(n); +@@ -312,8 +305,8 @@ + */ + static INLINE nodeptr bt_reuse_node(btree *bt, nodeptr n, int nsubtrees) + { +- testlock(TRUE, FALSE, n); +- testlock(TRUE, TRUE, n); ++ testlock(true, false, n); ++ testlock(true, true, n); + n[bt->maxdegree*2-1].i = nsubtrees; + return n; + } +@@ -405,10 +398,10 @@ + if (addr.p && addr.p[bt->maxdegree*2+1].i > 1) { + nodeptr clone = bt_clone_node(bt, addr.p); + bt_set_child(bt, a, index, bt_node_addr(bt, clone)); +- testlock(TRUE, TRUE, clone); ++ testlock(true, true, clone); + return clone; + } +- testlock(TRUE, TRUE, addr.p); ++ testlock(true, true, addr.p); + return addr.p; + } + static INLINE nodeptr bt_write_lock_root(btree *bt) +@@ -417,21 +410,21 @@ + if (addr.p && addr.p[bt->maxdegree*2+1].i > 1) { + nodeptr clone = bt_clone_node(bt, addr.p); + bt->root = bt_node_addr(bt, clone); +- testlock(TRUE, TRUE, clone); ++ testlock(true, true, clone); + return clone; + } +- testlock(TRUE, TRUE, addr.p); ++ testlock(true, true, addr.p); + return addr.p; + } + static INLINE nodeptr bt_read_lock(btree *bt, node_addr a) + { +- testlock(FALSE, TRUE, a.p); ++ testlock(false, true, a.p); + return a.p; + } + #define bt_read_lock_root(bt) (bt_read_lock(bt, (bt)->root)) + #define bt_read_lock_child(bt,a,index) (bt_read_lock(bt,bt_child(bt,a,index))) + +-static INLINE void bt_write_relock(btree *bt, nodeptr n, int props) ++static INLINE void bt_write_relock(btree *bt, nodeptr n, bool props) + { + int i, ns, count; + +@@ -443,8 +436,8 @@ + for (i = 0; i < ns; i++) + count += bt_child_count(bt, n, i); + n[bt->maxdegree*2].i = count; +- testlock(TRUE, FALSE, n); +- testlock(TRUE, TRUE, n); ++ testlock(true, false, n); ++ testlock(true, true, n); + + /* + * Update user read properties. +@@ -477,13 +470,13 @@ + } + + static INLINE node_addr bt_write_unlock_internal(btree *bt, nodeptr n, +- int props) ++ bool props) + { + node_addr ret; + + bt_write_relock(bt, n, props); + +- testlock(TRUE, FALSE, n); ++ testlock(true, false, n); + + ret.p = n; + return ret; +@@ -491,7 +484,7 @@ + + static INLINE node_addr bt_write_unlock(btree *bt, nodeptr n) + { +- return bt_write_unlock_internal(bt, n, TRUE); ++ return bt_write_unlock_internal(bt, n, true); + } + + static INLINE void bt_read_unlock(btree *bt, nodeptr n) +@@ -500,7 +493,7 @@ + * For trees in memory, we do nothing here, except run some + * optional testing. + */ +- testlock(FALSE, FALSE, n); ++ testlock(false, false, n); + } + + /* ---------------------------------------------------------------------- +@@ -594,14 +587,14 @@ + * searching for that element. + * + * Return value is either the index of the element, or the index of +- * the subtree (both 0 upwards). `is_elt' returns FALSE or TRUE ++ * the subtree (both 0 upwards). `is_elt' returns false or true + * respectively. + * + * Since this may be used by bt_find() with an alternative cmpfn_t, + * we always pass the input element as the first argument to cmp. + */ + static int bt_lookup_cmp(btree *bt, nodeptr n, bt_element_t element, +- cmpfn_t cmp, int *is_elt) ++ cmpfn_t cmp, bool *is_elt) + { + int mintree = 0, maxtree = bt_subtrees(bt, n)-1; + +@@ -610,7 +603,7 @@ + int c = cmp(bt->userstate, element, bt_element(bt, n, elt)); + + if (c == 0) { +- *is_elt = TRUE; ++ *is_elt = true; + return elt; + } else if (c < 0) { + /* +@@ -634,7 +627,7 @@ + * to search next. + */ + assert(mintree == maxtree); +- *is_elt = FALSE; ++ *is_elt = false; + return mintree; + } + +@@ -986,7 +979,8 @@ + int relation, int *index) + { + nodeptr n, n2; +- int child, is_elt; ++ int child; ++ bool is_elt; + bt_element_t gotit; + int pos = 0; + +@@ -1083,7 +1077,8 @@ + int *index) + { + nodeptr n, n2; +- int i, j, count, is_elt; ++ int i, j, count; ++ bool is_elt; + void **props; + int *counts; + bt_element_t *elts; +@@ -1294,7 +1289,8 @@ + bt_element_t bt_add(btree *bt, bt_element_t element) + { + nodeptr n, n2; +- int child, is_elt; ++ int child; ++ bool is_elt; + int pos = 0; + + n = bt_read_lock_root(bt); +@@ -1322,7 +1318,8 @@ + { + nodeptr n, c, c2, saved_n; + nodeptr *nodes; +- int nnodes, child, nroot, pos2, ends, st, splitpoint, saved_pos; ++ int nnodes, child, pos2, ends, st, splitpoint, saved_pos; ++ bool nroot; + bt_element_t e, ret; + + /* +@@ -1334,7 +1331,7 @@ + nnodes = 0; + + n = bt_write_lock_root(bt); +- nroot = TRUE; ++ nroot = true; + saved_n = NULL; + + if (!n || pos < 0 || pos >= bt_node_count(bt, n)) { +@@ -1405,7 +1402,7 @@ + bt_shift_root(bt, n, bt_node_addr(bt, c)); + nnodes--; /* don't leave it in nodes[]! */ + n = NULL; +- bt_write_relock(bt, c, TRUE); ++ bt_write_relock(bt, c, true); + } else + bt_write_unlock(bt, c); + } else { +@@ -1422,7 +1419,7 @@ + + if (n) { + /* Recompute the counts in n so we can do lookups again. */ +- bt_write_relock(bt, n, TRUE); ++ bt_write_relock(bt, n, true); + + /* Having done the transform, redo the position lookup. */ + pos = pos2; +@@ -1485,7 +1482,7 @@ + + /* Descend to the child and go round again. */ + n = c; +- nroot = FALSE; ++ nroot = false; + } + + /* +@@ -1725,7 +1722,7 @@ + * Perform the healing process after a tree has been split. `rhs' + * is set if the cut edge is the one on the right. + */ +-static void bt_split_heal(btree *bt, int rhs) ++static void bt_split_heal(btree *bt, bool rhs) + { + nodeptr n; + nodeptr *nodes; +@@ -1881,15 +1878,15 @@ + * which will sort all that out for us. + */ + while (nnodes-- > 0) { +- bt_write_unlock_internal(bt1, lnodes[nnodes], FALSE); +- bt_write_unlock_internal(bt2, rnodes[nnodes], FALSE); ++ bt_write_unlock_internal(bt1, lnodes[nnodes], false); ++ bt_write_unlock_internal(bt2, rnodes[nnodes], false); + } + + /* + * Then we make a healing pass down each side of the tree. + */ +- bt_split_heal(bt1, TRUE); +- bt_split_heal(bt2, FALSE); ++ bt_split_heal(bt1, true); ++ bt_split_heal(bt2, false); + + ifree(lnodes); + ifree(rnodes); +@@ -1900,7 +1897,7 @@ + /* + * Split a tree at a numeric index. + */ +-btree *bt_splitpos(btree *bt, int index, int before) ++btree *bt_splitpos(btree *bt, int index, bool before) + { + btree *ret; + node_addr na; +@@ -1932,15 +1929,16 @@ + */ + btree *bt_split(btree *bt, bt_element_t element, cmpfn_t cmp, int rel) + { +- int before, index; ++ bool before; ++ int index; + + assert(rel != BT_REL_EQ); /* has to be an inequality */ + + if (rel == BT_REL_GT || rel == BT_REL_GE) { +- before = TRUE; ++ before = true; + rel = (rel == BT_REL_GT ? BT_REL_LE : BT_REL_LT); + } else { +- before = FALSE; ++ before = false; + } + if (!bt_findrelpos(bt, element, cmp, rel, &index)) + index = -1; +@@ -1979,7 +1977,7 @@ + n = bt_read_lock_root(bt); + i = bt_subtrees(bt, n); + bt_read_unlock(bt, n); +- return (i == 2 ? TRUE : FALSE); ++ return (i == 2 ? true : false); + } + + /* +@@ -2394,7 +2392,7 @@ + printf("splittest: %d\n", i); + tree3 = BT_COPY(tree); + testlock(-1, 0, NULL); +- tree4 = bt_splitpos(tree3, i, 0); ++ tree4 = bt_splitpos(tree3, i, false); + testlock(-1, 0, NULL); + verifytree(tree3, array, i); + verifytree(tree4, array+i, arraylen-i); +diff -Naur tweak-3.02/btree.h tweak-3.02.patched/btree.h +--- tweak-3.02/btree.h 2016-03-22 17:12:51.000000000 -0400 ++++ tweak-3.02.patched/btree.h 2021-09-07 14:21:21.903810301 -0400 +@@ -31,6 +31,7 @@ + #define BTREE_H + + #include <stddef.h> /* for offsetof */ ++#include <stdbool.h> + + #ifndef alignof + #define alignof(typ) ( offsetof(struct { char c; typ t; }, t) ) +@@ -47,7 +48,7 @@ + typedef void (*propmergefn_t)(void *state, void *s1, void *s2, void *dest); + typedef int (*searchfn_t)(void *tstate, void *sstate, int ntrees, + void **props, int *counts, +- bt_element_t *elts, int *is_elt); ++ bt_element_t *elts, bool *is_elt); + + enum { + BT_REL_EQ, BT_REL_LT, BT_REL_LE, BT_REL_GT, BT_REL_GE +@@ -77,7 +78,7 @@ + bt_element_t bt_del(btree *bt, bt_element_t element); + btree *bt_join(btree *bt1, btree *bt2); + btree *bt_joinr(btree *bt1, btree *bt2); +-btree *bt_splitpos(btree *bt, int index, int before); ++btree *bt_splitpos(btree *bt, int index, bool before); + btree *bt_split(btree *bt, bt_element_t element, cmpfn_t cmp, int rel); + + #endif /* BTREE_H */ +diff -Naur tweak-3.02/buffer.c tweak-3.02.patched/buffer.c +--- tweak-3.02/buffer.c 2016-03-22 17:12:51.000000000 -0400 ++++ tweak-3.02.patched/buffer.c 2021-09-07 14:21:21.917810299 -0400 +@@ -3,6 +3,7 @@ + #include <stdio.h> + #include <stdlib.h> + #include <string.h> ++#include <errno.h> + #include <ctype.h> + #include <assert.h> + +@@ -112,7 +113,7 @@ + + static int bufblksearch(void *tstate, void *sstate, int ntrees, + void **props, int *counts, +- bt_element_t *elts, int *is_elt) ++ bt_element_t *elts, bool *is_elt) + { + fileoffset_t *disttogo = (fileoffset_t *)sstate; + fileoffset_t distsofar = 0; +@@ -128,7 +129,7 @@ + /* + * Descend into this subtree. + */ +- *is_elt = FALSE; ++ *is_elt = false; + return i; + } + +@@ -142,7 +143,7 @@ + * Select this element. + */ + *disttogo -= distsofar; +- *is_elt = TRUE; ++ *is_elt = true; + return i; + } + +@@ -164,6 +165,16 @@ + return index; + } + ++static void fread_check(void *buf, size_t size, FILE *fp) ++{ ++ if (fread(buf, 1, size, fp) != size) { ++ display_cleanup(); ++ fprintf(stderr, "Fatal error reading from file: %s\n", ++ strerror(errno)); ++ exit(1); ++ } ++} ++ + /* + * Convert a file-data block of size at most BUFMAX into a + * literal-data block. Returns the replacement block (the old one +@@ -179,7 +190,7 @@ + ret->filepos = 0; + ret->len = blk->len; + fseeko(blk->file->fp, blk->filepos, SEEK_SET); +- fread(ret->data, blk->len, 1, blk->file->fp); ++ fread_check(ret->data, blk->len, blk->file->fp); + + return ret; + } +@@ -298,7 +309,7 @@ + return index + 1; + } + +-static btree *buf_bt_split(btree *bt, fileoffset_t pos, int before) ++static btree *buf_bt_split(btree *bt, fileoffset_t pos, bool before) + { + int index = buf_bt_splitpoint(bt, pos); + return bt_splitpos(bt, index, before); +@@ -318,14 +329,14 @@ + + static void buf_insert_bt(buffer *buf, btree *bt, fileoffset_t pos) + { +- btree *right = buf_bt_split(buf->bt, pos, FALSE); ++ btree *right = buf_bt_split(buf->bt, pos, false); + buf->bt = buf_bt_join(buf->bt, bt); + buf->bt = buf_bt_join(buf->bt, right); + } + + static int bufblklensearch(void *tstate, void *sstate, int ntrees, + void **props, int *counts, +- bt_element_t *elts, int *is_elt) ++ bt_element_t *elts, bool *is_elt) + { + fileoffset_t *output = (fileoffset_t *)sstate; + fileoffset_t size = 0; +@@ -347,7 +358,7 @@ + *output = size; + + /* Actual return value doesn't matter */ +- *is_elt = TRUE; ++ *is_elt = true; + return 1; + } + +@@ -417,7 +428,7 @@ + + if (blk->file) { + fseeko(blk->file->fp, blk->filepos + poswithin, SEEK_SET); +- fread(data, thislen, 1, blk->file->fp); ++ fread_check(data, thislen, blk->file->fp); + } else { + memcpy(data, blk->data + poswithin, thislen); + } +@@ -473,8 +484,8 @@ + + extern void buf_delete(buffer *buf, fileoffset_t len, fileoffset_t pos) + { +- btree *left = buf_bt_split(buf->bt, pos, TRUE); +- btree *right = buf_bt_split(buf->bt, len, FALSE); ++ btree *left = buf_bt_split(buf->bt, pos, true); ++ btree *right = buf_bt_split(buf->bt, len, false); + + bt_free(buf->bt); + +@@ -490,8 +501,8 @@ + + extern buffer *buf_cut(buffer *buf, fileoffset_t len, fileoffset_t pos) + { +- btree *left = buf_bt_split(buf->bt, pos, TRUE); +- btree *right = buf_bt_split(buf->bt, len, FALSE); ++ btree *left = buf_bt_split(buf->bt, pos, true); ++ btree *right = buf_bt_split(buf->bt, len, false); + btree *ret = buf->bt; + + buf->bt = buf_bt_join(left, right); +@@ -501,8 +512,8 @@ + + extern buffer *buf_copy(buffer *buf, fileoffset_t len, fileoffset_t pos) + { +- btree *left = buf_bt_split(buf->bt, pos, TRUE); +- btree *right = buf_bt_split(buf->bt, len, FALSE); ++ btree *left = buf_bt_split(buf->bt, pos, true); ++ btree *right = buf_bt_split(buf->bt, len, false); + btree *ret = bt_clone(buf->bt); + + buf->bt = buf_bt_join(left, buf->bt); +diff -Naur tweak-3.02/curses.c tweak-3.02.patched/curses.c +--- tweak-3.02/curses.c 2016-03-22 17:12:51.000000000 -0400 ++++ tweak-3.02.patched/curses.c 2021-09-07 14:21:21.918810299 -0400 +@@ -61,7 +61,7 @@ + #define MAXCOLOURS 32 + int attrs[MAXCOLOURS]; + +-void display_define_colour(int colour, int fg, int bg, int reverse) ++void display_define_colour(int colour, int fg, int bg, bool reverse) + { + static int colours[8] = { + COLOR_BLACK, +@@ -117,24 +117,28 @@ + schedule_update(); + continue; + } ++ if (ret == ERR) { ++ /* A failure to read from standard input is fatal */ ++ exit(1); ++ } + return ret; + } + } + +-int display_input_to_flush(void) ++bool display_input_to_flush(void) + { + int ret; + if (last_getch != ERR) +- return TRUE; ++ return true; + + nodelay(stdscr, 1); + ret = getch(); + nodelay(stdscr, 0); + if (ret == ERR) +- return FALSE; ++ return false; + + last_getch = ret; +- return TRUE; ++ return true; + } + + void display_post_error(void) +diff -Naur tweak-3.02/keytab.c tweak-3.02.patched/keytab.c +--- tweak-3.02/keytab.c 2016-03-22 17:12:51.000000000 -0400 ++++ tweak-3.02.patched/keytab.c 2021-09-07 14:21:21.920810299 -0400 +@@ -61,16 +61,33 @@ + /* + * Format an ASCII code into a printable description of the key stroke. + */ +-static void strkey (char *s, int k) { +- k &= 255; /* force unsigned */ +- if (k==27) +- strcpy(s, " ESC"); +- else if (k<32 || k==127) +- sprintf(s, " ^%c", k ^ 64); +- else if (k<127) +- sprintf(s, " %c", k); +- else +- sprintf(s, " <0x%2X>", k); ++struct strkey_state { ++ char *s, *end; ++ bool truncated; ++}; ++static void strkey (struct strkey_state *sks, int k) { ++ char thisbuf[32]; ++ ++ if (sks->truncated) ++ return; ++ ++ if (sks->end - sks->s < 16) { ++ sks->truncated = true; ++ strcpy(thisbuf, " ..."); ++ } else { ++ k &= 255; /* force unsigned */ ++ if (k==27) ++ strcpy(thisbuf, " ESC"); ++ else if (k<32 || k==127) ++ sprintf(thisbuf, " ^%c", k ^ 64); ++ else if (k<127) ++ sprintf(thisbuf, " %c", k); ++ else ++ sprintf(thisbuf, " <0x%2X>", k); ++ } ++ ++ strcpy(sks->s, thisbuf); ++ sks->s += strlen(sks->s); + } + + /* +@@ -82,19 +99,25 @@ + #if defined(unix) && !defined(GO32) + if (update_required) + update(); +- safe_update = TRUE; ++ safe_update = true; + #endif + last_char = display_getkey(); + #if defined(unix) && !defined(GO32) +- safe_update = FALSE; ++ safe_update = false; + #endif + strcpy(message, "Unknown key sequence"); +- strkey(message+strlen(message), last_char); ++ ++ struct strkey_state sks; ++ sks.s = message + strlen(message); ++ sks.end = message + sizeof(message); ++ sks.truncated = false; ++ ++ strkey(&sks, last_char); + kt = base[(unsigned char) last_char]; + if (!kt) { + display_beep(); + while (display_input_to_flush()) +- strkey(message+strlen(message), display_getkey()); ++ strkey(&sks, display_getkey()); + return; + } + +@@ -102,18 +125,18 @@ + #if defined(unix) && !defined(GO32) + if (update_required) + update(); +- safe_update = TRUE; ++ safe_update = true; + #endif + last_char = display_getkey(); + #if defined(unix) && !defined(GO32) +- safe_update = FALSE; ++ safe_update = false; + #endif +- strkey(message+strlen(message), last_char); ++ strkey(&sks, last_char); + kt = kt->e.extended[(unsigned char) last_char]; + if (!kt) { + display_beep(); + while (display_input_to_flush()) +- strkey(message+strlen(message), display_getkey()); ++ strkey(&sks, display_getkey()); + return; + } + } +diff -Naur tweak-3.02/main.c tweak-3.02.patched/main.c +--- tweak-3.02/main.c 2016-03-22 17:12:51.000000000 -0400 ++++ tweak-3.02.patched/main.c 2021-09-07 14:21:21.903810301 -0400 +@@ -200,20 +200,20 @@ + char *pname; + char *filename = NULL; + buffer *filedata, *cutbuffer = NULL; +-int fix_mode = FALSE; +-int look_mode = FALSE; +-int eager_mode = FALSE; +-int insert_mode = FALSE; ++bool fix_mode = false; ++bool look_mode = false; ++bool eager_mode = false; ++bool insert_mode = false; + int edit_type = 1; /* 1,2 are hex digits, 0=ascii */ +-int finished = FALSE; +-int marking = FALSE; +-int modified = FALSE; +-int new_file = FALSE; /* shouldn't need initialisation - ++bool finished = false; ++bool marking = false; ++bool modified = false; ++bool new_file = false; /* shouldn't need initialisation - + * but let's not take chances :-) */ + fileoffset_t width = 16; + fileoffset_t realoffset = 0, offset = 16; + +-int ascii_enabled = TRUE; ++bool ascii_enabled = true; + + fileoffset_t file_size = 0, top_pos = 0, cur_pos = 0, mark_point = 0; + +@@ -284,13 +284,13 @@ + } + break; + case 'f': case 'F': +- fix_mode = TRUE; ++ fix_mode = true; + break; + case 'l': case 'L': +- look_mode = TRUE; ++ look_mode = true; + break; + case 'e': case 'E': +- eager_mode = TRUE; ++ eager_mode = true; + break; + case 'D': + write_default_rc(); +@@ -339,11 +339,11 @@ + "Width reduced to %"OFF"d to fit on the screen", width); + } + if (4*width+14 > display_cols) { +- ascii_enabled = FALSE; ++ ascii_enabled = false; + if (edit_type == 0) + edit_type = 1; /* force to hex mode */ + } else +- ascii_enabled = TRUE; ++ ascii_enabled = true; + offset = realoffset % width; + if (!offset) + offset = width; +@@ -358,11 +358,11 @@ + + display_setup(); + +- display_define_colour(COL_BUFFER, -1, -1, FALSE); +- display_define_colour(COL_SELECT, 0, 7, TRUE); +- display_define_colour(COL_STATUS, 11, 4, TRUE); +- display_define_colour(COL_ESCAPE, 9, 0, FALSE); +- display_define_colour(COL_INVALID, 11, 0, FALSE); ++ display_define_colour(COL_BUFFER, -1, -1, false); ++ display_define_colour(COL_SELECT, 0, 7, true); ++ display_define_colour(COL_STATUS, 11, 4, true); ++ display_define_colour(COL_ESCAPE, 9, 0, false); ++ display_define_colour(COL_INVALID, 11, 0, false); + + for (i=0; i<256; i++) { + sprintf(hex[i], "%02X", i); +@@ -412,7 +412,7 @@ + "opened %s (size %"OFF"d == 0x%"OFF"X).", + fname, file_size, file_size); + } +- new_file = FALSE; ++ new_file = false; + } else { + if (look_mode || fix_mode) { + fprintf(stderr, "%s: file %s not found, and %s mode active\n", +@@ -421,19 +421,19 @@ + } + filedata = buf_new_empty(); + snprintf(message, sizeof(message), "New file %s.", fname); +- new_file = TRUE; ++ new_file = true; + } + } + + /* +- * Save the file. Return TRUE on success, FALSE on error. ++ * Save the file. Return true on success, false on error. + */ +-int save_file (void) { ++bool save_file (void) { + FILE *fp; + fileoffset_t pos = 0; + + if (look_mode) +- return FALSE; /* do nothing! */ ++ return false; /* do nothing! */ + + if ( (fp = fopen (filename, "wb")) ) { + static char buffer[SAVE_BLKSIZ]; +@@ -446,25 +446,25 @@ + buf_fetch_data (filedata, buffer, size, pos); + if (size != fwrite (buffer, 1, size, fp)) { + fclose (fp); +- return FALSE; ++ return false; + } + pos += size; + } + } else +- return FALSE; ++ return false; + fclose (fp); +- return TRUE; ++ return true; + } + + /* + * Make a backup of the file, if such has not already been done. +- * Return TRUE on success, FALSE on error. ++ * Return true on success, false on error. + */ +-int backup_file (void) { ++bool backup_file (void) { + char backup_name[FILENAME_MAX]; + + if (new_file) +- return TRUE; /* unnecessary - pretend it's done */ ++ return true; /* unnecessary - pretend it's done */ + strcpy (backup_name, filename); + #if defined(unix) && !defined(GO32) + strcat (backup_name, ".bak"); +@@ -498,7 +498,7 @@ + int scrsize, scroff, llen, i, j; + fileoffset_t currpos; + fileoffset_t marktop, markbot; +- int mark; ++ bool mark; + char *p; + unsigned char c, *q; + char *linebuf; +@@ -657,15 +657,15 @@ + display_refresh (); + } + +-volatile int safe_update, update_required; ++volatile bool safe_update, update_required; + void update (void); + + /* +- * Get a string, in the "minibuffer". Return TRUE on success, FALSE ++ * Get a string, in the "minibuffer". Return true on success, false + * on break. Possibly syntax-highlight the entered string for + * backslash-escapes, depending on the "highlight" parameter. + */ +-int get_str (char *prompt, char *buf, int highlight) { ++bool get_str (char *prompt, char *buf, bool highlight) { + int maxlen = 79 - strlen(prompt); /* limit to 80 - who cares? :) */ + int len = 0; + int c; +@@ -702,17 +702,17 @@ + display_refresh(); + if (update_required) + update(); +- safe_update = TRUE; ++ safe_update = true; + c = display_getkey(); +- safe_update = FALSE; ++ safe_update = false; + if (c == 13 || c == 10) { + buf[len] = '\0'; +- return TRUE; ++ return true; + } else if (c == 27 || c == 7) { + display_beep(); + display_post_error(); + snprintf(message, sizeof(message), "User Break!"); +- return FALSE; ++ return false; + } + + if (c >= 32 && c <= 126) { +@@ -794,12 +794,12 @@ + if (safe_update) + update(); + else +- update_required = TRUE; ++ update_required = true; + } + +-fileoffset_t parse_num (char *buffer, int *error) { ++fileoffset_t parse_num (char *buffer, bool *error) { + if (error) +- *error = FALSE; ++ *error = false; + if (!buffer[strspn(buffer, "0123456789")]) { + /* interpret as decimal */ + return ATOOFF(buffer); +@@ -812,6 +812,6 @@ + } else { + return 0; + if (error) +- *error = TRUE; ++ *error = true; + } + } +diff -Naur tweak-3.02/rcfile.c tweak-3.02.patched/rcfile.c +--- tweak-3.02/rcfile.c 2016-03-22 17:12:51.000000000 -0400 ++++ tweak-3.02.patched/rcfile.c 2021-09-07 14:21:21.903810301 -0400 +@@ -146,7 +146,7 @@ + char rcbuffer[256]; + char rcname[FILENAME_MAX]; + int lineno = 0; +- int errors = FALSE, errors_here; ++ bool errors = false, errors_here; + + #if defined(unix) && !defined(GO32) + rcname[0] = '\0'; +@@ -200,7 +200,7 @@ + strcpy (rcbuffer, *p++); + } + lineno++; +- errors_here = FALSE; ++ errors_here = false; + + /* + * Now we have a line from the .rc file, wherever it's +@@ -242,7 +242,7 @@ + else { + fprintf(stderr, "%s: no key sequence after \"bind\" command" + " on line %d of "RCNAME, pname, lineno); +- errors = TRUE; ++ errors = true; + continue; + } + +@@ -255,8 +255,8 @@ + if (!*++q) { + fprintf(stderr, "%s: nothing follows `^' on line %d" + " of "RCNAME, pname, lineno); +- errors = TRUE; +- errors_here = TRUE; ++ errors = true; ++ errors_here = true; + } else { + *s++ = *q++ ^ 0x40; + } +@@ -264,8 +264,8 @@ + if (!*++q) { + fprintf(stderr, "%s: nothing follows `\\' on line %d" + " of "RCNAME, pname, lineno); +- errors = TRUE; +- errors_here = TRUE; ++ errors = true; ++ errors_here = true; + } else if (*q == '\\' || *q == '^') { + *s++ = *q++; + } else if (isxdigit((unsigned char)*q) && +@@ -278,8 +278,8 @@ + } else { + fprintf(stderr, "%s: badly formed `\\' sequence on" + " line %d of "RCNAME, pname, lineno); +- errors = TRUE; +- errors_here = TRUE; ++ errors = true; ++ errors_here = true; + } + } else + *s++ = *q++; +@@ -307,7 +307,7 @@ + fprintf(stderr, "%s: unrecognised key action \"%s\"" + " at line %d of "RCNAME"\n", + pname, r, lineno); +- errors = TRUE; ++ errors = true; + } + } else if (!strcmp(q, "width")) { + width = atoi(r); +@@ -317,7 +317,7 @@ + fprintf(stderr, "%s: unrecognised "RCNAME" directive \"%s\"" + " at line %d of "RCNAME"\n", + pname, q, lineno); +- errors = TRUE; ++ errors = true; + } + } + if (errors) +diff -Naur tweak-3.02/slang.c tweak-3.02.patched/slang.c +--- tweak-3.02/slang.c 2016-03-22 17:12:51.000000000 -0400 ++++ tweak-3.02.patched/slang.c 2021-09-07 14:21:21.918810299 -0400 +@@ -69,7 +69,7 @@ + exit (1); + } + SLang_set_abort_signal (NULL); +- SLtt_Use_Ansi_Colors = TRUE; ++ SLtt_Use_Ansi_Colors = true; + + get_screen_size (); + if (SLsmg_init_smg () < 0) { +@@ -109,7 +109,7 @@ + SLsmg_write_nchars(str, len); + } + +-void display_define_colour(int colour, int fg, int bg, int reverse) ++void display_define_colour(int colour, int fg, int bg, bool reverse) + { + static char *colours[16] = { + "black", "red", "green", "brown", +@@ -142,10 +142,15 @@ + + int display_getkey(void) + { +- return SLang_getkey(); ++ int key = SLang_getkey(); ++ if (key == SLANG_GETKEY_ERROR) { ++ /* A failure to read from standard input is fatal */ ++ exit(1); ++ } ++ return key; + } + +-int display_input_to_flush(void) ++bool display_input_to_flush(void) + { + return SLang_input_pending(0); + } +@@ -153,7 +158,7 @@ + void display_post_error(void) + { + SLKeyBoard_Quit = 0; +- SLang_Error = 0; ++ SLang_set_error (0); + } + + void display_recheck_size(void) +diff -Naur tweak-3.02/tweak.h tweak-3.02.patched/tweak.h +--- tweak-3.02/tweak.h 2016-03-22 17:12:51.000000000 -0400 ++++ tweak-3.02.patched/tweak.h 2021-09-07 14:21:21.903810301 -0400 +@@ -16,12 +16,7 @@ + + #endif + +-#ifndef FALSE +-#define FALSE 0 +-#endif +-#ifndef TRUE +-#define TRUE 1 +-#endif ++#include <stdbool.h> + + #define EVER ;; + +@@ -80,23 +75,25 @@ + extern char decstatus[], hexstatus[], *statfmt; + extern char last_char, *pname, *filename; + extern buffer *filedata, *cutbuffer; +-extern int fix_mode, look_mode, insert_mode, edit_type, finished, marking; ++extern bool fix_mode, look_mode, insert_mode, finished, marking; ++extern int edit_type; + extern fileoffset_t file_size, top_pos, cur_pos, mark_point; +-extern int scrlines, modified, new_file; ++extern int scrlines; ++extern bool modified, new_file; + extern fileoffset_t width, offset, realoffset; +-extern int ascii_enabled; ++extern bool ascii_enabled; + + #ifdef unix +-extern volatile int safe_update, update_required; ++extern volatile bool safe_update, update_required; + extern void update (void); + #endif + + extern void fix_offset(void); +-extern fileoffset_t parse_num (char *buffer, int *error); ++extern fileoffset_t parse_num (char *buffer, bool *error); + + extern void draw_scr (void); +-extern int backup_file (void); +-extern int save_file (void); ++extern bool backup_file (void); ++extern bool save_file (void); + + extern void act_self_ins (void); + extern keyact parse_action (char *); +@@ -107,7 +104,7 @@ + extern Search *build_search (char *, int); + void free_search(Search *s); + +-extern int get_str (char *, char *, int); ++extern bool get_str (char *, char *, bool); + extern int parse_quoted (char *); + extern void suspend (void); + +@@ -137,11 +134,11 @@ + extern void display_refresh(void); + extern void display_write_str(char *str); + extern void display_write_chars(char *str, int len); +-extern void display_define_colour(int colour, int fg, int bg, int reverse); ++extern void display_define_colour(int colour, int fg, int bg, bool reverse); + extern void display_set_colour(int colour); + extern void display_clear_to_eol(void); + extern int display_getkey(void); +-extern int display_input_to_flush(void); ++extern bool display_input_to_flush(void); + extern void display_post_error(void); + extern void display_recheck_size(void); + diff --git a/development/tweak/README b/development/tweak/README index 532a13c0c9e6..f98032f016d6 100644 --- a/development/tweak/README +++ b/development/tweak/README @@ -1,4 +1,4 @@ -tweak (ncurses-based hex editor) +tweak (ncurses-based hex editor, with emacs-like keybindings) Tweak is a hex editor. It allows you to edit a file at very low level, letting you see the full and exact binary contents of the file. It can diff --git a/development/tweak/slack-desc b/development/tweak/slack-desc index a86c02490916..a30395cc3f74 100644 --- a/development/tweak/slack-desc +++ b/development/tweak/slack-desc @@ -6,7 +6,7 @@ # customary to leave one space after the ':' except on otherwise blank lines. |-----handy-ruler------------------------------------------------------| -tweak: tweak (ncurses-based hex editor) +tweak: tweak (ncurses-based hex editor, with emacs-like keybindings) tweak: tweak: Tweak is a hex editor. It allows you to edit a file at very low tweak: level, letting you see the full and exact binary contents of the diff --git a/development/tweak/tweak.SlackBuild b/development/tweak/tweak.SlackBuild index 20af16d924ae..ac63a2427c23 100644 --- a/development/tweak/tweak.SlackBuild +++ b/development/tweak/tweak.SlackBuild @@ -6,10 +6,14 @@ # Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. +# 20210907 bkw: update for v3.02+20200601 (git commit ad97e13), +# which has a few bugfixes. The patch does *not* include the last git +# commit, d131fe2, which switches from a plain Makefile to autotools. + cd $(dirname $0) ; CWD=$(pwd) PRGNAM=tweak -VERSION=${VERSION:-3.02} +VERSION=${VERSION:-3.02+20200601} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} @@ -22,9 +26,6 @@ if [ -z "$ARCH" ]; then esac fi -# If the variable PRINT_PACKAGE_NAME is set, then this script will report what -# the name of the created package would be, and then exit. This information -# could be useful to other scripts. if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" exit 0 @@ -50,15 +51,20 @@ fi set -e +TARVER=${VERSION/+*} +PATCH=${VERSION/*+} + rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP -rm -rf $PRGNAM-$VERSION -tar xvf $CWD/$PRGNAM-$VERSION.tar.gz -cd $PRGNAM-$VERSION +rm -rf $PRGNAM-$TARVER +tar xvf $CWD/$PRGNAM-$TARVER.tar.gz +cd $PRGNAM-$TARVER chown -R root:root . chmod 644 * +[ "$PATCH" != "$VERSION" ] && patch -p1 < $CWD/$PATCH.diff + make XFLAGS="$SLKCFLAGS" install -D -s -m0755 $PRGNAM $PKG/usr/bin/$PRGNAM mkdir -p $PKG/usr/man/man1 diff --git a/development/tweak/tweak.info b/development/tweak/tweak.info index 96d13aaafdf5..3759a9378dc1 100644 --- a/development/tweak/tweak.info +++ b/development/tweak/tweak.info @@ -1,5 +1,5 @@ PRGNAM="tweak" -VERSION="3.02" +VERSION="3.02+20200601" HOMEPAGE="https://www.chiark.greenend.org.uk/~sgtatham/tweak/" DOWNLOAD="https://www.chiark.greenend.org.uk/~sgtatham/tweak/tweak-3.02.tar.gz" MD5SUM="d50e20d9ed05d7cc5eb04ff3f0bf1d9b" |