summaryrefslogtreecommitdiff
path: root/src/util.h
blob: 2262332bee42e68aabbe419f644bd287702d8a63 (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
86
87
/*

    espec - Sinclair Spectrum emulator

    Copyright (C) 2003  Ian Cowburn (ianc@noddybox.demon.co.uk)

    This program 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 2 of the License, or
    (at your option) any later version.

    This program 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 this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

    -------------------------------------------------------------------------

    Usual library wrappers and utils

*/

#ifndef ESPEC_UTIL_H
#define ESPEC_UTIL_H

#include <stdlib.h>

/* ---------------------------------------- INTERFACES
*/

/* Returns result from malloc(size), calling Exit() if it fails.
*/
void		*Malloc(size_t size);


/* Returns result from realloc(p,size), calling Exit() if it fails.
*/
void		*Realloc(void *p, size_t size);


/* Copies a string.  The result must be freed.
*/
char		*StrCopy(const char *source);


/* Safely copies a string.  The destination is returned.
*/
char		*SafeStrCopy(char *destination,
                             const char *source,
                             size_t destination_size);


/* Returns the filename portion of path.  Note returned pointer is pointing
   inside of path.
*/
const char	*Basename(const char *path);


/* Returns the directory portion of path.  Note returned pointer is internal
   static storage.  If there are no directory seperators in path, "." is
   returned.
*/
const char	*Dirname(const char *path);


/* Writes the passed text to debug.txt.  Note this is interface is not
   able to be switched on/off, so debug is only used in a transient way
   (once the bug is fixed, calls to this should be removed).
*/
void		Debug(const char *format,...);


/* See if the passed strings match, case insensitive, up to the passed length.
   Returns TRUE if they match, otherwise FALSE.  If nul is hit before the
   length then just up to that is checked.
*/
int		StartsWith(const char *a, const char *b, size_t len);


#endif


/* END OF FILE */