X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2Fcomp_expand.c;h=6e79a926b5ac59f33d738523676a3cf654c93449;hp=ef419d84cd2c66680449636a14b598efcb563261;hb=3ce2c58251fe1353768cc630103cdb12ecc8be0a;hpb=027ae42953e3186daed8f3882da73de48291b606 diff --git a/ncurses/tinfo/comp_expand.c b/ncurses/tinfo/comp_expand.c index ef419d84..6e79a926 100644 --- a/ncurses/tinfo/comp_expand.c +++ b/ncurses/tinfo/comp_expand.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2001,2006 Free Software Foundation, Inc. * + * Copyright (c) 1998-2007,2008 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: comp_expand.c,v 1.18 2006/06/17 19:37:14 tom Exp $") +MODULE_ID("$Id: comp_expand.c,v 1.20 2008/08/16 19:29:42 tom Exp $") static int trailing_spaces(const char *src) @@ -56,7 +56,7 @@ _nc_tic_expand(const char *srcp, bool tic_format, int numbers) static size_t length; int bufp; - const char *str = VALID_STRING(srcp) ? srcp : ""; + const char *str = VALID_STRING(srcp) ? srcp : "\0\0"; bool islong = (strlen(str) > 3); size_t need = (2 + strlen(str)) * 4; int ch; @@ -119,7 +119,7 @@ _nc_tic_expand(const char *srcp, bool tic_format, int numbers) if (ch == '\\' || ch == S_QUOTE) buffer[bufp++] = '\\'; - buffer[bufp++] = ch; + buffer[bufp++] = (char) ch; buffer[bufp++] = S_QUOTE; str = dst; } else { @@ -148,13 +148,13 @@ _nc_tic_expand(const char *srcp, bool tic_format, int numbers) buffer[bufp++] = 's'; } else if ((ch == ',' || ch == ':' || ch == '^') && tic_format) { buffer[bufp++] = '\\'; - buffer[bufp++] = ch; + buffer[bufp++] = (char) ch; } else if (REALPRINT(str) && (ch != ',' && ch != ':' && !(ch == '!' && !tic_format) && ch != '^')) - buffer[bufp++] = ch; + buffer[bufp++] = (char) ch; #if 0 /* FIXME: this would be more readable (in fact the whole 'islong' logic should be removed) */ else if (ch == '\b') { buffer[bufp++] = '\\';