blob: 6c7ec758ef423ddcee1a18e2237ed1f0aedc6562 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
/* do not edit automatically generated by mc from mcFileName. */
/* mcFileName.def Provides a procedure to calculate a system file name.
Copyright (C) 2015-2025 Free Software Foundation, Inc.
Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
This file is part of GNU Modula-2.
GNU Modula-2 is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Modula-2 is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Modula-2; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#if !defined (_mcFileName_H)
# define _mcFileName_H
#include "config.h"
#include "system.h"
# ifdef __cplusplus
extern "C" {
# endif
#include <stdbool.h>
# if !defined (PROC_D)
# define PROC_D
typedef void (*PROC_t) (void);
typedef struct { PROC_t proc; } PROC;
# endif
# include "GDynamicStrings.h"
# if defined (_mcFileName_C)
# define EXTERN
# else
# define EXTERN extern
# endif
/*
calculateFileName - calculates and returns a new string filename
given a module and an extension. This file name
length will be operating system specific.
String, Extension, is concatenated onto
Module and thus it is safe to Mark the extension
for garbage collection.
*/
EXTERN DynamicStrings_String mcFileName_calculateFileName (DynamicStrings_String module, DynamicStrings_String extension);
/*
calculateStemName - calculates the stem name for given a module.
This name length will be operating system and
compiler specific.
*/
EXTERN DynamicStrings_String mcFileName_calculateStemName (DynamicStrings_String module);
/*
extractExtension - given a, filename, return the filename without
the extension, Ext.
*/
EXTERN DynamicStrings_String mcFileName_extractExtension (DynamicStrings_String filename, DynamicStrings_String ext);
/*
extractModule - given a, filename, return the module name including any
extension. A new string is returned.
*/
EXTERN DynamicStrings_String mcFileName_extractModule (DynamicStrings_String filename);
# ifdef __cplusplus
}
# endif
# undef EXTERN
#endif
|