summaryrefslogtreecommitdiff
authorzecke <zecke>2004-07-07 15:18:14 (UTC)
committer zecke <zecke>2004-07-07 15:18:14 (UTC)
commitab010081c21f097e436c54ef8786f9abdf764790 (patch) (unidiff)
tree36934a2aecd6e898c09d3414764efce0e2777915
parentd6ed7f967feb423a91a5c6ea94d54001b33bcd77 (diff)
downloadopie-ab010081c21f097e436c54ef8786f9abdf764790.zip
opie-ab010081c21f097e436c54ef8786f9abdf764790.tar.gz
opie-ab010081c21f097e436c54ef8786f9abdf764790.tar.bz2
INCLUDEPATH = FOO $$INCLUDEPATH triggered an infinte loop
backport the fix from Qt3.3 for that issue Add alternative mode to only generate one language...
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--development/translation/opie-lupdate/opie-lupdate.pro2
-rw-r--r--development/translation/shared/opie.cpp5
-rw-r--r--development/translation/shared/proparser.cpp1
3 files changed, 6 insertions, 2 deletions
diff --git a/development/translation/opie-lupdate/opie-lupdate.pro b/development/translation/opie-lupdate/opie-lupdate.pro
index ea51c8b..8360f05 100644
--- a/development/translation/opie-lupdate/opie-lupdate.pro
+++ b/development/translation/opie-lupdate/opie-lupdate.pro
@@ -1,21 +1,21 @@
1 TEMPLATE= app 1 TEMPLATE= app
2 CONFIG += qt warn_on console 2 CONFIG += qt warn_on console thread
3 HEADERS = ../shared/metatranslator.h \ 3 HEADERS = ../shared/metatranslator.h \
4 ../shared/proparser.h \ 4 ../shared/proparser.h \
5 ../shared/opie.h 5 ../shared/opie.h
6 6
7 SOURCES = fetchtr.cpp \ 7 SOURCES = fetchtr.cpp \
8 main.cpp \ 8 main.cpp \
9 merge.cpp \ 9 merge.cpp \
10 numberh.cpp \ 10 numberh.cpp \
11 sametexth.cpp \ 11 sametexth.cpp \
12 ../shared/metatranslator.cpp \ 12 ../shared/metatranslator.cpp \
13 ../shared/proparser.cpp \ 13 ../shared/proparser.cpp \
14 ../shared/opie.cpp 14 ../shared/opie.cpp
15 15
16 DEFINES += QT_INTERNAL_XML 16 DEFINES += QT_INTERNAL_XML
17 17
18 TARGET = opie-lupdate 18 TARGET = opie-lupdate
19 INCLUDEPATH+= ../shared 19 INCLUDEPATH+= ../shared
20 #DESTDIR = 20 #DESTDIR =
21 21
diff --git a/development/translation/shared/opie.cpp b/development/translation/shared/opie.cpp
index c5c72d1..c8cea42 100644
--- a/development/translation/shared/opie.cpp
+++ b/development/translation/shared/opie.cpp
@@ -1,40 +1,43 @@
1#include <stdlib.h> 1#include <stdlib.h>
2 2
3#include <qdir.h> 3#include <qdir.h>
4 4
5#include "opie.h" 5#include "opie.h"
6 6
7OPIE* OPIE::m_self = 0; 7OPIE* OPIE::m_self = 0;
8 8
9 9
10OPIE::OPIE() { 10OPIE::OPIE() {
11} 11}
12OPIE::~OPIE() { 12OPIE::~OPIE() {
13} 13}
14OPIE* OPIE::self() { 14OPIE* OPIE::self() {
15 if (!m_self ) m_self = new OPIE; 15 if (!m_self ) m_self = new OPIE;
16 return m_self; 16 return m_self;
17} 17}
18QStringList OPIE::languageList( const QString& _opieDir )const { 18QStringList OPIE::languageList( const QString& _opieDir )const {
19#if 0
20 return QStringList::split(':',QString(::getenv("OPIE_CREATE_LANGS")));
21#else
19 QString opieDi = opieDir( _opieDir ); 22 QString opieDi = opieDir( _opieDir );
20
21 QStringList langs; 23 QStringList langs;
22 QDir dir( opieDi + "/i18n/"); 24 QDir dir( opieDi + "/i18n/");
23 if (!dir.exists() ) return langs; 25 if (!dir.exists() ) return langs;
24 langs = dir.entryList( QDir::Dirs ); 26 langs = dir.entryList( QDir::Dirs );
25 27
26 langs.remove("CVS"); // hey this no language 28 langs.remove("CVS"); // hey this no language
27 langs.remove("unmaintained"); // remove this one too 29 langs.remove("unmaintained"); // remove this one too
28 langs.remove("."); 30 langs.remove(".");
29 langs.remove(".."); 31 langs.remove("..");
30 32
31 33
32 34
33 return langs; 35 return langs;
36#endif
34} 37}
35QString OPIE::opieDir( const QString& _opieDir ) const{ 38QString OPIE::opieDir( const QString& _opieDir ) const{
36 if (!_opieDir.isEmpty() ) return _opieDir; 39 if (!_opieDir.isEmpty() ) return _opieDir;
37 char* dir = ::getenv("OPIEDIR"); 40 char* dir = ::getenv("OPIEDIR");
38 if (!dir ) return QString::null; 41 if (!dir ) return QString::null;
39 return QString::fromLatin1(dir); 42 return QString::fromLatin1(dir);
40} 43}
diff --git a/development/translation/shared/proparser.cpp b/development/translation/shared/proparser.cpp
index f616c5a..bb099bb 100644
--- a/development/translation/shared/proparser.cpp
+++ b/development/translation/shared/proparser.cpp
@@ -114,48 +114,49 @@ QMap<QString, QString> proFileTagMap( const QString& text, const QString& opieDi
114 } 114 }
115 115
116 /* 116 /*
117 Expand $$variables within the 'value' part of a 'key = value' 117 Expand $$variables within the 'value' part of a 'key = value'
118 pair. 118 pair.
119 */ 119 */
120 QRegExp var( "\\$\\$[({]?([a-zA-Z0-9_]+)[)}]?" ); 120 QRegExp var( "\\$\\$[({]?([a-zA-Z0-9_]+)[)}]?" );
121 QMap<QString, QString>::Iterator it; 121 QMap<QString, QString>::Iterator it;
122 for ( it = tagMap.begin(); it != tagMap.end(); ++it ) { 122 for ( it = tagMap.begin(); it != tagMap.end(); ++it ) {
123 int i = 0; 123 int i = 0;
124 while ( (i = var.search((*it), i)) != -1 ) { 124 while ( (i = var.search((*it), i)) != -1 ) {
125 int len = var.matchedLength(); 125 int len = var.matchedLength();
126 QString invocation = var.cap(1); 126 QString invocation = var.cap(1);
127 QString after; 127 QString after;
128 128
129 if ( invocation == "system" ) { 129 if ( invocation == "system" ) {
130 // skip system(); it will be handled in the next pass 130 // skip system(); it will be handled in the next pass
131 ++i; 131 ++i;
132 } else if ( invocation == "OPIEDIR") { 132 } else if ( invocation == "OPIEDIR") {
133 (*it).replace( i, len, opieDir ); 133 (*it).replace( i, len, opieDir );
134 }else { 134 }else {
135 if ( tagMap.contains(invocation) ) 135 if ( tagMap.contains(invocation) )
136 after = tagMap[invocation]; 136 after = tagMap[invocation];
137 (*it).replace( i, len, after ); 137 (*it).replace( i, len, after );
138 i += after.length();
138 } 139 }
139 } 140 }
140 } 141 }
141 142
142 /* 143 /*
143 Execute system() calls. 144 Execute system() calls.
144 */ 145 */
145 QRegExp callToSystem( "\\$\\$system\\s*\\(([^()]*)\\)" ); 146 QRegExp callToSystem( "\\$\\$system\\s*\\(([^()]*)\\)" );
146 for ( it = tagMap.begin(); it != tagMap.end(); ++it ) { 147 for ( it = tagMap.begin(); it != tagMap.end(); ++it ) {
147 int i = 0; 148 int i = 0;
148 while ( (i = callToSystem.search((*it), i)) != -1 ) { 149 while ( (i = callToSystem.search((*it), i)) != -1 ) {
149 /* 150 /*
150 This code is stolen from qmake's project.cpp file. 151 This code is stolen from qmake's project.cpp file.
151 Ideally we would use the same parser, so we wouldn't 152 Ideally we would use the same parser, so we wouldn't
152 have this code duplication. 153 have this code duplication.
153 */ 154 */
154 QString after; 155 QString after;
155 char buff[256]; 156 char buff[256];
156 FILE *proc = QT_POPEN( callToSystem.cap(1).latin1(), "r" ); 157 FILE *proc = QT_POPEN( callToSystem.cap(1).latin1(), "r" );
157 while ( proc && !feof(proc) ) { 158 while ( proc && !feof(proc) ) {
158 int read_in = fread( buff, 1, 255, proc ); 159 int read_in = fread( buff, 1, 255, proc );
159 if ( !read_in ) 160 if ( !read_in )
160 break; 161 break;
161 for ( int i = 0; i < read_in; i++ ) { 162 for ( int i = 0; i < read_in; i++ ) {