1 /*
2     text.h:
3 
4     Copyright (C) 1999 John ffitch
5     Jan 27 2005: Replaced with new implementation by Istvan Varga
6     Dec 25 2007: Added gettext support by John ffitch
7 
8     This file is part of Csound.
9 
10     The Csound Library is free software; you can redistribute it
11     and/or modify it under the terms of the GNU Lesser General Public
12     License as published by the Free Software Foundation; either
13     version 2.1 of the License, or (at your option) any later version.
14 
15     Csound is distributed in the hope that it will be useful,
16     but WITHOUT ANY WARRANTY; without even the implied warranty of
17     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18     GNU Lesser General Public License for more details.
19 
20     You should have received a copy of the GNU Lesser General Public
21     License along with Csound; if not, write to the Free Software
22     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
23     02110-1301 USA
24 */
25 
26 #ifndef CSOUND_TEXT_H
27 #define CSOUND_TEXT_H
28 #ifndef __GNUC__
29 #  define  __attribute__(x)  /*NOTHING*/
30 #endif
31 
32 
33 /* list of languages */
34 
35   typedef enum {
36     CSLANGUAGE_DEFAULT = 0,
37     CSLANGUAGE_AFRIKAANS,
38     CSLANGUAGE_ALBANIAN,
39     CSLANGUAGE_ARABIC,
40     CSLANGUAGE_ARMENIAN,
41     CSLANGUAGE_ASSAMESE,
42     CSLANGUAGE_AZERI,
43     CSLANGUAGE_BASQUE,
44     CSLANGUAGE_BELARUSIAN,
45     CSLANGUAGE_BENGALI,
46     CSLANGUAGE_BULGARIAN,
47     CSLANGUAGE_CATALAN,
48     CSLANGUAGE_CHINESE,
49     CSLANGUAGE_CROATIAN,
50     CSLANGUAGE_CZECH,
51     CSLANGUAGE_DANISH,
52     CSLANGUAGE_DUTCH,
53     CSLANGUAGE_ENGLISH_UK,
54     CSLANGUAGE_ENGLISH_US,
55     CSLANGUAGE_ESTONIAN,
56     CSLANGUAGE_FAEROESE,
57     CSLANGUAGE_FARSI,
58     CSLANGUAGE_FINNISH,
59     CSLANGUAGE_FRENCH,
60     CSLANGUAGE_GEORGIAN,
61     CSLANGUAGE_GERMAN,
62     CSLANGUAGE_GREEK,
63     CSLANGUAGE_GUJARATI,
64     CSLANGUAGE_HEBREW,
65     CSLANGUAGE_HINDI,
66     CSLANGUAGE_HUNGARIAN,
67     CSLANGUAGE_ICELANDIC,
68     CSLANGUAGE_INDONESIAN,
69     CSLANGUAGE_ITALIAN,
70     CSLANGUAGE_JAPANESE,
71     CSLANGUAGE_KANNADA,
72     CSLANGUAGE_KASHMIRI,
73     CSLANGUAGE_KAZAK,
74     CSLANGUAGE_KONKANI,
75     CSLANGUAGE_KOREAN,
76     CSLANGUAGE_LATVIAN,
77     CSLANGUAGE_LITHUANIAN,
78     CSLANGUAGE_MACEDONIAN,
79     CSLANGUAGE_MALAY,
80     CSLANGUAGE_MALAYALAM,
81     CSLANGUAGE_MANIPURI,
82     CSLANGUAGE_MARATHI,
83     CSLANGUAGE_NEPALI,
84     CSLANGUAGE_NORWEGIAN,
85     CSLANGUAGE_ORIYA,
86     CSLANGUAGE_POLISH,
87     CSLANGUAGE_PORTUGUESE,
88     CSLANGUAGE_PUNJABI,
89     CSLANGUAGE_ROMANIAN,
90     CSLANGUAGE_RUSSIAN,
91     CSLANGUAGE_SANSKRIT,
92     CSLANGUAGE_SERBIAN,
93     CSLANGUAGE_SINDHI,
94     CSLANGUAGE_SLOVAK,
95     CSLANGUAGE_SLOVENIAN,
96     CSLANGUAGE_SPANISH,
97     CSLANGUAGE_SWAHILI,
98     CSLANGUAGE_SWEDISH,
99     CSLANGUAGE_TAMIL,
100     CSLANGUAGE_TATAR,
101     CSLANGUAGE_TELUGU,
102     CSLANGUAGE_THAI,
103     CSLANGUAGE_TURKISH,
104     CSLANGUAGE_UKRAINIAN,
105     CSLANGUAGE_URDU,
106     CSLANGUAGE_UZBEK,
107     CSLANGUAGE_VIETNAMESE,
108     CSLANGUAGE_COLUMBIAN
109 } cslanguage_t;
110 
111 #ifdef __cplusplus
112 extern "C" {
113 #endif
114   void init_getstring(void*);
115   PUBLIC char *csoundLocalizeString(const char *s)
116      __attribute__ ((format_arg (1)));
117   PUBLIC char* cs_strtok_r(char* str, char* sep, char** lasts);
118   PUBLIC double cs_strtod(char* nptr, char** endptr);
119   PUBLIC int cs_sprintf(char *str, const char *format, ...);
120   PUBLIC int cs_sscanf(char *str, const char *format, ...);
121 #ifdef __cplusplus
122 }
123 #endif
124 
125 
126   /* VL commenting this out so ALL uses of Str(x)
127      call LocalizeString() [which might be a stub]
128      This would allows us to keep an eye on
129      -Wformat-security warnings
130   */
131 //#ifdef GNU_GETTEXT
132 # define Str(x) csoundLocalizeString(x)
133 //#else
134 //# define Str(x)  (x)
135 //#endif
136 
137 #define Str_noop(x) x
138 
139 
140 #endif  /* CSOUND_TEXT_H */
141