]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - man/curs_memleaks.3x
ncurses 6.4 - patch 20230918
[ncurses.git] / man / curs_memleaks.3x
index 8cea74256378c522a1cf84745d1a7605c0a25caf..c04598a90f9d502574ef16526a54a3237fca4c51 100644 (file)
@@ -1,5 +1,6 @@
 .\"***************************************************************************
-.\" Copyright (c) 2008-2017,2019 Free Software Foundation, Inc.              *
+.\" Copyright 2019-2022,2023 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 $
-.TH curs_memleaks 3X ""
+.\" $Id: curs_memleaks.3x,v 1.21 2023/09/16 23:37:03 tom Exp $
+.TH curs_memleaks 3X 2023-09-16 "ncurses 6.4" "Library calls"
 .ie \n(.g .ds `` \(lq
 .el       .ds `` ``
 .ie \n(.g .ds '' \(rq
 .el       .ds '' ''
-.na
-.hy 0
+.de bP
+.ie n  .IP \(bu 4
+.el    .IP \(bu 2
+..
 .SH NAME
-\fB_nc_freeall\fP,
-\fB_nc_free_and_exit\fP,
-\fB_nc_free_tinfo\fP \- \fBcurses\fR memory-leak checking
-.ad
-.hy
+\fB\%exit_curses\fP,
+\fB\%exit_terminfo\fP \-
+check for memory leaks in \fIcurses\fR
 .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 +103,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).