FreeWRL / FreeX3D 4.3.0
InputFunctions.c
1/*
2
3 FreeWRL support library.
4 Input functions (EAI, mouse, keyboard, ...).
5
6*/
7
8/****************************************************************************
9 This file is part of the FreeWRL/FreeX3D Distribution.
10
11 Copyright 2009 CRC Canada. (http://www.crc.gc.ca)
12
13 FreeWRL/FreeX3D is free software: you can redistribute it and/or modify
14 it under the terms of the GNU Lesser Public License as published by
15 the Free Software Foundation, either version 3 of the License, or
16 (at your option) any later version.
17
18 FreeWRL/FreeX3D is distributed in the hope that it will be useful,
19 but WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 GNU General Public License for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with FreeWRL/FreeX3D. If not, see <http://www.gnu.org/licenses/>.
25****************************************************************************/
26
27
28
29#include <config.h>
30#include <system.h>
31#include <display.h>
32#include <internal.h>
33#include <pthread.h>
34
35#include <libFreeWRL.h>
36
37#include <io_files.h>
38#include <threads.h>
39
40#include "../vrml_parser/Structs.h"
41#include "../main/headers.h"
42#include "../scenegraph/Vector.h"
43
44#include "InputFunctions.h"
45
46#define DJ_KEEP_COMPILER_WARNING 0
47#if DJ_KEEP_COMPILER_WARNING
48#define READSIZE 2048
49#endif
50
51char * stripLocalFileName (char * origName)
52{
53 if (!origName)
54 return NULL;
55
56 /* remove whitespace, etc */
57 while ((*origName != '\0') && (*origName <= ' ')) origName++;
58
59 #if defined (_MSC_VER)
60 if ((strncmp(origName,"file:///", strlen("file:///"))== 0)) // MS windows: file:///C:/source2/freewrl/freex3d/projectfiles_vc9/testAx/1.x3d
61 origName += strlen ("file:///");
62 #endif //_MSC_VER
63
64
65 if ((strncmp(origName,"file://", strlen("file://"))== 0) ||
66 (strncmp(origName,"FILE://", strlen("FILE://"))== 0)) {
67 origName += strlen ("FILE://");
68 return origName;
69 }
70 return origName;
71}
72
73#if !defined(_ANDROID)
74char* makeFontDirectory()
75{
76 char *tmp;
77
78 /* If environment variable is defined
79 then it prevails */
80 tmp = getenv("FREEWRL_FONTS_DIR");
81
82 /* Get dir from configuration */
83 if (!tmp) {
84 tmp = FONTS_DIR;
85 }
86
87 /* Check if dir exists */
88 if (do_dir_exists(tmp)) {
89 /* do not return directory the string
90 as it may be static, but make a copy */
91 return STRDUP(tmp);
92 }
93
94 /* No directory found */
95 return NULL;
96}
97#endif //ANDROID
98
99/* sscanf replacements */
100void scanUnsignedIntoValue(char *sp, size_t *rv) {
101 *rv = 0;
102
103 /* skip leading spaces, if there are any */
104 while ((*sp <= ' ') && (*sp != '\0')) sp++;
105 while ((*sp >='0') && (*sp <= '9')) {
106 *rv *= 10; *rv += (int) (*sp - '0'); sp++;
107 }
108}
109