X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2FMKcodes.awk;h=b9ba636e0ccdcd021a77991048dbb0b11396aa28;hp=07bfb03f57f75a0e46748780d7da4ecda49a0cce;hb=9fab8ab6b69130169a6880e63585d83efb1c1722;hpb=17e1f876e3a67019cbd46b02fe28232128ac97b4 diff --git a/ncurses/tinfo/MKcodes.awk b/ncurses/tinfo/MKcodes.awk index 07bfb03f..b9ba636e 100644 --- a/ncurses/tinfo/MKcodes.awk +++ b/ncurses/tinfo/MKcodes.awk @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 1998-2006,2007 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 "Software"), # @@ -25,7 +25,7 @@ # use or other dealings in this Software without prior written # # authorization. # ############################################################################## -# $Id: MKcodes.awk,v 1.2 2007/08/18 21:00:00 tom Exp $ +# $Id: MKcodes.awk,v 1.5 2008/06/28 23:13:25 tom Exp $ function large_item(value) { result = sprintf("%d,", offset); offset = offset + length(value) + 1; @@ -62,7 +62,7 @@ function print_offsets(name,value) { printf "%s", value print "};" print "" - printf "static char ** ptr_%s = 0;\n", name + printf "static NCURSES_CONST char ** ptr_%s = 0;\n", name print "" } @@ -111,10 +111,10 @@ END { print_offsets("strcodes", large_strcodes); print "" print "static IT *" - print "alloc_array(char ***value, const short *offsets, unsigned size)" + print "alloc_array(NCURSES_CONST char ***value, const short *offsets, unsigned size)" print "{" print " if (*value == 0) {" - print " if ((*value = typeCalloc(char *, size + 1)) != 0) {" + print " if ((*value = typeCalloc(NCURSES_CONST char *, size + 1)) != 0) {" print " unsigned n;" print " for (n = 0; n < size; ++n) {" print " (*value)[n] = _nc_code_blob + offsets[n];" @@ -138,6 +138,20 @@ END { print "FIX(numcodes)" print "FIX(strcodes)" print "" + print "#define FREE_FIX(it) if (ptr_##it) { FreeAndNull(ptr_##it); }" + print "" + print "#if NO_LEAKS" + print "NCURSES_EXPORT(void)" + print "_nc_codes_leaks(void)" + print "{" + if (bigstrings) { + print "FREE_FIX(boolcodes)" + print "FREE_FIX(numcodes)" + print "FREE_FIX(strcodes)" + } + print "}" + print "#endif" + print "" print "#else" print "" print "#define DCL(it) NCURSES_EXPORT_VAR(IT) it[]"