X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fbase%2Flib_addch.c;h=a7d498b490a0e3d624775406f77373a96b954797;hp=dd6f800e6b6f9fff70c79e228f9fd6b998e4d39f;hb=c9c32236e27689a61c794b714c6b86c460866e35;hpb=03f728e5bb3630a54fffc4a2ff2f8dbfcce9088e diff --git a/ncurses/base/lib_addch.c b/ncurses/base/lib_addch.c index dd6f800e..a7d498b4 100644 --- a/ncurses/base/lib_addch.c +++ b/ncurses/base/lib_addch.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * + * Copyright (c) 1998-2013,2014 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 * @@ -36,7 +36,7 @@ #include #include -MODULE_ID("$Id: lib_addch.c,v 1.125 2011/10/22 16:51:31 tom Exp $") +MODULE_ID("$Id: lib_addch.c,v 1.128 2014/02/23 01:21:08 tom Exp $") static const NCURSES_CH_T blankchar = NewChar(BLANK_TEXT); @@ -412,10 +412,12 @@ waddch_nosync(WINDOW *win, const NCURSES_CH_T ch) #endif const char *s = NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx t); int tabsize = 8; + /* * If we are using the alternate character set, forget about locale. * Otherwise, if unctrl() returns a single-character or the locale - * claims the code is printable, treat it that way. + * claims the code is printable (and not also a control character), + * treat it that way. */ if ((AttrOf(ch) & A_ALTCHARSET) || ( @@ -425,14 +427,15 @@ waddch_nosync(WINDOW *win, const NCURSES_CH_T ch) s[1] == 0 ) || ( - isprint(t) + (isprint((int)t) && !iscntrl((int)t)) #if USE_WIDEC_SUPPORT || ((sp == 0 || !sp->_legacy_coding) && (WINDOW_EXT(win, addch_used) || !_nc_is_charable(CharOf(ch)))) #endif - )) + )) { return waddch_literal(win, ch); + } /* * Handle carriage control and other codes that are not printable, or are