projects
/
ncurses.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ncurses 6.0 - patch 20151017
[ncurses.git]
/
ncurses
/
tty
/
hashmap.c
diff --git
a/ncurses/tty/hashmap.c
b/ncurses/tty/hashmap.c
index 8ed2c3b4c09b887ec0ad6960c2ef48aac0917350..8c0fdfd83f5c21ccf6570aeb6af01060aead22e9 100644
(file)
--- a/
ncurses/tty/hashmap.c
+++ b/
ncurses/tty/hashmap.c
@@
-1,5
+1,5
@@
/****************************************************************************
/****************************************************************************
- * Copyright (c) 1998-20
07,2009
Free Software Foundation, Inc. *
+ * Copyright (c) 1998-20
14,2015
Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@
-73,19
+73,23
@@
AUTHOR
#define CUR SP_TERMTYPE
#endif
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: hashmap.c,v 1.6
1 2009/11/07 16:07:55
tom Exp $")
+MODULE_ID("$Id: hashmap.c,v 1.6
5 2015/07/25 20:13:56
tom Exp $")
#ifdef HASHDEBUG
# define _tracef printf
# undef TR
#ifdef HASHDEBUG
# define _tracef printf
# undef TR
+# ifdef TRACE
# define TR(n, a) if (_nc_tracing & (n)) { _tracef a ; putchar('\n'); }
# define TR(n, a) if (_nc_tracing & (n)) { _tracef a ; putchar('\n'); }
+# else
+# define TR(n, a) { _tracef a ; putchar('\n'); }
+# endif
# undef screen_lines
# undef screen_lines
-# define screen_lines MAXLINES
-# define TEXTWIDTH
1
+# define screen_lines
(sp)
MAXLINES
+# define TEXTWIDTH
(sp)
1
int oldnums[MAXLINES], reallines[MAXLINES];
int oldnums[MAXLINES], reallines[MAXLINES];
-static NCURSES_CH_T oldtext[MAXLINES][TEXTWIDTH];
-static NCURSES_CH_T newtext[MAXLINES][TEXTWIDTH];
+static NCURSES_CH_T oldtext[MAXLINES][TEXTWIDTH
(sp)
];
+static NCURSES_CH_T newtext[MAXLINES][TEXTWIDTH
(sp)
];
# define OLDNUM(sp,n) oldnums[n]
# define OLDTEXT(sp,n) oldtext[n]
# define NEWTEXT(sp,m) newtext[m]
# define OLDNUM(sp,n) oldnums[n]
# define OLDTEXT(sp,n) oldtext[n]
# define NEWTEXT(sp,m) newtext[m]
@@
-120,9
+124,11
@@
hash(SCREEN *sp, NCURSES_CH_T * text)
int i;
NCURSES_CH_T ch;
unsigned long result = 0;
int i;
NCURSES_CH_T ch;
unsigned long result = 0;
+ (void) sp;
+
for (i = TEXTWIDTH(sp); i > 0; i--) {
ch = *text++;
for (i = TEXTWIDTH(sp); i > 0; i--) {
ch = *text++;
- result += (result << 5) + HASH_VAL(ch);
+ result += (result << 5) +
(unsigned long)
HASH_VAL(ch);
}
return result;
}
}
return result;
}
@@
-133,6
+139,7
@@
update_cost(SCREEN *sp, NCURSES_CH_T * from, NCURSES_CH_T * to)
{
int cost = 0;
int i;
{
int cost = 0;
int i;
+ (void) sp;
for (i = TEXTWIDTH(sp); i > 0; i--, from++, to++)
if (!(CharEq(*from, *to)))
for (i = TEXTWIDTH(sp); i > 0; i--, from++, to++)
if (!(CharEq(*from, *to)))
@@
-147,6
+154,7
@@
update_cost_from_blank(SCREEN *sp, NCURSES_CH_T * to)
int cost = 0;
int i;
NCURSES_CH_T blank = blankchar;
int cost = 0;
int i;
NCURSES_CH_T blank = blankchar;
+ (void) sp;
if (back_color_erase)
SetPair(blank, GetPair(stdscr->_nc_bkgd));
if (back_color_erase)
SetPair(blank, GetPair(stdscr->_nc_bkgd));
@@
-163,7
+171,7
@@
update_cost_from_blank(SCREEN *sp, NCURSES_CH_T * to)
* effective. 'blank' indicates whether the line 'to' would become blank.
*/
static NCURSES_INLINE bool
* effective. 'blank' indicates whether the line 'to' would become blank.
*/
static NCURSES_INLINE bool
-cost_effective(SCREEN *sp, const int from, const int to, const
bool
blank)
+cost_effective(SCREEN *sp, const int from, const int to, const
int
blank)
{
int new_from;
{
int new_from;
@@
-282,7
+290,8
@@
NCURSES_SP_NAME(_nc_hash_map) (NCURSES_SP_DCL0)
if (screen_lines(SP_PARM) > lines_alloc(SP_PARM)) {
if (hashtab(SP_PARM))
free(hashtab(SP_PARM));
if (screen_lines(SP_PARM) > lines_alloc(SP_PARM)) {
if (hashtab(SP_PARM))
free(hashtab(SP_PARM));
- hashtab(SP_PARM) = typeMalloc(HASHMAP, (screen_lines(SP_PARM) + 1) * 2);
+ hashtab(SP_PARM) = typeMalloc(HASHMAP,
+ ((size_t) screen_lines(SP_PARM) + 1) * 2);
if (!hashtab(SP_PARM)) {
if (oldhash(SP_PARM)) {
FreeAndNull(oldhash(SP_PARM));
if (!hashtab(SP_PARM)) {
if (oldhash(SP_PARM)) {
FreeAndNull(oldhash(SP_PARM));
@@
-303,10
+312,10
@@
NCURSES_SP_NAME(_nc_hash_map) (NCURSES_SP_DCL0)
/* re-hash all */
if (oldhash(SP_PARM) == 0)
oldhash(SP_PARM) = typeCalloc(unsigned long,
/* re-hash all */
if (oldhash(SP_PARM) == 0)
oldhash(SP_PARM) = typeCalloc(unsigned long,
- (
unsigned
) screen_lines(SP_PARM));
+ (
size_t
) screen_lines(SP_PARM));
if (newhash(SP_PARM) == 0)
newhash(SP_PARM) = typeCalloc(unsigned long,
if (newhash(SP_PARM) == 0)
newhash(SP_PARM) = typeCalloc(unsigned long,
- (
unsigned
) screen_lines(SP_PARM));
+ (
size_t
) screen_lines(SP_PARM));
if (!oldhash(SP_PARM) || !newhash(SP_PARM))
return; /* malloc failure */
for (i = 0; i < screen_lines(SP_PARM); i++) {
if (!oldhash(SP_PARM) || !newhash(SP_PARM))
return; /* malloc failure */
for (i = 0; i < screen_lines(SP_PARM); i++) {
@@
-328,7
+337,8
@@
NCURSES_SP_NAME(_nc_hash_map) (NCURSES_SP_DCL0)
* Set up and count line-hash values.
*/
memset(hashtab(SP_PARM), '\0',
* Set up and count line-hash values.
*/
memset(hashtab(SP_PARM), '\0',
- sizeof(*(hashtab(SP_PARM))) * (screen_lines(SP_PARM) + 1) * 2);
+ sizeof(*(hashtab(SP_PARM)))
+ * ((size_t) screen_lines(SP_PARM) + 1) * 2);
for (i = 0; i < screen_lines(SP_PARM); i++) {
unsigned long hashval = oldhash(SP_PARM)[i];
for (i = 0; i < screen_lines(SP_PARM); i++) {
unsigned long hashval = oldhash(SP_PARM)[i];
@@
-433,7
+443,7
@@
NCURSES_SP_NAME(_nc_scroll_oldhash) (NCURSES_SP_DCLx int n, int top, int bot)
if (!oldhash(SP_PARM))
return;
if (!oldhash(SP_PARM))
return;
- size = sizeof(*(oldhash(SP_PARM))) * (bot - top + 1 - abs(n));
+ size = sizeof(*(oldhash(SP_PARM))) * (
size_t) (
bot - top + 1 - abs(n));
if (n > 0) {
memmove(oldhash(SP_PARM) + top, oldhash(SP_PARM) + top + n, size);
for (i = bot; i > bot - n; i--)
if (n > 0) {
memmove(oldhash(SP_PARM) + top, oldhash(SP_PARM) + top + n, size);
for (i = bot; i > bot - n; i--)
@@
-484,13
+494,13
@@
main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
return EXIT_FAILURE;
(void) _nc_alloc_screen();
return EXIT_FAILURE;
(void) _nc_alloc_screen();
- for (n = 0; n < screen_lines; n++) {
+ for (n = 0; n < screen_lines
(sp)
; n++) {
reallines[n] = n;
oldnums[n] = _NEWINDEX;
CharOf(oldtext[n][0]) = CharOf(newtext[n][0]) = '.';
}
reallines[n] = n;
oldnums[n] = _NEWINDEX;
CharOf(oldtext[n][0]) = CharOf(newtext[n][0]) = '.';
}
- if (
isatty
(fileno(stdin)))
+ if (
NC_ISATTY
(fileno(stdin)))
usage();
#ifdef TRACE
usage();
#ifdef TRACE
@@
-507,7
+517,7
@@
main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
break;
case 'l': /* get initial line number vector */
break;
case 'l': /* get initial line number vector */
- for (n = 0; n < screen_lines; n++) {
+ for (n = 0; n < screen_lines
(sp)
; n++) {
reallines[n] = n;
oldnums[n] = _NEWINDEX;
}
reallines[n] = n;
oldnums[n] = _NEWINDEX;
}
@@
-520,9
+530,9
@@
main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
break;
case 'n': /* use following letters as text of new lines */
break;
case 'n': /* use following letters as text of new lines */
- for (n = 0; n < screen_lines; n++)
+ for (n = 0; n < screen_lines
(sp)
; n++)
CharOf(newtext[n][0]) = '.';
CharOf(newtext[n][0]) = '.';
- for (n = 0; n < screen_lines; n++)
+ for (n = 0; n < screen_lines
(sp)
; n++)
if (line[n + 1] == '\n')
break;
else
if (line[n + 1] == '\n')
break;
else
@@
-530,9
+540,9
@@
main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
break;
case 'o': /* use following letters as text of old lines */
break;
case 'o': /* use following letters as text of old lines */
- for (n = 0; n < screen_lines; n++)
+ for (n = 0; n < screen_lines
(sp)
; n++)
CharOf(oldtext[n][0]) = '.';
CharOf(oldtext[n][0]) = '.';
- for (n = 0; n < screen_lines; n++)
+ for (n = 0; n < screen_lines
(sp)
; n++)
if (line[n + 1] == '\n')
break;
else
if (line[n + 1] == '\n')
break;
else
@@
-544,12
+554,12
@@
main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
_nc_linedump();
#endif
(void) fputs("Old lines: [", stdout);
_nc_linedump();
#endif
(void) fputs("Old lines: [", stdout);
- for (n = 0; n < screen_lines; n++)
+ for (n = 0; n < screen_lines
(sp)
; n++)
putchar(CharOf(oldtext[n][0]));
putchar(']');
putchar('\n');
(void) fputs("New lines: [", stdout);
putchar(CharOf(oldtext[n][0]));
putchar(']');
putchar('\n');
(void) fputs("New lines: [", stdout);
- for (n = 0; n < screen_lines; n++)
+ for (n = 0; n < screen_lines
(sp)
; n++)
putchar(CharOf(newtext[n][0]));
putchar(']');
putchar('\n');
putchar(CharOf(newtext[n][0]));
putchar(']');
putchar('\n');