Home page logo
/
Intro Reference Guide Book Install Guide
Download Changelog Zenmap GUI Docs
Bug Reports OS Detection Propaganda Related Projects
In the Movies In the News

Library strbuf

String buffer facilities.

Lua's string operations are very flexible and offer an easy-to-use way to manipulate strings. Concatenation using the .. operator is such an operation. The drawback of the built-in API however is the way it handles concatenation of many string values. Since strings in Lua are immutable values, each time you concatenate two strings both get copied into the result string.

The strbuf module offers a workaround for this problem, while maintaining the nice syntax. This is accomplished by overloading the concatenation operator (..), the equality operator (==) and the tostring operator. A string buffer is created by passing a string to strbuf.new. Afterwards you can append to the string buffer, or compare two string buffers for equality just as you would do with normal strings.

When looking at the details there are some more restrictions/oddities: The concatenation operator requires its left-hand value to be a string buffer. Therefore, if you want to prepend a string to a given string buffer you have to create a new string buffer out of the string you want to prepend. The string buffer's tostring operator concatenates the strings inside the buffer using newlines by default, since this appears to be the separator used most often.

Example usage:

local buf = strbuf.new()
local buf2 = strbuf.new('hello')
buf = buf .. 'string'
buf = buf .. 'data'
print(buf)                   -- default separator is a newline
print(strbuf.dump(buf))      -- no separator
print(strbuf.dump(buf, ' ')) -- separated by spaces
strbuf.clear(buf)

Copyright© Same as Nmap--See http://nmap.org/book/man-legal.html

Source: http://nmap.org/svn/nselib/strbuf.lua

Functions

clear (sbuf)

Clears a string buffer.

concatbuf (sbuf, s)

Appends a string to a string buffer.

dump (sbuf, delimiter)

Dumps the string buffer as a string.

eqbuf (sbuf1, sbuf2)

Determines if the two string buffers are equal. Two buffers are equal if they are the same or if they have equivalent contents.

new (...)

Create a new string buffer.

tostring (sbuf)

Returns the string buffer as a string. The delimiter used is a newline.



Functions

clear (sbuf)

Clears a string buffer.

Parameters

  • sbuf: String buffer.
concatbuf (sbuf, s)

Appends a string to a string buffer.

Parameters

  • sbuf: String buffer.
  • s: String to append.

Return value:

sbuf.
dump (sbuf, delimiter)

Dumps the string buffer as a string.

The second parameter is used as a delimiter between the strings stored inside the string buffer.

Parameters

  • sbuf: String buffer to dump.
  • delimiter: String to separate the buffer's contents.

Return value:

Concatenated string result.
eqbuf (sbuf1, sbuf2)

Determines if the two string buffers are equal. Two buffers are equal if they are the same or if they have equivalent contents.

Parameters

  • sbuf1: String buffer one.
  • sbuf2: String buffer two.

Return value:

True if equal, false otherwise.
new (...)

Create a new string buffer.

The optional arguments are added to the string buffer. The result of adding non-strings is undefined. The equals and tostring operators for string buffers are overloaded to be eqbuf and tostring respectively.

Parameters

  • ...: Strings to add to the buffer initially.

Return value:

String buffer.
tostring (sbuf)

Returns the string buffer as a string. The delimiter used is a newline.

Parameters

  • sbuf: String buffer.

Return value:

String made from concatenating the buffer.

Nmap Site Navigation

Intro Reference Guide Book Install Guide
Download Changelog Zenmap GUI Docs
Bug Reports OS Detection Propaganda Related Projects
In the Movies In the News
[ Nmap | Sec Tools | Mailing Lists | Site News | About/Contact | Advertising | Privacy ]