about summary refs log tree commit diff stats
path: root/doc/pydoc/ranger.gui.widgets.statusbar.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/pydoc/ranger.gui.widgets.statusbar.html')
-rw-r--r--doc/pydoc/ranger.gui.widgets.statusbar.html108
1 files changed, 77 insertions, 31 deletions
diff --git a/doc/pydoc/ranger.gui.widgets.statusbar.html b/doc/pydoc/ranger.gui.widgets.statusbar.html
index 9144105d..52d245b8 100644
--- a/doc/pydoc/ranger.gui.widgets.statusbar.html
+++ b/doc/pydoc/ranger.gui.widgets.statusbar.html
@@ -9,9 +9,11 @@
 <font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.<a href="ranger.gui.widgets.html"><font color="#ffffff">widgets</font></a>.statusbar</strong></big></big></font></td
 ><td align=right valign=bottom
 ><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/work/ranger/ranger/gui/widgets/statusbar.py">/home/hut/work/ranger/ranger/gui/widgets/statusbar.py</a></font></td></tr></table>
-    <p><tt>The&nbsp;<a href="#StatusBar">StatusBar</a>&nbsp;displays&nbsp;information&nbsp;about&nbsp;the&nbsp;currently&nbsp;selected&nbsp;file<br>
-in&nbsp;the&nbsp;same&nbsp;form&nbsp;as&nbsp;the&nbsp;"ls&nbsp;-l"&nbsp;command&nbsp;on&nbsp;the&nbsp;left&nbsp;side,&nbsp;and<br>
-some&nbsp;additional&nbsp;info&nbsp;about&nbsp;the&nbsp;current&nbsp;directory&nbsp;on&nbsp;the&nbsp;right&nbsp;side.</tt></p>
+    <p><tt>The&nbsp;statusbar&nbsp;displays&nbsp;information&nbsp;about&nbsp;the&nbsp;current&nbsp;file&nbsp;and&nbsp;directory.<br>
+&nbsp;<br>
+On&nbsp;the&nbsp;left&nbsp;side,&nbsp;there&nbsp;is&nbsp;a&nbsp;display&nbsp;similar&nbsp;to&nbsp;what&nbsp;"ls&nbsp;-l"&nbsp;would<br>
+print&nbsp;for&nbsp;the&nbsp;current&nbsp;file.&nbsp;&nbsp;The&nbsp;right&nbsp;side&nbsp;shows&nbsp;directory&nbsp;information<br>
+such&nbsp;as&nbsp;the&nbsp;space&nbsp;used&nbsp;by&nbsp;all&nbsp;the&nbsp;files&nbsp;in&nbsp;this&nbsp;directory.</tt></p>
 <p>
 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
 <tr bgcolor="#ee77aa">
@@ -20,6 +22,12 @@ some&nbsp;additional&nbsp;info&nbsp;about&nbsp;the&nbsp;current&nbsp;directory&n
     
 <tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
 <td width="100%"><dl>
+<dt><font face="helvetica, arial"><a href="builtins.html#object">builtins.object</a>
+</font></dt><dd>
+<dl>
+<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.statusbar.html#Message">Message</a>
+</font></dt></dl>
+</dd>
 <dt><font face="helvetica, arial"><a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>(<a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>)
 </font></dt><dd>
 <dl>
@@ -31,12 +39,42 @@ some&nbsp;additional&nbsp;info&nbsp;about&nbsp;the&nbsp;current&nbsp;directory&n
 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
 <tr bgcolor="#ffc8d8">
 <td colspan=3 valign=bottom>&nbsp;<br>
+<font color="#000000" face="helvetica, arial"><a name="Message">class <strong>Message</strong></a>(<a href="builtins.html#object">builtins.object</a>)</font></td></tr>
+    
+<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
+<td width="100%">Methods defined here:<br>
+<dl><dt><a name="Message-__init__"><strong>__init__</strong></a>(self, text, duration, bad)</dt></dl>
+
+<dl><dt><a name="Message-is_alive"><strong>is_alive</strong></a>(self)</dt></dl>
+
+<hr>
+Data descriptors defined here:<br>
+<dl><dt><strong>__dict__</strong></dt>
+<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
+</dl>
+<dl><dt><strong>__weakref__</strong></dt>
+<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
+</dl>
+<hr>
+Data and other attributes defined here:<br>
+<dl><dt><strong>bad</strong> = False</dl>
+
+<dl><dt><strong>elapse</strong> = None</dl>
+
+<dl><dt><strong>text</strong> = None</dl>
+
+</td></tr></table> <p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#ffc8d8">
+<td colspan=3 valign=bottom>&nbsp;<br>
 <font color="#000000" face="helvetica, arial"><a name="StatusBar">class <strong>StatusBar</strong></a>(<a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>)</font></td></tr>
     
 <tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
-<td colspan=2><tt>The&nbsp;<a href="#StatusBar">StatusBar</a>&nbsp;displays&nbsp;information&nbsp;about&nbsp;the&nbsp;currently&nbsp;selected&nbsp;file<br>
-in&nbsp;the&nbsp;same&nbsp;form&nbsp;as&nbsp;the&nbsp;"ls&nbsp;-l"&nbsp;command&nbsp;on&nbsp;the&nbsp;left&nbsp;side,&nbsp;and<br>
-some&nbsp;additional&nbsp;info&nbsp;about&nbsp;the&nbsp;current&nbsp;directory&nbsp;on&nbsp;the&nbsp;right&nbsp;side.<br>&nbsp;</tt></td></tr>
+<td colspan=2><tt>The&nbsp;statusbar&nbsp;displays&nbsp;information&nbsp;about&nbsp;the&nbsp;current&nbsp;file&nbsp;and&nbsp;directory.<br>
+&nbsp;<br>
+On&nbsp;the&nbsp;left&nbsp;side,&nbsp;there&nbsp;is&nbsp;a&nbsp;display&nbsp;similar&nbsp;to&nbsp;what&nbsp;"ls&nbsp;-l"&nbsp;would<br>
+print&nbsp;for&nbsp;the&nbsp;current&nbsp;file.&nbsp;&nbsp;The&nbsp;right&nbsp;side&nbsp;shows&nbsp;directory&nbsp;information<br>
+such&nbsp;as&nbsp;the&nbsp;space&nbsp;used&nbsp;by&nbsp;all&nbsp;the&nbsp;files&nbsp;in&nbsp;this&nbsp;directory.<br>&nbsp;</tt></td></tr>
 <tr><td>&nbsp;</td>
 <td width="100%"><dl><dt>Method resolution order:</dt>
 <dd><a href="ranger.gui.widgets.statusbar.html#StatusBar">StatusBar</a></dd>
@@ -45,26 +83,31 @@ some&nbsp;additional&nbsp;info&nbsp;about&nbsp;the&nbsp;current&nbsp;directory&n
 <dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
 <dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
 <dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
+<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a></dd>
 <dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
 <dd><a href="builtins.html#object">builtins.object</a></dd>
 </dl>
 <hr>
 Methods defined here:<br>
-<dl><dt><a name="StatusBar-__init__"><strong>__init__</strong></a>(self, win, filelist<font color="#909090">=None</font>)</dt></dl>
+<dl><dt><a name="StatusBar-__init__"><strong>__init__</strong></a>(self, win, column<font color="#909090">=None</font>)</dt></dl>
 
 <dl><dt><a name="StatusBar-draw"><strong>draw</strong></a>(self)</dt><dd><tt>Draw&nbsp;the&nbsp;statusbar</tt></dd></dl>
 
+<dl><dt><a name="StatusBar-notify"><strong>notify</strong></a>(self, text, duration<font color="#909090">=4</font>, bad<font color="#909090">=False</font>)</dt></dl>
+
 <hr>
 Data and other attributes defined here:<br>
 <dl><dt><strong>groups</strong> = {}</dl>
 
-<dl><dt><strong>old_cf</strong> = None</dl>
+<dl><dt><strong>hint</strong> = None</dl>
 
-<dl><dt><strong>old_mtime</strong> = None</dl>
+<dl><dt><strong>msg</strong> = None</dl>
+
+<dl><dt><strong>old_cf</strong> = None</dl>
 
-<dl><dt><strong>old_wid</strong> = None</dl>
+<dl><dt><strong>old_hint</strong> = None</dl>
 
-<dl><dt><strong>override</strong> = None</dl>
+<dl><dt><strong>old_mtime</strong> = None</dl>
 
 <dl><dt><strong>owners</strong> = {}</dl>
 
@@ -75,22 +118,19 @@ Data and other attributes defined here:<br>
 <hr>
 Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
 <dl><dt><a name="StatusBar-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is&nbsp;item&nbsp;inside&nbsp;the&nbsp;boundaries?<br>
-item&nbsp;can&nbsp;be&nbsp;an&nbsp;iterable&nbsp;like&nbsp;[y,&nbsp;x]&nbsp;or&nbsp;an&nbsp;object&nbsp;with&nbsp;x&nbsp;and&nbsp;y&nbsp;methods.</tt></dd></dl>
+item&nbsp;can&nbsp;be&nbsp;an&nbsp;iterable&nbsp;like&nbsp;[y,&nbsp;x]&nbsp;or&nbsp;an&nbsp;<a href="builtins.html#object">object</a>&nbsp;with&nbsp;x&nbsp;and&nbsp;y&nbsp;methods.</tt></dd></dl>
 
 <dl><dt><a name="StatusBar-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
 
+<dl><dt><a name="StatusBar-__str__"><strong>__str__</strong></a>(self)</dt></dl>
+
 <dl><dt><a name="StatusBar-click"><strong>click</strong></a>(self, event)</dt><dd><tt>Called&nbsp;when&nbsp;a&nbsp;mouse&nbsp;key&nbsp;is&nbsp;pressed&nbsp;and&nbsp;self.<strong>focused</strong>&nbsp;is&nbsp;True.<br>
 Override&nbsp;this!</tt></dd></dl>
 
-<dl><dt><a name="StatusBar-color"><strong>color</strong></a>(self, keylist<font color="#909090">=None</font>, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl>
+<dl><dt><a name="StatusBar-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test&nbsp;whether&nbsp;the&nbsp;point&nbsp;(with&nbsp;absolute&nbsp;coordinates)&nbsp;lies<br>
+within&nbsp;the&nbsp;boundaries&nbsp;of&nbsp;this&nbsp;<a href="builtins.html#object">object</a>.</tt></dd></dl>
 
-<dl><dt><a name="StatusBar-color_at"><strong>color_at</strong></a>(self, y, x, wid, keylist<font color="#909090">=None</font>, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl>
-
-<dl><dt><a name="StatusBar-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;colors</tt></dd></dl>
-
-<dl><dt><a name="StatusBar-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test&nbsp;if&nbsp;the&nbsp;point&nbsp;lies&nbsp;within&nbsp;the&nbsp;boundaries&nbsp;of&nbsp;this&nbsp;object</tt></dd></dl>
-
-<dl><dt><a name="StatusBar-destroy"><strong>destroy</strong></a>(self)</dt><dd><tt>Called&nbsp;when&nbsp;the&nbsp;object&nbsp;is&nbsp;destroyed.<br>
+<dl><dt><a name="StatusBar-destroy"><strong>destroy</strong></a>(self)</dt><dd><tt>Called&nbsp;when&nbsp;the&nbsp;<a href="builtins.html#object">object</a>&nbsp;is&nbsp;destroyed.<br>
 Override&nbsp;this!</tt></dd></dl>
 
 <dl><dt><a name="StatusBar-finalize"><strong>finalize</strong></a>(self)</dt><dd><tt>Called&nbsp;after&nbsp;every&nbsp;displayable&nbsp;is&nbsp;done&nbsp;drawing.<br>
@@ -104,16 +144,6 @@ Override&nbsp;this!</tt></dd></dl>
 <dl><dt><a name="StatusBar-resize"><strong>resize</strong></a>(self, y, x, hei<font color="#909090">=None</font>, wid<font color="#909090">=None</font>)</dt><dd><tt>Resize&nbsp;the&nbsp;widget</tt></dd></dl>
 
 <hr>
-Data and other attributes inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
-<dl><dt><strong>colorscheme</strong> = None</dl>
-
-<dl><dt><strong>focused</strong> = False</dl>
-
-<dl><dt><strong>visible</strong> = True</dl>
-
-<dl><dt><strong>win</strong> = None</dl>
-
-<hr>
 Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
 <dl><dt><strong>env</strong> = None</dl>
 
@@ -130,8 +160,20 @@ Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.sh
 <dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
 </dl>
 <hr>
+Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>:<br>
+<dl><dt><a name="StatusBar-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
+
+<dl><dt><a name="StatusBar-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
+
+<dl><dt><a name="StatusBar-color"><strong>color</strong></a>(self, keylist<font color="#909090">=None</font>, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl>
+
+<dl><dt><a name="StatusBar-color_at"><strong>color_at</strong></a>(self, y, x, wid, keylist<font color="#909090">=None</font>, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl>
+
+<dl><dt><a name="StatusBar-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;colors</tt></dd></dl>
+
+<hr>
 Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = &lt;ranger.ext.openstruct.OpenStruct object at 0x154e450&gt;</dl>
+<dl><dt><strong>settings</strong> = &lt;ranger.ext.openstruct.OpenStruct object at 0x7f20a718ad90&gt;</dl>
 
 </td></tr></table></td></tr></table><p>
 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
@@ -160,5 +202,9 @@ When&nbsp;'seconds'&nbsp;is&nbsp;not&nbsp;passed&nbsp;in,&nbsp;convert&nbsp;the&
 Convert&nbsp;a&nbsp;time&nbsp;tuple&nbsp;to&nbsp;a&nbsp;string&nbsp;according&nbsp;to&nbsp;a&nbsp;format&nbsp;specification.<br>
 See&nbsp;the&nbsp;library&nbsp;reference&nbsp;manual&nbsp;for&nbsp;formatting&nbsp;codes.&nbsp;When&nbsp;the&nbsp;time&nbsp;tuple<br>
 is&nbsp;not&nbsp;present,&nbsp;current&nbsp;time&nbsp;as&nbsp;returned&nbsp;by&nbsp;<a href="#-localtime">localtime</a>()&nbsp;is&nbsp;used.</tt></dd></dl>
+ <dl><dt><a name="-time"><strong>time</strong></a>(...)</dt><dd><tt><a href="#-time">time</a>()&nbsp;-&gt;&nbsp;floating&nbsp;point&nbsp;number<br>
+&nbsp;<br>
+Return&nbsp;the&nbsp;current&nbsp;time&nbsp;in&nbsp;seconds&nbsp;since&nbsp;the&nbsp;Epoch.<br>
+Fractions&nbsp;of&nbsp;a&nbsp;second&nbsp;may&nbsp;be&nbsp;present&nbsp;if&nbsp;the&nbsp;system&nbsp;clock&nbsp;provides&nbsp;them.</tt></dd></dl>
 </td></tr></table>
 </body></html>
\ No newline at end of file
pan>'a'..'z', 'A'..'Z', '0'..'9', '_', '\x80'..'\xFF'} # # ---------------------------------------------------------------------------- proc rawGetTok(c: var TCfgParser, tok: var TToken) proc open(c: var TCfgParser, filename: string, inputStream: PLLStream) = openBaseLexer(c, inputStream) c.filename = filename c.state = startState c.tok.kind = tkInvalid c.tok.literal = "" rawGetTok(c, c.tok) proc close(c: var TCfgParser) = closeBaseLexer(c) proc getColumn(c: TCfgParser): int = result = getColNumber(c, c.bufPos) proc getLine(c: TCfgParser): int = result = c.linenumber proc getFilename(c: TCfgParser): string = result = c.filename proc handleHexChar(c: var TCfgParser, xi: var int) = case c.buf[c.bufpos] of '0'..'9': xi = (xi shl 4) or (ord(c.buf[c.bufpos]) - ord('0')) inc(c.bufpos) of 'a'..'f': xi = (xi shl 4) or (ord(c.buf[c.bufpos]) - ord('a') + 10) inc(c.bufpos) of 'A'..'F': xi = (xi shl 4) or (ord(c.buf[c.bufpos]) - ord('A') + 10) inc(c.bufpos) else: nil proc handleDecChars(c: var TCfgParser, xi: var int) = while c.buf[c.bufpos] in {'0'..'9'}: xi = (xi * 10) + (ord(c.buf[c.bufpos]) - ord('0')) inc(c.bufpos) proc getEscapedChar(c: var TCfgParser, tok: var TToken) = var xi: int inc(c.bufpos) # skip '\' case c.buf[c.bufpos] of 'n', 'N': tok.literal = tok.literal & "\n" Inc(c.bufpos) of 'r', 'R', 'c', 'C': add(tok.literal, CR) Inc(c.bufpos) of 'l', 'L': add(tok.literal, LF) Inc(c.bufpos) of 'f', 'F': add(tok.literal, FF) inc(c.bufpos) of 'e', 'E': add(tok.literal, ESC) Inc(c.bufpos) of 'a', 'A': add(tok.literal, BEL) Inc(c.bufpos) of 'b', 'B': add(tok.literal, BACKSPACE) Inc(c.bufpos) of 'v', 'V': add(tok.literal, VT) Inc(c.bufpos) of 't', 'T': add(tok.literal, Tabulator) Inc(c.bufpos) of '\'', '\"': add(tok.literal, c.buf[c.bufpos]) Inc(c.bufpos) of '\\': add(tok.literal, '\\') Inc(c.bufpos) of 'x', 'X': inc(c.bufpos) xi = 0 handleHexChar(c, xi) handleHexChar(c, xi) add(tok.literal, Chr(xi)) of '0'..'9': xi = 0 handleDecChars(c, xi) if (xi <= 255): add(tok.literal, Chr(xi)) else: tok.kind = tkInvalid else: tok.kind = tkInvalid proc HandleCRLF(c: var TCfgParser, pos: int): int = case c.buf[pos] of CR: result = lexbase.HandleCR(c, pos) of LF: result = lexbase.HandleLF(c, pos) else: result = pos proc getString(c: var TCfgParser, tok: var TToken, rawMode: bool) = var pos: int ch: Char buf: cstring pos = c.bufPos + 1 # skip " buf = c.buf # put `buf` in a register tok.kind = tkSymbol if (buf[pos] == '\"') and (buf[pos + 1] == '\"'): # long string literal: inc(pos, 2) # skip "" # skip leading newline: pos = HandleCRLF(c, pos) buf = c.buf while true: case buf[pos] of '\"': if (buf[pos + 1] == '\"') and (buf[pos + 2] == '\"'): break add(tok.literal, '\"') Inc(pos) of CR, LF: pos = HandleCRLF(c, pos) buf = c.buf tok.literal = tok.literal & "\n" of lexbase.EndOfFile: tok.kind = tkInvalid break else: add(tok.literal, buf[pos]) Inc(pos) c.bufpos = pos + 3 # skip the three """ else: # ordinary string literal while true: ch = buf[pos] if ch == '\"': inc(pos) # skip '"' break if ch in {CR, LF, lexbase.EndOfFile}: tok.kind = tkInvalid break if (ch == '\\') and not rawMode: c.bufPos = pos getEscapedChar(c, tok) pos = c.bufPos else: add(tok.literal, ch) Inc(pos) c.bufpos = pos proc getSymbol(c: var TCfgParser, tok: var TToken) = var pos: int buf: cstring pos = c.bufpos buf = c.buf while true: add(tok.literal, buf[pos]) Inc(pos) if not (buf[pos] in SymChars): break c.bufpos = pos tok.kind = tkSymbol proc skip(c: var TCfgParser) = var buf: cstring pos: int pos = c.bufpos buf = c.buf while true: case buf[pos] of ' ': Inc(pos) of Tabulator: inc(pos) of '#', ';': while not (buf[pos] in {CR, LF, lexbase.EndOfFile}): inc(pos) of CR, LF: pos = HandleCRLF(c, pos) buf = c.buf else: break # EndOfFile also leaves the loop c.bufpos = pos proc rawGetTok(c: var TCfgParser, tok: var TToken) = tok.kind = tkInvalid setlen(tok.literal, 0) skip(c) case c.buf[c.bufpos] of '=': tok.kind = tkEquals inc(c.bufpos) tok.literal = "=" of '-': inc(c.bufPos) if c.buf[c.bufPos] == '-': inc(c.bufPos) tok.kind = tkDashDash tok.literal = "--" of ':': tok.kind = tkColon inc(c.bufpos) tok.literal = ":" of 'r', 'R': if c.buf[c.bufPos + 1] == '\"': Inc(c.bufPos) getString(c, tok, true) else: getSymbol(c, tok) of '[': tok.kind = tkBracketLe inc(c.bufpos) tok.literal = "[" of ']': tok.kind = tkBracketRi Inc(c.bufpos) tok.literal = "]" of '\"': getString(c, tok, false) of lexbase.EndOfFile: tok.kind = tkEof else: getSymbol(c, tok) proc errorStr(c: TCfgParser, msg: string): string = result = `%`("$1($2, $3) Error: $4", [c.filename, $(getLine(c)), $(getColumn(c)), msg]) proc getKeyValPair(c: var TCfgParser, kind: TCfgEventKind): TCfgEvent = if c.tok.kind == tkSymbol: result.kind = kind result.key = c.tok.literal result.value = "" rawGetTok(c, c.tok) while c.tok.literal == ".": add(result.key, '.') rawGetTok(c, c.tok) if c.tok.kind == tkSymbol: add(result.key, c.tok.literal) rawGetTok(c, c.tok) else: result.kind = cfgError result.msg = errorStr(c, "symbol expected, but found: " & c.tok.literal) break if c.tok.kind in {tkEquals, tkColon}: rawGetTok(c, c.tok) if c.tok.kind == tkSymbol: result.value = c.tok.literal else: result.kind = cfgError result.msg = errorStr(c, "symbol expected, but found: " & c.tok.literal) rawGetTok(c, c.tok) else: result.kind = cfgError result.msg = errorStr(c, "symbol expected, but found: " & c.tok.literal) rawGetTok(c, c.tok) proc next(c: var TCfgParser): TCfgEvent = case c.tok.kind of tkEof: result.kind = cfgEof of tkDashDash: rawGetTok(c, c.tok) result = getKeyValPair(c, cfgOption) of tkSymbol: result = getKeyValPair(c, cfgKeyValuePair) of tkBracketLe: rawGetTok(c, c.tok) if c.tok.kind == tkSymbol: result.kind = cfgSectionStart result.section = c.tok.literal else: result.kind = cfgError result.msg = errorStr(c, "symbol expected, but found: " & c.tok.literal) rawGetTok(c, c.tok) if c.tok.kind == tkBracketRi: rawGetTok(c, c.tok) else: result.kind = cfgError result.msg = errorStr(c, "\']\' expected, but found: " & c.tok.literal) of tkInvalid, tkBracketRi, tkEquals, tkColon: result.kind = cfgError result.msg = errorStr(c, "invalid token: " & c.tok.literal) rawGetTok(c, c.tok)