Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Marco Bubke
flatpak-qt-creator
Commits
bb7c90ad
Commit
bb7c90ad
authored
Feb 25, 2009
by
Roberto Raggi
Browse files
bugfix
parent
8ca887aa
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/tools/qpatch/files-to-patch-linux
View file @
bb7c90ad
...
...
@@ -281,6 +281,7 @@ plugins/sqldrivers/libqsqlite.so
plugins/sqldrivers/libqsqlite2.so
plugins/sqldrivers/libqsqlmysql.so
plugins/sqldrivers/libqsqlpsql.so
%%
lib/libQtCore.la
lib/libQt3Support.la
lib/libQtCLucene.la
...
...
src/tools/qpatch/qpatch.cpp
View file @
bb7c90ad
...
...
@@ -9,7 +9,7 @@ int main(int argc, char *argv[])
args
.
removeFirst
();
if
(
args
.
size
()
!=
3
)
{
std
::
cerr
<<
"Usage: qpatch file oldQtDir newQtDir"
<<
std
::
endl
;
std
::
cerr
<<
"Usage: qpatch file
.list
oldQtDir newQtDir"
<<
std
::
endl
;
return
EXIT_FAILURE
;
}
...
...
@@ -17,10 +17,6 @@ int main(int argc, char *argv[])
const
QByteArray
qtDirPath
=
QFile
::
encodeName
(
args
.
takeFirst
());
const
QByteArray
newQtPath
=
QFile
::
encodeName
(
args
.
takeFirst
());
QString
suffix
;
if
(
!
args
.
isEmpty
())
suffix
=
args
.
takeFirst
();
if
(
qtDirPath
.
size
()
<
newQtPath
.
size
())
{
std
::
cerr
<<
"qpatch: error: newQtDir needs to be less than "
<<
qtDirPath
.
size
()
<<
" characters."
<<
std
::
endl
;
...
...
@@ -33,44 +29,54 @@ int main(int argc, char *argv[])
return
EXIT_FAILURE
;
}
QStringList
filesToPatch
;
QStringList
filesToPatch
,
textFilesToPatch
;
bool
readingTextFilesToPatch
=
false
;
// read the input file
QTextStream
in
(
&
fn
);
forever
{
QString
line
;
line
=
in
.
readLine
();
const
QString
line
=
in
.
readLine
();
if
(
line
.
isNull
())
break
;
filesToPatch
.
append
(
line
);
}
else
if
(
line
.
isEmpty
())
continue
;
else
if
(
line
.
startsWith
(
QLatin1String
(
"%%"
)))
readingTextFilesToPatch
=
true
;
else
if
(
readingTextFilesToPatch
)
textFilesToPatch
.
append
(
line
);
else
filesToPatch
.
append
(
line
);
}
foreach
(
QString
fileName
,
filesToPatch
)
{
QString
prefix
=
newQtPath
;
QString
prefix
;
prefix
+=
newQtPath
;
if
(
!
prefix
.
endsWith
(
QLatin1Char
(
'/'
)))
prefix
+=
QLatin1Char
(
'/'
);
fileName
.
prepend
(
prefix
);
qDebug
()
<<
"patch file:"
<<
fileName
;
continue
;
QFile
file
(
fileName
);
if
(
!
file
.
open
(
QFile
::
ReadOnly
))
{
std
::
cerr
<<
"qpatch: warning: file not found"
<<
std
::
endl
;
std
::
cerr
<<
"qpatch: warning: file
`"
<<
qPrintable
(
fileName
)
<<
"'
not found"
<<
std
::
endl
;
continue
;
}
const
QFile
::
Permissions
permissions
=
file
.
permissions
();
const
QByteArray
source
=
file
.
readAll
();
file
.
close
();
int
index
=
0
;
QVector
<
char
>
patched
;
if
(
!
file
.
open
(
QFile
::
WriteOnly
|
QFile
::
Truncate
))
{
std
::
cerr
<<
"qpatch: error: file `"
<<
qPrintable
(
fileName
)
<<
"' not writable"
<<
std
::
endl
;
continue
;
}
forever
{
int
start
=
source
.
indexOf
(
qtDirPath
,
index
);
...
...
@@ -78,26 +84,26 @@ int main(int argc, char *argv[])
break
;
int
endOfString
=
start
;
while
(
source
.
at
(
endOfString
))
++
endOfString
;
for
(;
endOfString
<
source
.
size
();
++
endOfString
)
{
if
(
!
source
.
at
(
endOfString
))
break
;
}
++
endOfString
;
// include the '\0'
//qDebug() << "*** found string:" << source.mid(start, endOfString - start);
for
(
int
i
=
index
;
i
<
start
;
++
i
)
patched
.
append
(
source
.
at
(
i
));
if
(
index
!=
start
)
file
.
write
(
source
.
constData
()
+
index
,
start
-
index
);
int
length
=
endOfString
-
start
;
QVector
<
char
>
s
;
for
(
const
char
*
x
=
newQtPath
.
constData
();
x
!=
newQtPath
.
constEnd
()
-
1
;
++
x
)
for
(
const
char
*
x
=
newQtPath
.
constData
();
x
!=
newQtPath
.
constEnd
();
++
x
)
s
.
append
(
*
x
);
const
int
qtDirPathLength
=
qtDirPath
.
size
();
for
(
const
char
*
x
=
source
.
constData
()
+
start
+
qtDirPathLength
-
1
;
x
!=
source
.
constData
()
+
endOfString
;
++
x
)
for
(
const
char
*
x
=
source
.
constData
()
+
start
+
qtDirPathLength
;
x
!=
source
.
constData
()
+
endOfString
;
++
x
)
s
.
append
(
*
x
);
const
int
oldSize
=
s
.
size
();
...
...
@@ -105,20 +111,44 @@ int main(int argc, char *argv[])
for
(
int
i
=
oldSize
;
i
<
length
;
++
i
)
s
.
append
(
'\0'
);
for
(
int
i
=
0
;
i
<
s
.
size
();
++
i
)
patched
.
append
(
s
.
at
(
i
));
#if 0
std::cout << "replace string: " << source.mid(start, endOfString - start).constData()
<< " with: " << s.constData() << std::endl;
#endif
file
.
write
(
s
.
constData
(),
s
.
size
());
index
=
endOfString
;
}
for
(
int
i
=
index
;
i
<
source
.
size
();
++
i
)
patched
.
append
(
source
.
at
(
i
));
if
(
index
!=
source
.
size
())
file
.
write
(
source
.
constData
()
+
index
,
source
.
size
()
-
index
);
}
QFile
out
(
fileName
/* + suffix*/
);
out
.
setPermissions
(
permissions
);
if
(
out
.
open
(
QFile
::
WriteOnly
))
{
out
.
write
(
patched
.
constData
(),
patched
.
size
());
foreach
(
QString
fileName
,
textFilesToPatch
)
{
QString
prefix
=
newQtPath
;
if
(
!
prefix
.
endsWith
(
QLatin1Char
(
'/'
)))
prefix
+=
QLatin1Char
(
'/'
);
fileName
.
prepend
(
prefix
);
QFile
file
(
fileName
);
if
(
!
file
.
open
(
QFile
::
ReadOnly
))
{
std
::
cerr
<<
"qpatch: warning: file `"
<<
qPrintable
(
fileName
)
<<
"' not found"
<<
std
::
endl
;
continue
;
}
QByteArray
source
=
file
.
readAll
();
file
.
close
();
if
(
!
file
.
open
(
QFile
::
WriteOnly
|
QFile
::
Truncate
))
{
std
::
cerr
<<
"qpatch: error: file `"
<<
qPrintable
(
fileName
)
<<
"' not writable"
<<
std
::
endl
;
continue
;
}
source
.
replace
(
qtDirPath
,
newQtPath
);
file
.
write
(
source
);
}
return
0
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment