1 /* Copyright (C) 2000-2008 by George Williams */
2 /*
3  * Redistribution and use in source and binary forms, with or without
4  * modification, are permitted provided that the following conditions are met:
5 
6  * Redistributions of source code must retain the above copyright notice, this
7  * list of conditions and the following disclaimer.
8 
9  * Redistributions in binary form must reproduce the above copyright notice,
10  * this list of conditions and the following disclaimer in the documentation
11  * and/or other materials provided with the distribution.
12 
13  * The name of the author may not be used to endorse or promote products
14  * derived from this software without specific prior written permission.
15 
16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
17  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
19  * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
22  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
23  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
24  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
25  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  */
27 #include "fontforgevw.h"
28 #include <gfile.h>
29 #include <time.h>
30 #include <sys/time.h>
31 #include <locale.h>
32 #include <unistd.h>
33 
34 int32 unicode_from_adobestd[256];
35 struct lconv localeinfo;
36 char *coord_sep = ",";
37 const struct unicode_nameannot * const *const *_UnicodeNameAnnot = NULL;
38 
initadobeenc(void)39 static void initadobeenc(void) {
40     int i,j;
41 
42     for ( i=0; i<0x100; ++i ) {
43 	if ( strcmp(AdobeStandardEncoding[i],".notdef")==0 )
44 	    unicode_from_adobestd[i] = 0xfffd;
45 	else {
46 	    j = UniFromName(AdobeStandardEncoding[i],ui_none,&custom);
47 	    if ( j==-1 ) j = 0xfffd;
48 	    unicode_from_adobestd[i] = j;
49 	}
50     }
51 }
52 
initrand(void)53 static void initrand(void) {
54     struct timeval tv;
55 
56     gettimeofday(&tv,NULL);
57     srand(tv.tv_usec);
58 }
59 
InitSimpleStuff(void)60 void InitSimpleStuff(void) {
61     initrand();
62     initadobeenc();
63 
64     setlocale(LC_ALL,"");
65     localeinfo = *localeconv();
66     coord_sep = ",";
67     if ( *localeinfo.decimal_point=='.' ) coord_sep=",";
68     else if ( *localeinfo.decimal_point!='.' ) coord_sep=" ";
69 
70     SetDefaults();
71 }
72 
doversion(const char * source_version_str)73 void doversion(const char *source_version_str) {
74     if ( source_version_str!=NULL )
75 	printf( "fontforge %s\n", source_version_str );
76 exit(0);
77 }
78