mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
Naive fix for quoted words with execvp.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9128 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
f6a49ae0f7
commit
292c3210f6
@ -1,3 +1,8 @@
|
||||
2004-10-25 Angus Leeming <leeming@lyx.org>
|
||||
|
||||
* forkedcall.C (generateChild): strip quotes from each argument
|
||||
of argv.
|
||||
|
||||
2004-09-26 Lars Gullik Bjonnes <larsbj@gullik.net>
|
||||
|
||||
* pch.h: use proper signal include
|
||||
|
@ -270,6 +270,29 @@ int Forkedcall::generateChild()
|
||||
argv.push_back(&*vit);
|
||||
prev = *vit;
|
||||
}
|
||||
// Strip quotes. Does so naively, assuming that the word begins
|
||||
// and ends in quotes.
|
||||
vector<char *>::iterator ait = argv.begin();
|
||||
vector<char *>::iterator const aend = argv.end();
|
||||
for (; ait != aend; ++ait) {
|
||||
char * word = *ait;
|
||||
std::size_t const len = strlen(word);
|
||||
if (len >= 2) {
|
||||
char & first = word[0];
|
||||
char & last = word[len-1];
|
||||
|
||||
if (first == last &&
|
||||
(first == '\'' || first == '"')) {
|
||||
first = '\0';
|
||||
last = '\0';
|
||||
*ait += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ait = argv.begin();
|
||||
for (; ait != aend; ++ait)
|
||||
std::cout << *ait << std::endl;
|
||||
argv.push_back(0);
|
||||
|
||||
#ifndef __EMX__
|
||||
|
Loading…
Reference in New Issue
Block a user