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