Imported Robodoc.
[robodoc.git] / Source / file.h
1 #ifndef ROBODOC_FILE_H
2 #define ROBODOC_FILE_H
3 /*
4 Copyright (C) 1994-2007  Frans Slothouber, Jacco van Weert, Petteri Kettunen,
5 Bernd Koesling, Thomas Aglassinger, Anthon Pang, Stefan Kost, David Druffner,
6 Sasha Vasko, Kai Hofmann, Thierry Pierron, Friedrich Haase, and Gergely Budai.
7
8 This file is part of ROBODoc
9
10 ROBODoc is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation; either version 3 of the License, or
13 (at your option) any later version.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with this program.  If not, see <http://www.gnu.org/licenses/>.
22
23 */
24
25
26 #include <stdio.h>
27 #include "path.h"
28 #include "links.h"
29
30 /****s* Filename/RB_Filename
31  * NAME
32  *   RB_Filename --
33  * ATTRIBUTES
34  *   * next   pointer to the next RB_File.
35  *   * name   null terminated string with the name of the file,
36  *            (Without the path, but including the extension).
37  *   * fullname 
38  *   * path   pointer to a RB_Path structure that holds
39  *            the path for this file.
40  *   * link   The link used to represent this file while in multidoc
41  *            mode.
42  * SOURCE
43  */
44
45 struct RB_Filename
46 {
47     struct RB_Filename *next;
48     char               *name;
49     char               *docname;
50     char               *fullname;
51     char               *fulldocname;
52     struct RB_Path     *path;
53     struct RB_link     *link;
54 };
55
56 /******/
57
58
59 struct RB_Filename *RB_Get_RB_Filename(
60     char *arg_filename,
61     struct RB_Path *arg_rb_path );
62 void                RB_Free_RB_Filename(
63     struct RB_Filename *arg_rb_filename );
64
65 /* */
66 char               *Get_Fullname(
67     struct RB_Filename *arg_rb_filename );
68 void                RB_Set_FullDocname(
69     struct RB_Filename *arg_rb_filename,
70     char *name );
71 char               *RB_Get_FullDocname(
72     struct RB_Filename *arg_rb_filename );
73 char               *RB_Get_Path(
74     struct RB_Filename *arg_rb_filename );
75 char               *RB_Get_Filename(
76     struct RB_Filename *arg_rb_filename );
77 char               *RB_Get_Extension(
78     struct RB_Filename *arg_rb_filename );
79 struct RB_Filename *RB_Copy_RB_Filename(
80     struct RB_Filename *arg_rb_filename );
81
82 /* */
83 void                RB_Filename_Dump(
84     struct RB_Filename *arg_rb_filename );
85
86
87 #endif /* ROBODOC_FILE_H */