Skip to content

Commit 2d90df3

Browse files
committed
fixes
1 parent 7addb2d commit 2d90df3

5 files changed

+12
-7
lines changed

LispHighlighter.cpp

+5-3
Original file line numberDiff line numberDiff line change
@@ -161,13 +161,15 @@ void Highlighter::highlightBlock(const QString& text)
161161
{
162162
t = lex.readString();
163163
setFormat( 0, t.len, formatForCategory(C_Str) );
164-
if( !t.val.endsWith('"') )
164+
if( t.val.endsWith('"') && ((t.pos.col + t.len) < 2 || text[t.pos.col + t.len - 2] != '%') ) // ": -1, %: -2
165+
inString = false;
166+
else
165167
{
166168
// the whole line is in the string
167169
// lexer state remains the same
170+
setCurrentBlockState(previousBlockState_);
168171
return;
169-
}else
170-
inString = false;
172+
}
171173
}
172174

173175
t = lex.nextToken();

LispLexer.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,7 @@ Token Lexer::string()
510510
while( true )
511511
{
512512
c = readc();
513-
if( c == '%' )
513+
if( c == '%' ) // QUOTE has no influence here, see MACHINEINDEPENDENT line 1327
514514
{
515515
extra++;
516516
c = readc(); // escape

LispNavigator.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -1026,7 +1026,7 @@ int main(int argc, char *argv[])
10261026
a.setOrganizationName("[email protected]");
10271027
a.setOrganizationDomain("github.com/rochus-keller/Interlisp");
10281028
a.setApplicationName("InterlispNavigator");
1029-
a.setApplicationVersion("0.3.5");
1029+
a.setApplicationVersion("0.3.6");
10301030
a.setStyle("Fusion");
10311031

10321032
QFontDatabase::addApplicationFont(":/fonts/DejaVuSansMono.ttf");

LispReader.cpp

+4-1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ static const char* DEFINEQ;
4343
static const char* QUOTE;
4444
static const char* PUTPROPS;
4545
static const char* PUTPROP;
46+
static const char* SET;
4647
static const char* SETQ;
4748
static const char* SETQQ;
4849
static const char* RPAQ;
@@ -66,6 +67,7 @@ bool Reader::read(QIODevice* in, const QString& path)
6667
QUOTE = Token::getSymbol("QUOTE").constData();
6768
PUTPROPS = Token::getSymbol("PUTPROPS").constData();
6869
PUTPROP = Token::getSymbol("PUTPROP").constData();
70+
SET = Token::getSymbol("SET").constData();
6971
SETQ = Token::getSymbol("SETQ").constData();
7072
SETQQ = Token::getSymbol("SETQQ").constData();
7173
RPAQ = Token::getSymbol("RPAQ").constData();
@@ -204,7 +206,8 @@ Reader::Object Reader::list(Lexer& in, bool brack, List* outer)
204206
r = Ref::Decl;
205207
}else if( l->list.size() == 2 &&
206208
(l->list.first().getAtom() == PUTPROP ||
207-
l->list.first().getAtom() == PUTPROPS || l->list.first().getAtom() == SETQ ||
209+
l->list.first().getAtom() == PUTPROPS ||
210+
l->list.first().getAtom() == SET || l->list.first().getAtom() == SETQ ||
208211
l->list.first().getAtom() == SETQQ || l->list.first().getAtom() == RPAQ ||
209212
l->list.first().getAtom() == RPAQQ ) )
210213
{

Readme.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ The following precompiled versions are available at this time:
2525

2626
Just download and unpack the compressed file to a directory. Start the application by double clicking on the InterlispNavigator executable.
2727

28-
Here is a copy of the [Fugue.2 sources](http://software.rochus-keller.ch/interlisp-fugue-2-sources.zip) for convenience.
28+
Here is a copy of the (fixed) [Fugue.2 sources](http://software.rochus-keller.ch/interlisp-fugue-2-sources.zip) for convenience.
2929

3030
### Build Steps
3131

0 commit comments

Comments
 (0)