]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - man/curs_memleaks.3x
ncurses 6.3 - patch 20220827
[ncurses.git] / man / curs_memleaks.3x
index 8cea74256378c522a1cf84745d1a7605c0a25caf..cea4165fef02b25911d373306384afc982146e53 100644 (file)
@@ -1,5 +1,6 @@
 .\"***************************************************************************
-.\" Copyright (c) 2008-2017,2019 Free Software Foundation, Inc.              *
+.\" Copyright 2019-2021,2022 Thomas E. Dickey                                *
+.\" Copyright 2008-2010,2017 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            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_memleaks.3x,v 1.7 2019/12/14 23:21:32 tom Exp $
+.\" $Id: curs_memleaks.3x,v 1.15 2022/06/04 23:33:48 tom Exp $
 .TH curs_memleaks 3X ""
 .ie \n(.g .ds `` \(lq
 .el       .ds `` ``
 .ie \n(.g .ds '' \(rq
 .el       .ds '' ''
+.de bP
+.ie n  .IP \(bu 4
+.el    .IP \(bu 2
+..
 .na
 .hy 0
 .SH NAME
-\fB_nc_freeall\fP,
-\fB_nc_free_and_exit\fP,
-\fB_nc_free_tinfo\fP \- \fBcurses\fR memory-leak checking
+\fBexit_curses\fP,
+\fBexit_terminfo\fP \- \fBcurses\fP memory-leak checking
 .ad
 .hy
 .SH SYNOPSIS
-\fB#include <curses.h>\fR
+\fB#include <curses.h>\fP
+.br
+\fBvoid exit_curses(int \fIcode\fB);\fR
 .sp
-\fBvoid exit_curses(int);\fR
+\fB#include <term.h>\fP
 .br
-\fBvoid exit_terminfo(int);\fR
+\fBvoid exit_terminfo(int \fIcode\fB);\fR
 .sp
-/* deprecated */
+/* deprecated (intentionally not declared in curses.h or term.h) */
 .br
-\fBvoid _nc_freeall(void);\fR
+\fBvoid _nc_freeall(void);\fP
 .br
-\fBvoid _nc_free_and_exit(int);\fR
+\fBvoid _nc_free_and_exit(int \fIcode\fB);\fR
 .br
-\fBvoid _nc_free_tinfo(int);\fR
+\fBvoid _nc_free_tinfo(int \fIcode\fB);\fR
 .SH DESCRIPTION
 These functions are used to simplify analysis of memory leaks in the ncurses
 library.
 .PP
 Any implementation of curses must not free the memory associated with
-a screen, since (even after calling \fBendwin\fP), it must be available
+a screen, since (even after calling \fBendwin\fP(3X)), it must be available
 for use in the next call to \fBrefresh\fP(3X).
 There are also chunks of memory held for performance reasons.
 That makes it hard to analyze curses applications for memory leaks.
@@ -100,5 +106,22 @@ These functions do not return a value.
 .SH PORTABILITY
 These functions are not part of X/Open Curses;
 nor do other implementations of curses provide a similar feature.
+.PP
+In any implementation of X/Open Curses, an application can free part
+of the memory allocated by curses:
+.bP
+The portable part of \fBexit_curses\fP can be freed using \fBdelscreen\fP,
+passing the \fBSCREEN*\fP pointer returned by \fBnewterm\fP.
+.IP
+In some implementations, there is a global variable \fBsp\fP
+which could be used, e.g., if the screen were only initialized
+using \fBinitscr\fP.
+.bP
+The portable part of \fBexit_terminfo\fP can be freed using \fBdel_curterm\fP.
+.IP
+In this case, there is a global variable \fBcur_term\fP which can be
+used as parameter.
 .SH SEE ALSO
-\fBcurses\fR(3X).
+\fBcurs_initscr\fP(3X),
+\fBcurs_terminfo\fP(3X).
+\fBcurses\fP(3X).