X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2Flib_tgoto.c;h=31daf443624f4405709a348650a5024c41b4cdd2;hp=77fc6ceabd4a8caad6f7623c67f4ad8bfd5afffe;hb=a20e6eb464be80b9cd8cae7ce925d27fe9c209ed;hpb=46722468f47c2b77b3987729b4bcf2321cccfd01 diff --git a/ncurses/tinfo/lib_tgoto.c b/ncurses/tinfo/lib_tgoto.c index 77fc6cea..31daf443 100644 --- a/ncurses/tinfo/lib_tgoto.c +++ b/ncurses/tinfo/lib_tgoto.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2000-2001,2002 Free Software Foundation, Inc. * + * Copyright (c) 2000-2008,2012 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 * @@ -35,7 +35,7 @@ #include #include -MODULE_ID("$Id: lib_tgoto.c,v 1.10 2002/08/31 22:14:47 Philippe.Blain Exp $") +MODULE_ID("$Id: lib_tgoto.c,v 1.16 2012/02/24 02:08:08 tom Exp $") #if !PURE_TERMINFO static bool @@ -128,7 +128,7 @@ tgoto_internal(const char *string, int x, int y) *value = 0200; /* tputs will treat this as \0 */ } } - result[used++] = *value++; + result[used++] = (char) *value++; break; case '%': result[used++] = *string; @@ -155,11 +155,12 @@ tgoto_internal(const char *string, int x, int y) *value = 16 * (*value / 10) + (*value % 10); break; case 'D': /* Reverse coding (Delta Data) */ - *value -= 2 * (*value / 16); + *value -= 2 * (*value % 16); break; } if (fmt != 0) { - sprintf(result + used, fmt, *value++); + _nc_SPRINTF(result + used, _nc_SLIMIT(length - used) + fmt, *value++); used += strlen(result + used); fmt = 0; } @@ -174,7 +175,7 @@ tgoto_internal(const char *string, int x, int y) } if (result != 0) { if (need_BC) { - strcpy(result + used, BC); + _nc_STRCPY(result + used, BC, length - used); used += strlen(BC); } result[used] = '\0'; @@ -198,6 +199,6 @@ tgoto(const char *string, int x, int y) result = tgoto_internal(string, x, y); else #endif - result = tparm((NCURSES_CONST char *) string, y, x); + result = TPARM_2((NCURSES_CONST char *) string, y, x); returnPtr(result); }