annotate src/gpf2/misc/tools.c @ 516:1ed9de6c90bd

src/g23m-gsm/sms/sms_for.c: bogus malloc removed The new error handling code that was not present in TCS211 blob version contains a malloc call that is bogus for 3 reasons: 1) The memory allocation in question is not needed in the first place; 2) libc malloc is used instead of one of the firmware's proper ways; 3) The memory allocation is made inside a function and then never freed, i.e., a memory leak. This bug was caught in gcc-built FreeCalypso fw projects (Citrine and Selenite) because our gcc environment does not allow any use of libc malloc (any reference to malloc produces a link failure), but this code from TCS3.2 is wrong even for Magnetite: if this code path is executed repeatedly over a long time, the many small allocations made by this malloc call without a subsequent free will eventually exhaust the malloc heap provided by the TMS470 environment, malloc will start returning NULL, and the bogus code will treat it as an error. Because the memory allocation in question is not needed at all, the fix entails simply removing it.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 22 Jul 2018 06:04:49 +0000
parents cd37d228dae0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
294
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 +------------------------------------------------------------------------------
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 | File: tools.c
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 +------------------------------------------------------------------------------
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 | Copyright 2002 Texas Instruments Berlin, AG
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 | All rights reserved.
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 |
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 | This file is confidential and a trade secret of Texas
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 | Instruments Berlin, AG
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 | The receipt of or possession of this file does not convey
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 | any rights to reproduce or disclose its contents or to
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 | manufacture, use, or sell anything it may describe, in
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 | whole, or in part, without the specific written consent of
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 | Texas Instruments Berlin, AG.
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 +-----------------------------------------------------------------------------
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 | Purpose : This module implements some format conversion functions.
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 +-----------------------------------------------------------------------------
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 */
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 #ifndef __TOOLS_C__
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 #define __TOOLS_C__
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 #endif
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 /*==== INCLUDES ===================================================*/
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 #include "typedefs.h"
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 #include <string.h>
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 #include <ctype.h>
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 #include "vsi.h"
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 #include "tools.h"
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 /*==== TYPES ======================================================*/
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 /*==== CONSTANTS ==================================================*/
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 /*==== EXTERNALS ==================================================*/
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 /*==== VARIABLES ==================================================*/
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 /*==== FUNCTIONS ==================================================*/
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 #ifndef RUN_INT_RAM
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 /*
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 +------------------------------------------------------------------------------
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 | Function : GetNextToken
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 +------------------------------------------------------------------------------
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 | Description : Exract text until next separator.
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 |
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 | Parameters : source - where to search
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 | token - destination for text
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 | seperator - sperator
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 |
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 | Return : string length of token
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 +------------------------------------------------------------------------------
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 */
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 unsigned int GetNextToken (char *source, char *token, char const *seperators)
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 {
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 unsigned int i, j, k, sep_len, src_len;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 BOOL sepFound = FALSE;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 sep_len = strlen (seperators);
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 src_len = strlen (source);
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 i = 0;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 j = 0;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 k = 0;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 do
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75 {
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 j = 0;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 sepFound = FALSE;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 while (j < sep_len)
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80 {
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 if (source[i] EQ seperators[j])
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 sepFound = TRUE;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 j++;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 }
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 if (sepFound)
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 i++;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87 }
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 while (i < src_len AND sepFound);
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90 sepFound = FALSE;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92 while (!sepFound AND i < src_len)
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93 {
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94 j = 0;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95 while (!sepFound AND j < sep_len)
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96 {
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 if (source[i] EQ seperators[j])
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 sepFound = TRUE;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 else
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100 j++;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 }
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 if (!sepFound)
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 token[k++] = source[i++];
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105 }
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106 token[k] = '\0';
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108 return strlen (token);
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 }
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110 #endif
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 #ifndef RUN_FLASH
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113 /*
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 +------------------------------------------------------------------------------
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115 | Function : HexToASCII
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116 +------------------------------------------------------------------------------
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117 | Description : Convert hexadecimal value to ASCII string.
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118 |
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119 | Parameters : value - value to be converted
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120 | *ptr - destination for string
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
121 | num - number of characters
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122 |
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123 | Return : pointer behind the end of string
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124 +------------------------------------------------------------------------------
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125 */
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126 char *HexToASCII (ULONG value, char *ptr, int num)
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127 {
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
128 UBYTE i;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
129 char v;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
130
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
131 ptr += (num-1);
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
132
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
133 for (i=0; i<num ;i++)
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
134 {
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
135 v = (char)(value & 0x000000f);
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
136
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
137 value >>= 4;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
138
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
139 if (v > 9)
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
140 v += ('A'-10);
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141 else
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142 v += '0';
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144 *ptr-- = v;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
145 }
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
146
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
147 return(ptr+num+1);
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
148 }
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
149 #endif
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
150
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
151 #ifndef RUN_INT_RAM
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
152 /*
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
153 +------------------------------------------------------------------------------
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
154 | Function : ASCIIToHex
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
155 +------------------------------------------------------------------------------
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156 | Description : Convert ASCII string to hexadecimal value.
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
157 |
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
158 | Parameters : *ptr - string to be converted
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
159 | num - number of characters
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
160 |
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
161 | Return : value
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
162 +------------------------------------------------------------------------------
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
163 */
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164 unsigned int ASCIIToHex (char *ptr, int num)
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
165 {
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
166 unsigned int i;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
167 unsigned int result = 0;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
168 unsigned int len;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
169 char c;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
170
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
171 len = strlen(ptr);
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
172 if ( len < (unsigned int)num )
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
173 num = (int)len;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
175 ptr += (num-1);
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
176
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
177 for (i=0; i < (unsigned int)num; i++)
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
178 {
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
179 if (isxdigit (*ptr) )
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
180 {
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
181 if (*ptr > '9')
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
182 c = *ptr-- - 'A' + 10;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
183 else
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
184 c = *ptr-- - '0';
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
185
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
186 /*lint -e701 suppress Info -- shift left of signed quantity */
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
187 result += (c << (i*4));
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
188 /*lint +e701 */
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
189 }
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
190 }
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
191 return result;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
192 }
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
193 #endif
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
194
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
195 #ifndef RUN_FLASH
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
196 /*
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
197 +------------------------------------------------------------------------------
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
198 | Function : InsertString
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
199 +------------------------------------------------------------------------------
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
200 | Description : write a string into the buffer. If the string has less than
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
201 | 'num' characters, spaces are added.
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
202 |
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
203 | Parameters : *string - string to be written
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
204 | *ptr - pointer to destination
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
205 | num - number of characters to be filled
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
206 |
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
207 | Return : pointer to next character
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
208 +------------------------------------------------------------------------------
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
209 */
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
210 char *InsertString (char *string, char *ptr, int num)
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
211 {
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
212 UBYTE i;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
213 BYTE end_detected = FALSE;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
214
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
215 for (i=0;i<num;i++)
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
216 {
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
217 if (end_detected)
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
218 *ptr++ = ' ';
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
219 else
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
220 {
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
221 if (string [i] == 0)
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
222 {
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
223 end_detected = TRUE;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
224 *ptr++ = ' ';
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
225 }
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
226 else
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
227 *ptr++ = string [i];
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
228 }
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
229 }
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
230 return(ptr);
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
231 }
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
232 #endif
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
233
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
234
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
235 #ifndef RUN_INT_RAM
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
236 /*
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
237 +------------------------------------------------------------------------------
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
238 | Function : rm_path
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
239 +------------------------------------------------------------------------------
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
240 | Description : remove path name from file name
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
241 |
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
242 | Parameters : *file - file name
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
243 |
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
244 | Return : file name without path information
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
245 |
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
246 +------------------------------------------------------------------------------
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
247 */
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
248 char *rm_path ( const char *file )
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
249 {
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
250 char *end;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
251
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
252 /*
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
253 * to avoid crashes in case the passed parameter file is a pointer to
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
254 * anywhere it is checked if file begins with a character that is allowed
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
255 * at the beginning of file/path names (any alpanumeric character, '.', '/',
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
256 * and '\')
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
257 */
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
258 if ( isalpha(*file) == 0 && *file != '.' && *file != '/' && *file != '\\' )
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
259 return ((char*)"NO VALID FILENAME");
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
260
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
261 end = (char*)file + strlen(file);
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
262
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
263 while ((*end != 0x2f) && (*end != 0x5c) && (end >= (char*)file))
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
264 end--;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
265
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
266 return end + 1;
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
267 }
cd37d228dae0 src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
268 #endif