1 /* GNU gettext - internationalization aids
2 Copyright (C) 1996, 1998, 2000-2002 Free Software Foundation, Inc.
4 This file was written by Peter Miller <millerp@canb.auug.org.au>
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software Foundation,
18 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
33 static string_list_ty
*directory
/* = NULL */;
36 /* Append a directory to the end of the list of directories. */
38 dir_list_append (const char *s
)
40 if (directory
== NULL
)
41 directory
= string_list_alloc ();
42 string_list_append_unique (directory
, s
);
46 /* Return the nth directory, or NULL of n is out of range. */
50 /* The default value of the list consists of the single directory ".". */
51 if (directory
== NULL
)
52 dir_list_append (".");
54 if (n
< 0 || n
>= directory
->nitems
)
56 return directory
->item
[n
];
60 /* Return the current list of directories, for later use with dir_list_restore.
61 Reset the list to empty. */
63 dir_list_save_reset ()
65 void *saved_value
= directory
;
72 /* Restore a previously saved list of directories. */
74 dir_list_restore (void *saved_value
)
76 /* Don't free the contained strings, because they may have been returned
77 by dir_list_nth and may still be in use. */
78 if (directory
!= NULL
)
80 if (directory
->item
!= NULL
)
81 free (directory
->item
);
85 directory
= saved_value
;