From 07a73aea7acbf0d9f9182bc3557583aa17af0000 Mon Sep 17 00:00:00 2001 From: Alexis211 Date: Sun, 20 Dec 2009 13:33:28 +0100 Subject: [not really working] Started work on OStream --- Source/Applications/PaperWork/PaperWork.cpp | 9 ++-- Source/Applications/Shell/Shell-fs.class.cpp | 4 +- Source/Applications/Shell/Shell.class.cpp | 2 +- Source/Applications/Shell/main.cpp | 5 -- Source/Kernel/Core/Sys.ns.cpp | 4 +- Source/Kernel/Core/Sys.ns.h | 2 +- Source/Library/Common/OStream.proto.cpp | 60 ++++++++++++++++++++++ Source/Library/Common/OStream.proto.h | 38 ++++++++++++++ Source/Library/Common/SimpleList.class.h | 13 +++++ Source/Library/Makefile | 1 + .../Userland/Binding/VirtualTerminal.class.h | 16 +++--- 11 files changed, 129 insertions(+), 25 deletions(-) delete mode 100644 Source/Applications/Shell/main.cpp create mode 100644 Source/Library/Common/OStream.proto.cpp create mode 100644 Source/Library/Common/OStream.proto.h (limited to 'Source') diff --git a/Source/Applications/PaperWork/PaperWork.cpp b/Source/Applications/PaperWork/PaperWork.cpp index 4f9cb0e..ac6f26d 100644 --- a/Source/Applications/PaperWork/PaperWork.cpp +++ b/Source/Applications/PaperWork/PaperWork.cpp @@ -1,6 +1,7 @@ #include #define DEFAULT_SHELL "/Applications/Shell/Shell.app" +#define PAPERWORK_PATH "/System/Applications/PaperWork.app" class PaperWork : public ShellApp { public: @@ -20,7 +21,7 @@ int PaperWork::run() { if (act == "init") { while (1) { - Process p = Process::run("/System/Applications/PaperWork.app"); + Process p = Process::run(PAPERWORK_PATH); if (p.valid()) { p.setInVT(invt); p.setOutVT(outvt); @@ -35,15 +36,15 @@ int PaperWork::run() { outvt << "Logging in to Melon\n"; String user, pw; while (1) { - outvt << "Username: "; + outvt << "Username: " << FLUSH; user = invt.readLine(); - outvt << "Password: "; + outvt << "Password: " << FLUSH; pw = invt.readLine(false); if (!Process::get().authenticatePW(user, pw)) { outvt << "Authentication failed.\n\n"; continue; } - outvt << "What shell to run [" << sFlag("shell") << "]? "; + outvt << "What shell to run [" << sFlag("shell") << "]? "<< FLUSH; String sh = invt.readLine(); if (sh == "") sh = sFlag("shell"); Process p = Process::run(sh); diff --git a/Source/Applications/Shell/Shell-fs.class.cpp b/Source/Applications/Shell/Shell-fs.class.cpp index 150b877..30faaf7 100644 --- a/Source/Applications/Shell/Shell-fs.class.cpp +++ b/Source/Applications/Shell/Shell-fs.class.cpp @@ -28,11 +28,11 @@ void Shell::ls(Vector& args) { if (((p >> i) & 1) == 0) perm[8 - i] = "-"; } if (n.type() == NT_FILE) { - outvt << " FILE " << perm << " " << n.getName(); + outvt << " FILE " << perm << " " << n.getName() << FLUSH; outvt.setCsrCol(30); outvt << (s32int)n.getLength() << " bytes.\n"; } else if (n.type() == NT_DIRECTORY) { - outvt << " DIR " << perm << " " << n.getName() << "/"; + outvt << " DIR " << perm << " " << n.getName() << "/" << FLUSH; outvt.setCsrCol(30); outvt << (s32int)n.getLength() << " items.\n"; } diff --git a/Source/Applications/Shell/Shell.class.cpp b/Source/Applications/Shell/Shell.class.cpp index 3d406c8..bfbf631 100644 --- a/Source/Applications/Shell/Shell.class.cpp +++ b/Source/Applications/Shell/Shell.class.cpp @@ -25,7 +25,7 @@ int Shell::run() { cwd = FS::cwdNode(); while (1) { - outvt << "{" << cwd.getName() << "}: "; + outvt << "{" << cwd.getName() << "}: " << FLUSH; String s = invt.readLine(); if (s.empty()) continue; while (s[0] == WChar(" ") or s[0] == WChar("\t")) { diff --git a/Source/Applications/Shell/main.cpp b/Source/Applications/Shell/main.cpp deleted file mode 100644 index 66c4269..0000000 --- a/Source/Applications/Shell/main.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include "Shell.ns.h" - -int main(const Vector& args) { - return Shell::run(); -} diff --git a/Source/Kernel/Core/Sys.ns.cpp b/Source/Kernel/Core/Sys.ns.cpp index c5af3e8..59da244 100644 --- a/Source/Kernel/Core/Sys.ns.cpp +++ b/Source/Kernel/Core/Sys.ns.cpp @@ -85,9 +85,9 @@ void dumpRegs(registers_t *regs, VirtualTerminal& vt) { vt << "eflags=" << (u32int)regs->eflags << ", useresp=" << (u32int)regs->useresp << ", ss=" << (u32int)regs->ss << "\n"; } -void stackTrace(u32int ebp, VirtualTerminal& vt, u32int maxframes) { +void stackTrace(u32int ebp, VirtualTerminal& vt, u32int maxframes, bool isUser) { u32int *stack = (u32int*)ebp; - for (u32int i = 0; i < maxframes and (u32int)stack > 0xC0000000 and (u32int)stack < (ebp + 0x10000); i++) { + for (u32int i = 0; i < maxframes and (isUser or ((u32int)stack > 0xC0000000)) and (u32int)stack < (ebp + 0x10000); i++) { vt << "Frame: " << (u32int)stack << " n:" << stack[0] << " r:" << stack[1] << "\n"; stack = (u32int*)stack[0]; } diff --git a/Source/Kernel/Core/Sys.ns.h b/Source/Kernel/Core/Sys.ns.h index 26f04e6..f386135 100644 --- a/Source/Kernel/Core/Sys.ns.h +++ b/Source/Kernel/Core/Sys.ns.h @@ -30,7 +30,7 @@ namespace Sys { u8int inb(u16int port); u16int inw(u16int port); void dumpRegs(registers_t *regs, VirtualTerminal& vt); - void stackTrace(u32int ebp, VirtualTerminal& vt, u32int maxframes); + void stackTrace(u32int ebp, VirtualTerminal& vt, u32int maxframes, bool isUser = false); void panic(char* message, char *file, u32int line); void panic(char* message, registers_t *regs, char *file, u32int line); void panic_assert(char* file, u32int line, char *desc); diff --git a/Source/Library/Common/OStream.proto.cpp b/Source/Library/Common/OStream.proto.cpp new file mode 100644 index 0000000..bbf5dc3 --- /dev/null +++ b/Source/Library/Common/OStream.proto.cpp @@ -0,0 +1,60 @@ +#include + +OStream::OStream() { + m_buffer = NULL; + m_last = NULL; +} + +OStream::OStream(const OStream& other) { + m_buffer = NULL; + m_last = NULL; +} + +void OStream::put(const String &s) { + waitLock(); + if (m_buffer == NULL or m_last == NULL) { + m_buffer = m_last = new SimpleList(s); + } else { + m_last = m_last->addAtEnd(s); + } + unlock(); +} + +void OStream::flush() { + if (m_buffer == NULL or m_last == NULL) return; + + waitLock(); + //Calculate buffer size + int size = 0; + SimpleList* iter = m_buffer; + for (; iter != 0; iter = iter->next()) { + size += iter->v().size(); + } + //Get stuff + String buff(WChar(" "), size); + iter = m_buffer; + for (int i = 0, pos = 0; i < size; i++, pos++) { + if (pos >= iter->v().size()) { + iter = iter->next(); + pos = 0; + } + buff[i] = iter->v()[pos]; + } + //Write it + write(buff); + + delete m_buffer; + m_buffer = NULL; + m_last = NULL; + + unlock(); +} + +OStream& OStream::operator<< (ostream_modifiers_e m) { + if (m == FLUSH) { + flush(); + } else if (m == ENDL) { + put("\n"); + } + return *this; +} diff --git a/Source/Library/Common/OStream.proto.h b/Source/Library/Common/OStream.proto.h new file mode 100644 index 0000000..2fc68e1 --- /dev/null +++ b/Source/Library/Common/OStream.proto.h @@ -0,0 +1,38 @@ +#ifndef DEF_ISTREAM_PROTO_H +#define DEF_ISTREAM_PROTO_H + +#include +#include +#include + +enum ostream_modifiers_e { + FLUSH, + ENDL +}; + +class OStream : private Mutex { + private: + SimpleList *m_buffer; + SimpleList *m_last; + void operator =(OStream& other); + + protected: + virtual void write(const String &s) = 0; + + public: + OStream(); + OStream(const OStream& other); + virtual ~OStream() { flush(); } + + void put(const String& s); + void flush(); + + //Formatting functions + OStream& operator << (const String& s) { put(s); if (s.contains("\n")) flush(); return *this; } + OStream& operator << (s64int i) { put(String::number(i)); return *this; } + OStream& operator << (s32int i) { put(String::number(i)); return *this; } + OStream& operator << (u32int i) { put(String::hex(i)); return *this; } + OStream& operator << (ostream_modifiers_e m); +}; + +#endif diff --git a/Source/Library/Common/SimpleList.class.h b/Source/Library/Common/SimpleList.class.h index 8fcd834..2bbbace 100644 --- a/Source/Library/Common/SimpleList.class.h +++ b/Source/Library/Common/SimpleList.class.h @@ -25,6 +25,19 @@ class SimpleList { return new SimpleList(value, this); } + SimpleList* addAtEnd(const T& value) { + if (this == 0) { + return new SimpleList(value); + } else { + if (m_next == 0) { + m_next = new SimpleList(value); + return m_next; + } else { + return m_next->addAtEnd(value); + } + } + } + SimpleList* next() { return m_next; } diff --git a/Source/Library/Makefile b/Source/Library/Makefile index b3040d4..ed65ac4 100644 --- a/Source/Library/Makefile +++ b/Source/Library/Makefile @@ -19,6 +19,7 @@ Objects = Common/WChar.class.uo \ Common/TextFile.class.uo \ Common/ByteArray.class.uo \ Common/Rand.ns.uo \ + Common/OStream.proto.uo \ Common/cppsupport.wtf.uo \ Userland/App/ShellApp.proto.uo \ Userland/Syscall/Syscall.wtf.uo \ diff --git a/Source/Library/Userland/Binding/VirtualTerminal.class.h b/Source/Library/Userland/Binding/VirtualTerminal.class.h index 70c6b23..df44124 100644 --- a/Source/Library/Userland/Binding/VirtualTerminal.class.h +++ b/Source/Library/Userland/Binding/VirtualTerminal.class.h @@ -6,10 +6,10 @@ #include #include -#include +#include #include -class VirtualTerminal : public RessourceCaller { +class VirtualTerminal : public RessourceCaller, public OStream { public: static VirtualTerminal getIn() { u32int id = RessourceCaller::sCall(VTIF_OBJTYPE, VTIF_SGETPRINVT); @@ -21,13 +21,13 @@ class VirtualTerminal : public RessourceCaller { } VirtualTerminal(u32int id) : RessourceCaller(id, VTIF_OBJTYPE) {} - void writeHex(u32int number) { + /*void writeHex(u32int number) { doCall(VTIF_WRITEHEX, number); } void writeDec(s64int number) { doCall(VTIF_WRITEDEC, (number >> 32), number); - } - void write(String s) { + }*/ + void write(const String &s) { doCall(VTIF_WRITE, (u32int)&s); } keypress_t getKeypress(bool show = true, bool block = true) { @@ -35,6 +35,7 @@ class VirtualTerminal : public RessourceCaller { return *ptr; } String readLine(bool show = true) { + flush(); return String::unserialize(doCall(VTIF_READLINE, (show ? 1 : 0))); } void setColor(u8int fg, u8int bg = 0xFF) { @@ -64,11 +65,6 @@ class VirtualTerminal : public RessourceCaller { void put(u8int line, u8int col, WChar c) { moveCursor(line, col); put(c); } - - inline VirtualTerminal& operator<<(const String& s) { write(s); return *this; } - inline VirtualTerminal& operator<<(s32int i) { writeDec(i); return *this; } - inline VirtualTerminal& operator<<(s64int i) { writeDec(i); return *this; } - inline VirtualTerminal& operator<<(u32int i) { writeHex(i); return *this; } }; #endif -- cgit v1.2.3 From cab353cbb21c142ac1e227d42338fa587e1a7f24 Mon Sep 17 00:00:00 2001 From: Alexis211 Date: Sun, 20 Dec 2009 15:21:26 +0100 Subject: Worked on IStream. Seems to work --- Source/Applications/PaperWork/Makefile | 2 +- Source/Applications/PaperWork/Map.txt | 1394 ++++++++++++++++++++ Source/Applications/PaperWork/PaperWork.cpp | 4 +- Source/Applications/Shell/Shell.class.cpp | 2 +- Source/Library/Common/IStream.proto.cpp | 73 + Source/Library/Common/IStream.proto.h | 29 + Source/Library/Makefile | 1 + Source/Library/Userland/App/ShellApp.proto.cpp | 23 +- Source/Library/Userland/Binding/Process.class.h | 4 +- .../Userland/Binding/VirtualTerminal.class.h | 6 +- .../Userland/Syscall/RessourceCaller.class.h | 4 +- 11 files changed, 1526 insertions(+), 16 deletions(-) create mode 100644 Source/Applications/PaperWork/Map.txt create mode 100644 Source/Library/Common/IStream.proto.cpp create mode 100644 Source/Library/Common/IStream.proto.h (limited to 'Source') diff --git a/Source/Applications/PaperWork/Makefile b/Source/Applications/PaperWork/Makefile index d3203cf..8d079ec 100644 --- a/Source/Applications/PaperWork/Makefile +++ b/Source/Applications/PaperWork/Makefile @@ -4,7 +4,7 @@ CXX = g++ CXXFLAGS = -nostartfiles -nostdlib -ffreestanding -fno-exceptions -fno-rtti -I ../../Library/Common -I ../../Library/Interface -I ../../Library/Userland -D THIS_IS_MELON_USERLAND LD = ld -LDFLAGS = -T ../../Library/Link.ld -L ../../Library +LDFLAGS = -T ../../Library/Link.ld -L ../../Library -Map Map.txt Objects = PaperWork.o OutFile = PaperWork diff --git a/Source/Applications/PaperWork/Map.txt b/Source/Applications/PaperWork/Map.txt new file mode 100644 index 0000000..f19b7ba --- /dev/null +++ b/Source/Applications/PaperWork/Map.txt @@ -0,0 +1,1394 @@ + +Discarded input sections + + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .group 0x00000000 0x8 PaperWork.o + .text._Znaj 0x00000000 0x13 PaperWork.o + .text._ZdlPv 0x00000000 0x13 PaperWork.o + .text._ZN15RessourceCaller5validEv + 0x00000000 0x10 PaperWork.o + .text._ZN5WChareqEj + 0x00000000 0x10 PaperWork.o + .text._ZNK5WCharcvjEv + 0x00000000 0xa PaperWork.o + .text._ZN6StringC1Ev + 0x00000000 0x1c PaperWork.o + .text._ZN6StringC1ERKS_ + 0x00000000 0x23 PaperWork.o + .text._ZN6StringaSERKS_ + 0x00000000 0x1a PaperWork.o + .text._ZNK6StringeqEPKc + 0x00000000 0x22 PaperWork.o + .text._ZN6StringpLEPKc + 0x00000000 0x22 PaperWork.o + .text._ZN6StringD1Ev + 0x00000000 0x30 PaperWork.o + .text._ZN6StringD0Ev + 0x00000000 0x30 PaperWork.o + .text._ZN7OStreamD2Ev + 0x00000000 0x30 PaperWork.o + .text._ZN7OStreamD1Ev + 0x00000000 0x30 PaperWork.o + .text._ZN7OStreamD0Ev + 0x00000000 0x30 PaperWork.o + .text._ZN7OStreamlsERK6String + 0x00000000 0x59 PaperWork.o + .text._ZN15VirtualTerminalD1Ev + 0x00000000 0x50 PaperWork.o + .text._ZN15VirtualTerminalD0Ev + 0x00000000 0x50 PaperWork.o + .text._ZN15VirtualTerminal5writeERK6String + 0x00000000 0x45 PaperWork.o + .text._ZN15VirtualTerminal4readEv + 0x00000000 0x9f PaperWork.o + .text._ZN7Process3getEv + 0x00000000 0x5a PaperWork.o + .text._ZN7ProcessC1Ej + 0x00000000 0x22 PaperWork.o + .text._ZN11ApplicationD2Ev + 0x00000000 0x25 PaperWork.o + .text._ZN11ApplicationD1Ev + 0x00000000 0x25 PaperWork.o + .text._ZN11ApplicationD0Ev + 0x00000000 0x25 PaperWork.o + .text._ZN11Application4initEv + 0x00000000 0x5 PaperWork.o + .text._ZN11Application8doEventsEv + 0x00000000 0x5 PaperWork.o + .text._ZN11BasicStringI5WCharEC2Ev + 0x00000000 0x22 PaperWork.o + .text._ZN11BasicStringI5WCharED2Ev + 0x00000000 0x3d PaperWork.o + .text._ZN11BasicStringI5WCharED1Ev + 0x00000000 0x3d PaperWork.o + .text._ZN11BasicStringI5WCharED0Ev + 0x00000000 0x3d PaperWork.o + .text._ZN11BasicStringI5WCharEC2ERKS1_ + 0x00000000 0x2d PaperWork.o + .text._ZN11BasicStringI5WCharE6affectERKS1_ + 0x00000000 0xb8 PaperWork.o + .text._ZNK11BasicStringI5WCharE8containsERKS0_ + 0x00000000 0x5a PaperWork.o + .text._ZN6VectorI6StringED1Ev + 0x00000000 0x7b PaperWork.o + .text._ZN6flag_tD1Ev + 0x00000000 0x32 PaperWork.o + .text._ZN6VectorI6flag_tED1Ev + 0x00000000 0x5b PaperWork.o + .rodata._ZTV11Application + 0x00000000 0x1c PaperWork.o + .rodata._ZTV15VirtualTerminal + 0x00000000 0x2c PaperWork.o + .rodata._ZTV7OStream + 0x00000000 0x14 PaperWork.o + .rodata._ZTV6String + 0x00000000 0x10 PaperWork.o + .rodata._ZTV11BasicStringI5WCharE + 0x00000000 0x10 PaperWork.o + +Memory Configuration + +Name Origin Length Attributes +*default* 0x00000000 0xffffffff + +Linker script and memory map + +LOAD ../../Library/Melon.o + 0x10000000 . = 0x10000000 + +.text 0x10000000 0x6490 + *(.text) + .text 0x10000000 0x5d4c ../../Library/Melon.o + 0x10000000 WChar::WChar() + 0x1000000e WChar::WChar() + 0x1000001c WChar::WChar(char) + 0x1000003e WChar::WChar(char) + 0x10000060 WChar::WChar(char const*, unsigned char) + 0x100000e6 WChar::WChar(char const*, unsigned char) + 0x1000016c WChar::ucharLen(char const*, unsigned char) + 0x10000298 WChar::utfLen(char const*, unsigned char) + 0x1000030c WChar::affectAscii(char) + 0x1000034c WChar::affectUtf8(char const*) + 0x10000514 WChar::affectUtf16be(char const*) + 0x10000684 WChar::affectUtf16le(char const*) + 0x100007f4 WChar::affectUtf32be(char const*) + 0x10000886 WChar::affectUtf32le(char const*) + 0x10000918 WChar::toAscii() + 0x10000978 WChar::toUtf8() + 0x10000a62 WChar::toUtf32be() + 0x10000a98 WChar::toUtf32le() + 0x10001894 CMem::memcpy(unsigned char*, unsigned char const*, unsigned int) + 0x1000192b CMem::memset(unsigned char*, unsigned char, int) + 0x10001962 CMem::memsetw(unsigned short*, unsigned short, int) + 0x1000199d CMem::strlen(char const*) + 0x100019cc atomic_exchange(unsigned int*, unsigned int) + 0x100019e4 Mutex::Mutex(unsigned int) + 0x100019f2 Mutex::Mutex(unsigned int) + 0x10001a00 Mutex::lock() + 0x10001a32 Mutex::waitLock() + 0x10001a7a Mutex::unlock() + 0x10001a88 Mutex::locked() + 0x10001a98 Heap::Heap() + 0x10001ae2 Heap::Heap() + 0x10001b2c Heap::~Heap() + 0x10001b32 Heap::~Heap() + 0x10001b38 Heap::create(unsigned int, unsigned int, unsigned int) + 0x10001c5e Heap::expand(unsigned int) + 0x10001d86 Heap::contract() + 0x10001ea4 Heap::alloc(unsigned int, bool) + 0x10002060 Heap::free(void*) + 0x100021fc Heap::insertIntoIndex(heap_header_t*) + 0x10002324 Heap::findIndexEntry(heap_header_t*) + 0x10002368 Heap::removeFromIndex(unsigned int) + 0x100023b6 Heap::removeFromIndex(heap_header_t*) + 0x100023ec String::hex(unsigned int) + 0x10002500 String::number(int) + 0x100026f0 String::unserialize(unsigned int) + 0x100027ae String::serialize() const + 0x10002824 String::String(char const*, unsigned char) + 0x10002874 String::String(char const*, unsigned char) + 0x100028c4 String::affect(char const*, unsigned char) + 0x100029e8 String::compare(char const*, unsigned char) const + 0x10002abe String::append(char const*, unsigned char) + 0x10002c32 String::concat(String const&) const + 0x10002c88 String::concat(char const*, unsigned char) const + 0x10002cec String::concat(WChar) const + 0x10002d42 String::toInt() const + 0x10002e44 String::toInt16() const + 0x10002f44 String::split(WChar) const + 0x1000304a String::substr(int, int) + 0x10003188 TextFile::write(String, bool) + 0x100031f6 TextFile::readLine(char) + 0x10003350 ByteArray::ByteArray(char const*) + 0x1000339c ByteArray::ByteArray(char const*) + 0x100033e8 ByteArray::affect(String const&, unsigned char) + 0x100035ea ByteArray::resize(unsigned int) + 0x100036d0 ByteArray::toString(unsigned char) + 0x10003770 Rand::rand() + 0x1000380d Rand::max() + 0x1000381c OStream::OStream() + 0x10003858 OStream::OStream() + 0x10003894 OStream::OStream(OStream const&) + 0x100038d0 OStream::OStream(OStream const&) + 0x1000390c OStream::put(String const&) + 0x100039a2 OStream::flush() + 0x10003b4a OStream::operator<<(ostream_modifiers_e) + 0x10003ba8 IStream::IStream() + 0x10003be4 IStream::IStream() + 0x10003c20 IStream::IStream(IStream const&) + 0x10003c5c IStream::IStream(IStream const&) + 0x10003c98 IStream::~IStream() + 0x10003cdc IStream::~IStream() + 0x10003d20 IStream::~IStream() + 0x10003d64 IStream::populate() + 0x10003e02 IStream::getChar() + 0x10003efa IStream::get(WChar) + 0x100040f0 __cxa_pure_virtual + 0x100040f5 __cxa_atexit + 0x100040ff memmove + 0x10004123 __udivdi3 + 0x10004169 __umoddi3 + 0x100041b8 ShellApp::ShellApp(String, String) + 0x10004364 ShellApp::ShellApp(String, String) + 0x10004510 ShellApp::init() + 0x100056ac ShellApp::getFlag(String) + 0x10005720 ShellApp::addFlag(WChar, String, String, int, String) + 0x1000582e ShellApp::sFlag(String) + 0x100058d4 ShellApp::iFlag(String) + 0x10005934 ShellApp::bFlag(String) + 0x10005994 syscall(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) + 0x100059bf threadFinishedSyscall(unsigned int) + 0x100059c9 breakPoint() + 0x100059cf putch(char) + 0x10005a17 sleep(unsigned int) + 0x10005a52 write_hex(unsigned int) + 0x10005a90 RessourceCaller::RessourceCaller(unsigned int, unsigned int) + 0x10005b00 RessourceCaller::RessourceCaller(unsigned int, unsigned int) + 0x10005b70 RessourceCaller::sCall(unsigned int, unsigned char, unsigned int, unsigned int, unsigned int, unsigned int) + 0x10005bb6 RessourceCaller::doCall(unsigned char, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) + 0x10005c18 start + 0x10005cf9 Mem::alloc(unsigned int) + 0x10005d1d Mem::free(void*) + 0x10005d39 Mem::mkXchgSpace(unsigned int) + .text 0x10005d4c 0x744 PaperWork.o + 0x10005d4c PaperWork::run() + +.text._ZN5WChareqEj + 0x10006490 0x10 + .text._ZN5WChareqEj + 0x10006490 0x10 ../../Library/Melon.o + 0x10006490 WChar::operator==(unsigned int) + +.text._ZNK5WCharcvjEv + 0x100064a0 0xa + .text._ZNK5WCharcvjEv + 0x100064a0 0xa ../../Library/Melon.o + 0x100064a0 WChar::operator unsigned int() const + +.text._ZN6Thread3getEv + 0x100064aa 0x5a + .text._ZN6Thread3getEv + 0x100064aa 0x5a ../../Library/Melon.o + 0x100064aa Thread::get() + +.text._ZN6ThreadC1Ej + 0x10006504 0x22 + .text._ZN6ThreadC1Ej + 0x10006504 0x22 ../../Library/Melon.o + 0x10006504 Thread::Thread(unsigned int) + +.text._ZN6Thread5sleepEj + 0x10006526 0x42 + .text._ZN6Thread5sleepEj + 0x10006526 0x42 ../../Library/Melon.o + 0x10006526 Thread::sleep(unsigned int) + +.text._ZN7Process3getEv + 0x10006568 0x5a + .text._ZN7Process3getEv + 0x10006568 0x5a ../../Library/Melon.o + 0x10006568 Process::get() + +.text._ZN7ProcessC1Ej + 0x100065c2 0x22 + .text._ZN7ProcessC1Ej + 0x100065c2 0x22 ../../Library/Melon.o + 0x100065c2 Process::Process(unsigned int) + +.text._ZN7Process10allocPagesEjj + 0x100065e4 0x41 + .text._ZN7Process10allocPagesEjj + 0x100065e4 0x41 ../../Library/Melon.o + 0x100065e4 Process::allocPages(unsigned int, unsigned int) + +.text._ZN7Process9freePagesEjj + 0x10006626 0x41 + .text._ZN7Process9freePagesEjj + 0x10006626 0x41 ../../Library/Melon.o + 0x10006626 Process::freePages(unsigned int, unsigned int) + +.text._ZnwjPv 0x10006667 0x8 + .text._ZnwjPv 0x10006667 0x8 ../../Library/Melon.o + 0x10006667 operator new(unsigned int, void*) + +.text._Znaj 0x1000666f 0x13 + .text._Znaj 0x1000666f 0x13 ../../Library/Melon.o + 0x1000666f operator new[](unsigned int) + +.text._ZdlPv 0x10006682 0x13 + .text._ZdlPv 0x10006682 0x13 ../../Library/Melon.o + 0x10006682 operator delete(void*) + +.text._ZdaPv 0x10006695 0x13 + .text._ZdaPv 0x10006695 0x13 ../../Library/Melon.o + 0x10006695 operator delete[](void*) + +.text._ZN5WChar6affectEPKch + 0x100066a8 0xb0 + .text._ZN5WChar6affectEPKch + 0x100066a8 0xb0 ../../Library/Melon.o + 0x100066a8 WChar::affect(char const*, unsigned char) + +.text._ZN5WCharaSEj + 0x10006758 0x10 + .text._ZN5WCharaSEj + 0x10006758 0x10 ../../Library/Melon.o + 0x10006758 WChar::operator=(unsigned int) + +.text._ZN6StringC1Ev + 0x10006768 0x1c + .text._ZN6StringC1Ev + 0x10006768 0x1c ../../Library/Melon.o + 0x10006768 String::String() + +.text._ZN6StringC1ERKS_ + 0x10006784 0x23 + .text._ZN6StringC1ERKS_ + 0x10006784 0x23 ../../Library/Melon.o + 0x10006784 String::String(String const&) + +.text._ZN6StringpLERKS_ + 0x100067a8 0x1d + .text._ZN6StringpLERKS_ + 0x100067a8 0x1d ../../Library/Melon.o + 0x100067a8 String::operator+=(String const&) + +.text._ZN6StringpLE5WChar + 0x100067c6 0x1d + .text._ZN6StringpLE5WChar + 0x100067c6 0x1d ../../Library/Melon.o + 0x100067c6 String::operator+=(WChar) + +.text._ZN6StringD1Ev + 0x100067e4 0x30 + .text._ZN6StringD1Ev + 0x100067e4 0x30 ../../Library/Melon.o + 0x100067e4 String::~String() + +.text._ZN6StringD0Ev + 0x10006814 0x30 + .text._ZN6StringD0Ev + 0x10006814 0x30 ../../Library/Melon.o + 0x10006814 String::~String() + +.text._ZN11BasicStringI5WCharEC2Ev + 0x10006844 0x22 + .text._ZN11BasicStringI5WCharEC2Ev + 0x10006844 0x22 ../../Library/Melon.o + 0x10006844 BasicString::BasicString() + +.text._ZN11BasicStringI5WCharED2Ev + 0x10006866 0x3d + .text._ZN11BasicStringI5WCharED2Ev + 0x10006866 0x3d ../../Library/Melon.o + 0x10006866 BasicString::~BasicString() + +.text._ZN11BasicStringI5WCharED1Ev + 0x100068a4 0x3d + .text._ZN11BasicStringI5WCharED1Ev + 0x100068a4 0x3d ../../Library/Melon.o + 0x100068a4 BasicString::~BasicString() + +.text._ZN11BasicStringI5WCharED0Ev + 0x100068e2 0x3d + .text._ZN11BasicStringI5WCharED0Ev + 0x100068e2 0x3d ../../Library/Melon.o + 0x100068e2 BasicString::~BasicString() + +.text._ZN11BasicStringI5WCharEC2ERKS1_ + 0x10006920 0x2d + .text._ZN11BasicStringI5WCharEC2ERKS1_ + 0x10006920 0x2d ../../Library/Melon.o + 0x10006920 BasicString::BasicString(BasicString const&) + +.text._ZN11BasicStringI5WCharE6affectERKS1_ + 0x1000694e 0xb8 + .text._ZN11BasicStringI5WCharE6affectERKS1_ + 0x1000694e 0xb8 ../../Library/Melon.o + 0x1000694e BasicString::affect(BasicString const&) + +.text._ZN11BasicStringI5WCharE6appendERKS1_ + 0x10006a06 0x105 + .text._ZN11BasicStringI5WCharE6appendERKS1_ + 0x10006a06 0x105 ../../Library/Melon.o + 0x10006a06 BasicString::append(BasicString const&) + +.text._ZN11BasicStringI5WCharE6appendES0_ + 0x10006b0c 0xd2 + .text._ZN11BasicStringI5WCharE6appendES0_ + 0x10006b0c 0xd2 ../../Library/Melon.o + 0x10006b0c BasicString::append(WChar) + +.text._ZNK11BasicStringI5WCharEixEi + 0x10006bde 0x13 + .text._ZNK11BasicStringI5WCharEixEi + 0x10006bde 0x13 ../../Library/Melon.o + 0x10006bde BasicString::operator[](int) const + +.text._ZN6VectorI6StringEC1Ev + 0x10006bf2 0x18 + .text._ZN6VectorI6StringEC1Ev + 0x10006bf2 0x18 ../../Library/Melon.o + 0x10006bf2 Vector::Vector() + +.text._ZN6VectorI6StringE4pushERKS0_ + 0x10006c0a 0xb8 + .text._ZN6VectorI6StringE4pushERKS0_ + 0x10006c0a 0xb8 ../../Library/Melon.o + 0x10006c0a Vector::push(String const&) + +.text._ZNK6VectorI6StringE4backEv + 0x10006cc2 0x1f + .text._ZNK6VectorI6StringE4backEv + 0x10006cc2 0x1f ../../Library/Melon.o + 0x10006cc2 Vector::back() const + +.text._ZN15RessourceCaller5validEv + 0x10006ce2 0x10 + .text._ZN15RessourceCaller5validEv + 0x10006ce2 0x10 ../../Library/Melon.o + 0x10006ce2 RessourceCaller::valid() + +.text._ZN9ByteArrayC1Ev + 0x10006cf2 0x1c + .text._ZN9ByteArrayC1Ev + 0x10006cf2 0x1c ../../Library/Melon.o + 0x10006cf2 ByteArray::ByteArray() + +.text._ZN9ByteArrayC1ERK6Stringh + 0x10006d0e 0x3c + .text._ZN9ByteArrayC1ERK6Stringh + 0x10006d0e 0x3c ../../Library/Melon.o + 0x10006d0e ByteArray::ByteArray(String const&, unsigned char) + +.text._ZN9ByteArraycvPhEv + 0x10006d4a 0xb + .text._ZN9ByteArraycvPhEv + 0x10006d4a 0xb ../../Library/Melon.o + 0x10006d4a ByteArray::operator unsigned char*() + +.text._ZN4File4readEjPh + 0x10006d56 0x41 + .text._ZN4File4readEjPh + 0x10006d56 0x41 ../../Library/Melon.o + 0x10006d56 File::read(unsigned int, unsigned char*) + +.text._ZN4File5writeEjPh + 0x10006d98 0x46 + .text._ZN4File5writeEjPh + 0x10006d98 0x46 ../../Library/Melon.o + 0x10006d98 File::write(unsigned int, unsigned char*) + +.text._ZN4File4readER9ByteArray + 0x10006dde 0x89 + .text._ZN4File4readER9ByteArray + 0x10006dde 0x89 ../../Library/Melon.o + 0x10006dde File::read(ByteArray&) + +.text._ZN4File5writeER9ByteArray + 0x10006e68 0x51 + .text._ZN4File5writeER9ByteArray + 0x10006e68 0x51 ../../Library/Melon.o + 0x10006e68 File::write(ByteArray&) + +.text._ZN4File4seekEyh + 0x10006eba 0x77 + .text._ZN4File4seekEyh + 0x10006eba 0x77 ../../Library/Melon.o + 0x10006eba File::seek(unsigned long long, unsigned char) + +.text._ZN9ByteArrayD1Ev + 0x10006f32 0x30 + .text._ZN9ByteArrayD1Ev + 0x10006f32 0x30 ../../Library/Melon.o + 0x10006f32 ByteArray::~ByteArray() + +.text._ZN9ByteArrayD0Ev + 0x10006f62 0x30 + .text._ZN9ByteArrayD0Ev + 0x10006f62 0x30 ../../Library/Melon.o + 0x10006f62 ByteArray::~ByteArray() + +.text._ZN11BasicStringIhEC2Ev + 0x10006f92 0x22 + .text._ZN11BasicStringIhEC2Ev + 0x10006f92 0x22 ../../Library/Melon.o + 0x10006f92 BasicString::BasicString() + +.text._ZN11BasicStringIhED2Ev + 0x10006fb4 0x3d + .text._ZN11BasicStringIhED2Ev + 0x10006fb4 0x3d ../../Library/Melon.o + 0x10006fb4 BasicString::~BasicString() + +.text._ZN11BasicStringIhED1Ev + 0x10006ff2 0x3d + .text._ZN11BasicStringIhED1Ev + 0x10006ff2 0x3d ../../Library/Melon.o + 0x10006ff2 BasicString::~BasicString() + +.text._ZN11BasicStringIhED0Ev + 0x10007030 0x3d + .text._ZN11BasicStringIhED0Ev + 0x10007030 0x3d ../../Library/Melon.o + 0x10007030 BasicString::~BasicString() + +.text._ZNK11BasicStringIhE4sizeEv + 0x1000706e 0xb + .text._ZNK11BasicStringIhE4sizeEv + 0x1000706e 0xb ../../Library/Melon.o + 0x1000706e BasicString::size() const + +.text._ZNK11BasicStringIhEixEi + 0x1000707a 0x11 + .text._ZNK11BasicStringIhEixEi + 0x1000707a 0x11 ../../Library/Melon.o + 0x1000707a BasicString::operator[](int) const + +.text._ZN11BasicStringIhE5clearEv + 0x1000708c 0x34 + .text._ZN11BasicStringIhE5clearEv + 0x1000708c 0x34 ../../Library/Melon.o + 0x1000708c BasicString::clear() + +.text._ZN11BasicStringIhEpLEh + 0x100070c0 0x21 + .text._ZN11BasicStringIhEpLEh + 0x100070c0 0x21 ../../Library/Melon.o + 0x100070c0 BasicString::operator+=(unsigned char) + +.text._ZN11BasicStringIhE6appendEh + 0x100070e2 0x9c + .text._ZN11BasicStringIhE6appendEh + 0x100070e2 0x9c ../../Library/Melon.o + 0x100070e2 BasicString::append(unsigned char) + +.text._ZN5WChar6encodeEh + 0x1000717e 0x7a + .text._ZN5WChar6encodeEh + 0x1000717e 0x7a ../../Library/Melon.o + 0x1000717e WChar::encode(unsigned char) + +.text._ZNK11BasicStringI5WCharE4sizeEv + 0x100071f8 0xb + .text._ZNK11BasicStringI5WCharE4sizeEv + 0x100071f8 0xb ../../Library/Melon.o + 0x100071f8 BasicString::size() const + +.text._Znwj 0x10007203 0x13 + .text._Znwj 0x10007203 0x13 ../../Library/Melon.o + 0x10007203 operator new(unsigned int) + +.text._ZN6StringC1E5WCharj + 0x10007216 0x2a + .text._ZN6StringC1E5WCharj + 0x10007216 0x2a ../../Library/Melon.o + 0x10007216 String::String(WChar, unsigned int) + +.text._ZN7OStreamD1Ev + 0x10007240 0x30 + .text._ZN7OStreamD1Ev + 0x10007240 0x30 ../../Library/Melon.o + 0x10007240 OStream::~OStream() + +.text._ZN7OStreamD0Ev + 0x10007270 0x30 + .text._ZN7OStreamD0Ev + 0x10007270 0x30 ../../Library/Melon.o + 0x10007270 OStream::~OStream() + +.text._ZN11BasicStringI5WCharEC2ES0_j + 0x100072a0 0x34 + .text._ZN11BasicStringI5WCharEC2ES0_j + 0x100072a0 0x34 ../../Library/Melon.o + 0x100072a0 BasicString::BasicString(WChar, unsigned int) + +.text._ZN10SimpleListI6StringEC1ERKS0_PS1_ + 0x100072d4 0x23 + .text._ZN10SimpleListI6StringEC1ERKS0_PS1_ + 0x100072d4 0x23 ../../Library/Melon.o + 0x100072d4 SimpleList::SimpleList(String const&, SimpleList*) + +.text._ZN10SimpleListI6StringE8addAtEndERKS0_ + 0x100072f8 0x94 + .text._ZN10SimpleListI6StringE8addAtEndERKS0_ + 0x100072f8 0x94 ../../Library/Melon.o + 0x100072f8 SimpleList::addAtEnd(String const&) + +.text._ZN10SimpleListI6StringE4nextEv + 0x1000738c 0xb + .text._ZN10SimpleListI6StringE4nextEv + 0x1000738c 0xb ../../Library/Melon.o + 0x1000738c SimpleList::next() + +.text._ZN10SimpleListI6StringE1vEv + 0x10007398 0x8 + .text._ZN10SimpleListI6StringE1vEv + 0x10007398 0x8 ../../Library/Melon.o + 0x10007398 SimpleList::v() + +.text._ZN10SimpleListI6StringED1Ev + 0x100073a0 0x3c + .text._ZN10SimpleListI6StringED1Ev + 0x100073a0 0x3c ../../Library/Melon.o + 0x100073a0 SimpleList::~SimpleList() + +.text._ZN11BasicStringI5WCharE6affectES0_j + 0x100073dc 0xb8 + .text._ZN11BasicStringI5WCharE6affectES0_j + 0x100073dc 0xb8 ../../Library/Melon.o + 0x100073dc BasicString::affect(WChar, unsigned int) + +.text._ZNK11BasicStringI5WCharE5emptyEv + 0x10007494 0x10 + .text._ZNK11BasicStringI5WCharE5emptyEv + 0x10007494 0x10 ../../Library/Melon.o + 0x10007494 BasicString::empty() const + +.text._ZN10SimpleListI6StringE7delThisEv + 0x100074a4 0x1f + .text._ZN10SimpleListI6StringE7delThisEv + 0x100074a4 0x1f ../../Library/Melon.o + 0x100074a4 SimpleList::delThis() + +.text._Z5doDivyjPj + 0x100074c3 0x76 + .text._Z5doDivyjPj + 0x100074c3 0x76 ../../Library/Melon.o + 0x100074c3 doDiv(unsigned long long, unsigned int, unsigned int*) + +.text._ZN6StringaSERKS_ + 0x1000753a 0x1a + .text._ZN6StringaSERKS_ + 0x1000753a 0x1a ../../Library/Melon.o + 0x1000753a String::operator=(String const&) + +.text._ZNK6StringeqEPKc + 0x10007554 0x22 + .text._ZNK6StringeqEPKc + 0x10007554 0x22 ../../Library/Melon.o + 0x10007554 String::operator==(char const*) const + +.text._ZN6StringneEPKc + 0x10007576 0x25 + .text._ZN6StringneEPKc + 0x10007576 0x25 ../../Library/Melon.o + 0x10007576 String::operator!=(char const*) + +.text._ZNK6StringeqERKS_ + 0x1000759c 0x1a + .text._ZNK6StringeqERKS_ + 0x1000759c 0x1a ../../Library/Melon.o + 0x1000759c String::operator==(String const&) const + +.text._ZN6StringpLEPKc + 0x100075b6 0x22 + .text._ZN6StringpLEPKc + 0x100075b6 0x22 ../../Library/Melon.o + 0x100075b6 String::operator+=(char const*) + +.text._ZNK6StringplERKS_ + 0x100075d8 0x30 + .text._ZNK6StringplERKS_ + 0x100075d8 0x30 ../../Library/Melon.o + 0x100075d8 String::operator+(String const&) const + +.text._ZNK6StringplEPKc + 0x10007608 0x38 + .text._ZNK6StringplEPKc + 0x10007608 0x38 ../../Library/Melon.o + 0x10007608 String::operator+(char const*) const + +.text._ZN7OStreamD2Ev + 0x10007640 0x30 + .text._ZN7OStreamD2Ev + 0x10007640 0x30 ../../Library/Melon.o + 0x10007640 OStream::~OStream() + +.text._ZN7OStreamlsERK6String + 0x10007670 0x59 + .text._ZN7OStreamlsERK6String + 0x10007670 0x59 ../../Library/Melon.o + 0x10007670 OStream::operator<<(String const&) + +.text._ZN7OStreamlsEi + 0x100076ca 0x3d + .text._ZN7OStreamlsEi + 0x100076ca 0x3d ../../Library/Melon.o + 0x100076ca OStream::operator<<(int) + +.text._ZN15VirtualTerminalD1Ev + 0x10007708 0x50 + .text._ZN15VirtualTerminalD1Ev + 0x10007708 0x50 ../../Library/Melon.o + 0x10007708 non-virtual thunk to VirtualTerminal::~VirtualTerminal() + 0x10007710 VirtualTerminal::~VirtualTerminal() + +.text._ZN15VirtualTerminalD0Ev + 0x10007758 0x50 + .text._ZN15VirtualTerminalD0Ev + 0x10007758 0x50 ../../Library/Melon.o + 0x10007758 non-virtual thunk to VirtualTerminal::~VirtualTerminal() + 0x10007760 VirtualTerminal::~VirtualTerminal() + +.text._ZN15VirtualTerminal5getInEv + 0x100077a8 0x5e + .text._ZN15VirtualTerminal5getInEv + 0x100077a8 0x5e ../../Library/Melon.o + 0x100077a8 VirtualTerminal::getIn() + +.text._ZN15VirtualTerminal6getOutEv + 0x10007806 0x5e + .text._ZN15VirtualTerminal6getOutEv + 0x10007806 0x5e ../../Library/Melon.o + 0x10007806 VirtualTerminal::getOut() + +.text._ZN15VirtualTerminalC1Ej + 0x10007864 0x51 + .text._ZN15VirtualTerminalC1Ej + 0x10007864 0x51 ../../Library/Melon.o + 0x10007864 VirtualTerminal::VirtualTerminal(unsigned int) + +.text._ZN15VirtualTerminal5writeERK6String + 0x100078b6 0x45 + .text._ZN15VirtualTerminal5writeERK6String + 0x100078b6 0x45 ../../Library/Melon.o + 0x100078b6 VirtualTerminal::write(String const&) + +.text._ZN15VirtualTerminal4readEv + 0x100078fc 0x9f + .text._ZN15VirtualTerminal4readEv + 0x100078fc 0x9f ../../Library/Melon.o + 0x100078fc non-virtual thunk to VirtualTerminal::read() + 0x10007904 VirtualTerminal::read() + +.text._ZN7Process4argcEv + 0x1000799c 0x43 + .text._ZN7Process4argcEv + 0x1000799c 0x43 ../../Library/Melon.o + 0x1000799c Process::argc() + +.text._ZN7Process4argvEj + 0x100079e0 0x66 + .text._ZN7Process4argvEj + 0x100079e0 0x66 ../../Library/Melon.o + 0x100079e0 Process::argv(unsigned int) + +.text._ZN11ApplicationC2Ev + 0x10007a46 0x22 + .text._ZN11ApplicationC2Ev + 0x10007a46 0x22 ../../Library/Melon.o + 0x10007a46 Application::Application() + +.text._ZN11ApplicationD2Ev + 0x10007a68 0x25 + .text._ZN11ApplicationD2Ev + 0x10007a68 0x25 ../../Library/Melon.o + 0x10007a68 Application::~Application() + +.text._ZN11ApplicationD1Ev + 0x10007a8e 0x25 + .text._ZN11ApplicationD1Ev + 0x10007a8e 0x25 ../../Library/Melon.o + 0x10007a8e Application::~Application() + +.text._ZN11ApplicationD0Ev + 0x10007ab4 0x25 + .text._ZN11ApplicationD0Ev + 0x10007ab4 0x25 ../../Library/Melon.o + 0x10007ab4 Application::~Application() + +.text._ZN11Application4initEv + 0x10007ada 0x5 + .text._ZN11Application4initEv + 0x10007ada 0x5 ../../Library/Melon.o + 0x10007ada Application::init() + +.text._ZN11Application8doEventsEv + 0x10007ae0 0x5 + .text._ZN11Application8doEventsEv + 0x10007ae0 0x5 ../../Library/Melon.o + 0x10007ae0 Application::doEvents() + +.text._ZN11Application4exitEj + 0x10007ae6 0x35 + .text._ZN11Application4exitEj + 0x10007ae6 0x35 ../../Library/Melon.o + 0x10007ae6 Application::exit(unsigned int) + +.text._ZN6flag_tC1Ev + 0x10007b1c 0x3d + .text._ZN6flag_tC1Ev + 0x10007b1c 0x3d ../../Library/Melon.o + 0x10007b1c flag_t::flag_t() + +.text._ZN6flag_tD1Ev + 0x10007b5a 0x32 + .text._ZN6flag_tD1Ev + 0x10007b5a 0x32 ../../Library/Melon.o + 0x10007b5a flag_t::~flag_t() + +.text._ZNK11BasicStringI5WCharE7compareERKS1_ + 0x10007b8c 0x84 + .text._ZNK11BasicStringI5WCharE7compareERKS1_ + 0x10007b8c 0x84 ../../Library/Melon.o + 0x10007b8c BasicString::compare(BasicString const&) const + +.text._ZNK11BasicStringI5WCharE8containsERKS0_ + 0x10007c10 0x5a + .text._ZNK11BasicStringI5WCharE8containsERKS0_ + 0x10007c10 0x5a ../../Library/Melon.o + 0x10007c10 BasicString::contains(WChar const&) const + +.text._ZN6VectorI6StringED1Ev + 0x10007c6a 0x7b + .text._ZN6VectorI6StringED1Ev + 0x10007c6a 0x7b ../../Library/Melon.o + 0x10007c6a Vector::~Vector() + +.text._ZN6VectorI6flag_tEC1Ev + 0x10007ce6 0x18 + .text._ZN6VectorI6flag_tEC1Ev + 0x10007ce6 0x18 ../../Library/Melon.o + 0x10007ce6 Vector::Vector() + +.text._ZN6VectorI6flag_tED1Ev + 0x10007cfe 0x5b + .text._ZN6VectorI6flag_tED1Ev + 0x10007cfe 0x5b ../../Library/Melon.o + 0x10007cfe Vector::~Vector() + +.text._ZNK6VectorI6flag_tE4sizeEv + 0x10007d5a 0xb + .text._ZNK6VectorI6flag_tE4sizeEv + 0x10007d5a 0xb ../../Library/Melon.o + 0x10007d5a Vector::size() const + +.text._ZNK6VectorI6flag_tEixEj + 0x10007d66 0x13 + .text._ZNK6VectorI6flag_tEixEj + 0x10007d66 0x13 ../../Library/Melon.o + 0x10007d66 Vector::operator[](unsigned int) const + +.text._ZN6flag_tC1ERKS_ + 0x10007d7a 0x7f + .text._ZN6flag_tC1ERKS_ + 0x10007d7a 0x7f ../../Library/Melon.o + 0x10007d7a flag_t::flag_t(flag_t const&) + +.text._ZN6VectorI6flag_tE4pushERKS0_ + 0x10007dfa 0xa4 + .text._ZN6VectorI6flag_tE4pushERKS0_ + 0x10007dfa 0xa4 ../../Library/Melon.o + 0x10007dfa Vector::push(flag_t const&) + +.text._ZN8ShellAppD1Ev + 0x10007e9e 0x84 + .text._ZN8ShellAppD1Ev + 0x10007e9e 0x84 ../../Library/Melon.o + 0x10007e9e ShellApp::~ShellApp() + +.text._ZN8ShellAppD0Ev + 0x10007f22 0x84 + .text._ZN8ShellAppD0Ev + 0x10007f22 0x84 ../../Library/Melon.o + 0x10007f22 ShellApp::~ShellApp() + +.iplt 0x10007fa8 0x0 load address 0x10007fa6 + .iplt 0x00000000 0x0 ../../Library/Melon.o + +.text._ZNK15RessourceCaller5resIdEv + 0x10007fa6 0xa + .text._ZNK15RessourceCaller5resIdEv + 0x10007fa6 0xa PaperWork.o + 0x10007fa6 RessourceCaller::resId() const + +.text._ZN6StringaSEPKc + 0x10007fb0 0x22 + .text._ZN6StringaSEPKc + 0x10007fb0 0x22 PaperWork.o + 0x10007fb0 String::operator=(char const*) + +.text._ZN15VirtualTerminal8readLineEb + 0x10007fd2 0x89 + .text._ZN15VirtualTerminal8readLineEb + 0x10007fd2 0x89 PaperWork.o + 0x10007fd2 VirtualTerminal::readLine(bool) + +.text._ZN7Process3runERK6String + 0x1000805b 0x53 + .text._ZN7Process3runERK6String + 0x1000805b 0x53 PaperWork.o + 0x1000805b Process::run(String const&) + +.text._ZN7Process5startEv + 0x100080ae 0x43 + .text._ZN7Process5startEv + 0x100080ae 0x43 PaperWork.o + 0x100080ae Process::start() + +.text._ZN7Process4waitEv + 0x100080f2 0x43 + .text._ZN7Process4waitEv + 0x100080f2 0x43 PaperWork.o + 0x100080f2 Process::wait() + +.text._ZN7Process7pushArgERK6String + 0x10008136 0x42 + .text._ZN7Process7pushArgERK6String + 0x10008136 0x42 PaperWork.o + 0x10008136 Process::pushArg(String const&) + +.text._ZN7Process7setInVTERK15VirtualTerminal + 0x10008178 0x4d + .text._ZN7Process7setInVTERK15VirtualTerminal + 0x10008178 0x4d PaperWork.o + 0x10008178 Process::setInVT(VirtualTerminal const&) + +.text._ZN7Process8setOutVTERK15VirtualTerminal + 0x100081c6 0x4d + .text._ZN7Process8setOutVTERK15VirtualTerminal + 0x100081c6 0x4d PaperWork.o + 0x100081c6 Process::setOutVT(VirtualTerminal const&) + +.text._ZN7Process14authenticatePWE6StringS0_ + 0x10008214 0x47 + .text._ZN7Process14authenticatePWE6StringS0_ + 0x10008214 0x47 PaperWork.o + 0x10008214 Process::authenticatePW(String, String) + +.text._ZN8ShellAppD2Ev + 0x1000825c 0x84 + .text._ZN8ShellAppD2Ev + 0x1000825c 0x84 PaperWork.o + 0x1000825c ShellApp::~ShellApp() + +.text._ZN9PaperWorkC1Ev + 0x100082e0 0x2bf + .text._ZN9PaperWorkC1Ev + 0x100082e0 0x2bf PaperWork.o + 0x100082e0 PaperWork::PaperWork() + +.text._ZN9PaperWorkD1Ev + 0x100085a0 0x30 + .text._ZN9PaperWorkD1Ev + 0x100085a0 0x30 PaperWork.o + 0x100085a0 PaperWork::~PaperWork() + +.text._ZN9PaperWorkD0Ev + 0x100085d0 0x30 + .text._ZN9PaperWorkD0Ev + 0x100085d0 0x30 PaperWork.o + 0x100085d0 PaperWork::~PaperWork() + +.rodata 0x10009000 0x3d2 + *(.rodata) + .rodata 0x10009000 0x28d ../../Library/Melon.o + *fill* 0x1000928d 0x3 00 + .rodata 0x10009290 0x142 PaperWork.o + +.rodata._ZTV6String + 0x100093d8 0x10 + .rodata._ZTV6String + 0x100093d8 0x10 ../../Library/Melon.o + 0x100093d8 vtable for String + +.rodata._ZTV11BasicStringI5WCharE + 0x100093e8 0x10 + .rodata._ZTV11BasicStringI5WCharE + 0x100093e8 0x10 ../../Library/Melon.o + 0x100093e8 vtable for BasicString + +.rodata._ZTV9ByteArray + 0x100093f8 0x10 + .rodata._ZTV9ByteArray + 0x100093f8 0x10 ../../Library/Melon.o + 0x100093f8 vtable for ByteArray + +.rodata._ZTV11BasicStringIhE + 0x10009408 0x10 + .rodata._ZTV11BasicStringIhE + 0x10009408 0x10 ../../Library/Melon.o + 0x10009408 vtable for BasicString + +.rodata._ZTV7OStream + 0x10009418 0x14 + .rodata._ZTV7OStream + 0x10009418 0x14 ../../Library/Melon.o + 0x10009418 vtable for OStream + +.rodata._ZTV7IStream + 0x10009430 0x14 + .rodata._ZTV7IStream + 0x10009430 0x14 ../../Library/Melon.o + 0x10009430 vtable for IStream + +.rodata._ZTV8ShellApp + 0x10009448 0x1c + .rodata._ZTV8ShellApp + 0x10009448 0x1c ../../Library/Melon.o + 0x10009448 vtable for ShellApp + +.rodata._ZTV11Application + 0x10009468 0x1c + .rodata._ZTV11Application + 0x10009468 0x1c ../../Library/Melon.o + 0x10009468 vtable for Application + +.rodata._ZTV15VirtualTerminal + 0x100094a0 0x2c + .rodata._ZTV15VirtualTerminal + 0x100094a0 0x2c ../../Library/Melon.o + 0x100094a0 vtable for VirtualTerminal + +.rodata._ZTV9PaperWork + 0x100094d0 0x1c + .rodata._ZTV9PaperWork + 0x100094d0 0x1c PaperWork.o + 0x100094d0 vtable for PaperWork + +.rel.dyn 0x100094ec 0x0 + .rel.iplt 0x00000000 0x0 ../../Library/Melon.o + .rel.text 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6Thread3getEv + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN7Process3getEv + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6StringC1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6StringC1ERKS_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6StringpLERKS_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6StringpLE5WChar + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6StringD1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6StringD0Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringI5WCharEC2Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringI5WCharED2Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringI5WCharED1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringI5WCharED0Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringI5WCharEC2ERKS1_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringI5WCharE6affectERKS1_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringI5WCharE6appendERKS1_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringI5WCharE6appendES0_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6VectorI6StringE4pushERKS0_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN9ByteArrayC1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN9ByteArrayC1ERK6Stringh + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN4File4readER9ByteArray + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN4File5writeER9ByteArray + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN9ByteArrayD1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN9ByteArrayD0Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringIhEC2Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringIhED2Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringIhED1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringIhED0Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringIhE5clearEv + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringIhEpLEh + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringIhE6appendEh + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6StringC1E5WCharj + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN7OStreamD1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN7OStreamD0Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringI5WCharEC2ES0_j + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN10SimpleListI6StringEC1ERKS0_PS1_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN10SimpleListI6StringE8addAtEndERKS0_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN10SimpleListI6StringED1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringI5WCharE6affectES0_j + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6StringaSERKS_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZNK6StringeqERKS_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN7OStreamD2Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN7OStreamlsERK6String + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN7OStreamlsEi + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN15VirtualTerminalD1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN15VirtualTerminalD0Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN15VirtualTerminal5getInEv + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN15VirtualTerminal6getOutEv + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN15VirtualTerminalC1Ej + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN15VirtualTerminal4readEv + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11ApplicationC2Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11ApplicationD2Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11ApplicationD1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11ApplicationD0Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11Application4exitEj + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6flag_tC1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6flag_tD1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZNK11BasicStringI5WCharE7compareERKS1_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZNK11BasicStringI5WCharE8containsERKS0_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6VectorI6flag_tED1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6flag_tC1ERKS_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6VectorI6flag_tE4pushERKS0_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN8ShellAppD1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN8ShellAppD0Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.rodata._ZTV6String + 0x00000000 0x0 ../../Library/Melon.o + .rel.rodata._ZTV11BasicStringI5WCharE + 0x00000000 0x0 ../../Library/Melon.o + .rel.rodata._ZTV9ByteArray + 0x00000000 0x0 ../../Library/Melon.o + .rel.rodata._ZTV11BasicStringIhE + 0x00000000 0x0 ../../Library/Melon.o + .rel.rodata._ZTV7OStream + 0x00000000 0x0 ../../Library/Melon.o + .rel.rodata._ZTV8ShellApp + 0x00000000 0x0 ../../Library/Melon.o + .rel.rodata._ZTV11Application + 0x00000000 0x0 ../../Library/Melon.o + .rel.rodata._ZTV15VirtualTerminal + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN7Process3runERK6String + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN7Process4waitEv + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN7Process7setInVTERK15VirtualTerminal + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN7Process8setOutVTERK15VirtualTerminal + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN8ShellAppD2Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN9PaperWorkC1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.rodata._ZTV9PaperWork + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN9PaperWorkD1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN9PaperWorkD0Ev + 0x00000000 0x0 ../../Library/Melon.o + +.data 0x1000a000 0x24 + 0x1000a000 start_ctors = . + *(.ctor*) + .ctors 0x1000a000 0x4 ../../Library/Melon.o + .ctors 0x1000a004 0x4 PaperWork.o + 0x1000a008 end_ctors = . + 0x1000a008 start_dtors = . + *(.dtor*) + 0x1000a008 end_dtors = . + *(.data) + .data 0x1000a008 0x18 ../../Library/Melon.o + 0x1000a008 Rand::m + 0x1000a00c Rand::a + 0x1000a010 Rand::b + 0x1000a018 Rand::current + .data 0x1000a020 0x4 PaperWork.o + 0x1000a020 app + +.igot.plt 0x1000a024 0x0 + .igot.plt 0x00000000 0x0 ../../Library/Melon.o + +.bss 0x1000a040 0x2a4 + 0x1000a040 sbss = . + *(COMMON) + *(.bss) + .bss 0x1000a040 0x208 ../../Library/Melon.o + 0x1000a040 WChar::CP437 + 0x1000a240 __dso_handle + 0x1000a244 heap + *fill* 0x1000a248 0x18 00 + .bss 0x1000a260 0x84 PaperWork.o + 0x1000a2e4 ebss = . + 0x1000a2e4 end = . + 0x1000a2e4 _end = . + 0x1000a2e4 __end = . +LOAD PaperWork.o +OUTPUT(PaperWork elf32-i386) + +.note.GNU-stack + 0x00000000 0x0 + .note.GNU-stack + 0x00000000 0x0 ../../Library/Melon.o + .note.GNU-stack + 0x00000000 0x0 PaperWork.o + +.comment 0x00000000 0x27 + .comment 0x00000000 0x27 ../../Library/Melon.o + 0x280 (size before relaxing) + .comment 0x00000000 0x28 PaperWork.o diff --git a/Source/Applications/PaperWork/PaperWork.cpp b/Source/Applications/PaperWork/PaperWork.cpp index ac6f26d..15497e4 100644 --- a/Source/Applications/PaperWork/PaperWork.cpp +++ b/Source/Applications/PaperWork/PaperWork.cpp @@ -37,7 +37,7 @@ int PaperWork::run() { String user, pw; while (1) { outvt << "Username: " << FLUSH; - user = invt.readLine(); + user = invt.get(); outvt << "Password: " << FLUSH; pw = invt.readLine(false); if (!Process::get().authenticatePW(user, pw)) { @@ -45,7 +45,7 @@ int PaperWork::run() { continue; } outvt << "What shell to run [" << sFlag("shell") << "]? "<< FLUSH; - String sh = invt.readLine(); + String sh = invt.get(); if (sh == "") sh = sFlag("shell"); Process p = Process::run(sh); if (p.valid()) { diff --git a/Source/Applications/Shell/Shell.class.cpp b/Source/Applications/Shell/Shell.class.cpp index bfbf631..a2eb490 100644 --- a/Source/Applications/Shell/Shell.class.cpp +++ b/Source/Applications/Shell/Shell.class.cpp @@ -26,7 +26,7 @@ int Shell::run() { cwd = FS::cwdNode(); while (1) { outvt << "{" << cwd.getName() << "}: " << FLUSH; - String s = invt.readLine(); + String s = invt.get(); if (s.empty()) continue; while (s[0] == WChar(" ") or s[0] == WChar("\t")) { s = s.substr(1, s.size() - 1); diff --git a/Source/Library/Common/IStream.proto.cpp b/Source/Library/Common/IStream.proto.cpp new file mode 100644 index 0000000..0cc2a79 --- /dev/null +++ b/Source/Library/Common/IStream.proto.cpp @@ -0,0 +1,73 @@ +#include "IStream.proto.h" + +IStream::IStream() { + m_buffer = NULL; + m_ptr = 0; +} + +IStream::IStream(const IStream& other) { + m_buffer = NULL; + m_ptr = 0; +} + +IStream::~IStream() { + delete m_buffer; +} + +bool IStream::populate() { + String s = read(); + if (s.empty()) return false; + if (m_buffer == NULL) { + m_buffer = new SimpleList(s); + } else { + m_buffer->addAtEnd(s); + } + return true; +} + +WChar IStream::getChar() { + waitLock(); + if (m_buffer == 0) { + if (!populate()) { + unlock(); + return WChar("\0"); + } + } + WChar ret = m_buffer->v()[m_ptr]; + m_ptr++; + if (m_ptr >= m_buffer->v().size()) { + m_buffer = m_buffer->delThis(); + m_ptr = 0; + } + unlock(); + return ret; +} + +String IStream::get(WChar delimiter) { + waitLock(); + //calculate length of string to read + if (m_buffer == 0) populate(); + int length = 0, ptr = m_ptr; + for (SimpleList *iter = m_buffer; iter != 0;) { + if (iter->v()[ptr] == delimiter) break; + ptr++; + length++; + if (ptr >= iter->v().size()) { + if (iter->next() == 0) populate(); + iter = iter->next(); + ptr = 0; + } + } + //get it + String ret(WChar(" "), length); + for (int i = 0; i <= length; i++) { + if (i != length) ret[i] = m_buffer->v()[m_ptr]; + m_ptr++; + if (m_ptr >= m_buffer->v().size()) { + m_buffer = m_buffer->delThis(); + m_ptr = 0; + } + } + unlock(); + return ret; +} diff --git a/Source/Library/Common/IStream.proto.h b/Source/Library/Common/IStream.proto.h new file mode 100644 index 0000000..f689a22 --- /dev/null +++ b/Source/Library/Common/IStream.proto.h @@ -0,0 +1,29 @@ +#ifndef DEF_ISTREAM_PROTO_h +#define DEF_ISTREAM_PROTO_h + +#include +#include +#include + +class IStream : private Mutex { + private: + SimpleList *m_buffer; + int m_ptr; + void operator =(IStream& other); + + bool populate(); + + protected: + virtual String read() = 0; + + public: + IStream(); + IStream(const IStream& other); + virtual ~IStream(); + + WChar getChar(); + String get(WChar delimiter = "\n"); + String getWord() { return get(" "); } +}; + +#endif diff --git a/Source/Library/Makefile b/Source/Library/Makefile index ed65ac4..cee4944 100644 --- a/Source/Library/Makefile +++ b/Source/Library/Makefile @@ -20,6 +20,7 @@ Objects = Common/WChar.class.uo \ Common/ByteArray.class.uo \ Common/Rand.ns.uo \ Common/OStream.proto.uo \ + Common/IStream.proto.uo \ Common/cppsupport.wtf.uo \ Userland/App/ShellApp.proto.uo \ Userland/Syscall/Syscall.wtf.uo \ diff --git a/Source/Library/Userland/App/ShellApp.proto.cpp b/Source/Library/Userland/App/ShellApp.proto.cpp index a3d9737..f2233bc 100644 --- a/Source/Library/Userland/App/ShellApp.proto.cpp +++ b/Source/Library/Userland/App/ShellApp.proto.cpp @@ -14,6 +14,7 @@ void ShellApp::init() { u32int argc = pr.argc(); for (u32int i = 0; i < argc; i++) { String arg = pr.argv(i); + if (arg.empty()) continue; if (arg == "-") { i++; if (i == argc) { @@ -26,13 +27,13 @@ void ShellApp::init() { bool found = false; for (u32int i = 0; i < flags.size(); i++) { if (flags[i].type == FT_BOOL) { - if (arg == String("--no-") + flags[i].lName) { + if (arg == (String("--no-") += flags[i].lName)) { flags[i].boolVal = false; found = true; } } } - if (!found) outvt << "Unknown option : " << arg << "\n"; + if (!found) outvt << "Unknown option : " << arg << ENDL; } else if (arg.substr(0, 2) == "--") { bool found = false; for (u32int i = 0; i < flags.size(); i++) { @@ -49,21 +50,29 @@ void ShellApp::init() { } } } - if (!found) outvt << "Unknown option : " << arg << "\n"; + if (!found) outvt << "Unknown option : " << arg << ENDL; } else { for (u32int j = 1; j < arg.size(); j++) { bool found = false; for (u32int k = 0; k < flags.size(); k++) { if (flags[k].sName == arg[j]) { found = true; - if (flags[k].type == FT_BOOL) flags[k].boolVal = true; - if (flags[k].type == FT_INT) flags[k].intVal = pr.argv(++i).toInt(); - if (flags[k].type == FT_STR) flags[k].strVal = pr.argv(++i); + if (flags[k].type == FT_BOOL) { + flags[k].boolVal = true; + } else { + i++; + if (i >= argc) { + outvt << "Missing argument for flag : -" << String(arg[j], 1) << ENDL; + } else { + flags[k].strVal = pr.argv(i); + if (flags[k].type == FT_INT) flags[k].intVal = flags[k].strVal.toInt(); + } + } break; } } if (!found) { - outvt << "Unknown option : -" << String(arg[j]) << "\n"; + outvt << "Unknown option : -" << String(arg[j], 1) << ENDL; exit(-1); } } diff --git a/Source/Library/Userland/Binding/Process.class.h b/Source/Library/Userland/Binding/Process.class.h index 2200f59..e94084b 100644 --- a/Source/Library/Userland/Binding/Process.class.h +++ b/Source/Library/Userland/Binding/Process.class.h @@ -54,10 +54,10 @@ class Process : public RessourceCaller { void pushArg(const String& arg) { doCall(PRIF_PUSHARG, (u32int)&arg); } - void setInVT(VirtualTerminal vt) { + void setInVT(const VirtualTerminal& vt) { doCall(PRIF_SETINVT, vt.resId()); } - void setOutVT(VirtualTerminal vt) { + void setOutVT(const VirtualTerminal& vt) { doCall(PRIF_SETOUTVT, vt.resId()); } bool authenticatePW(String user, String pw) { diff --git a/Source/Library/Userland/Binding/VirtualTerminal.class.h b/Source/Library/Userland/Binding/VirtualTerminal.class.h index df44124..6576c1c 100644 --- a/Source/Library/Userland/Binding/VirtualTerminal.class.h +++ b/Source/Library/Userland/Binding/VirtualTerminal.class.h @@ -7,9 +7,10 @@ #include #include +#include #include -class VirtualTerminal : public RessourceCaller, public OStream { +class VirtualTerminal : public RessourceCaller, public OStream, public IStream { public: static VirtualTerminal getIn() { u32int id = RessourceCaller::sCall(VTIF_OBJTYPE, VTIF_SGETPRINVT); @@ -30,6 +31,9 @@ class VirtualTerminal : public RessourceCaller, public OStream { void write(const String &s) { doCall(VTIF_WRITE, (u32int)&s); } + String read() { + return String::unserialize(doCall(VTIF_READLINE, 1)) += "\n"; + } keypress_t getKeypress(bool show = true, bool block = true) { keypress_t* ptr = (keypress_t*)doCall(VTIF_GETKEYPRESS, (show ? 1 : 0) | (block ? 2 : 0)); return *ptr; diff --git a/Source/Library/Userland/Syscall/RessourceCaller.class.h b/Source/Library/Userland/Syscall/RessourceCaller.class.h index f26216d..39091ed 100644 --- a/Source/Library/Userland/Syscall/RessourceCaller.class.h +++ b/Source/Library/Userland/Syscall/RessourceCaller.class.h @@ -28,8 +28,8 @@ class RessourceCaller { public: static u32int sCall(u32int type, u8int wat, u32int a = 0, u32int b = 0, u32int c = 0, u32int d = 0); - u32int resId() { return m_id; } - u32int resType() { return m_type; } + u32int resId() const { return m_id; } + u32int resType() const { return m_type; } bool valid() { return m_type != 0; } }; -- cgit v1.2.3 From 2d3c5a9c47d99c8f4f5561f9eae16497c1cde63a Mon Sep 17 00:00:00 2001 From: Alexis211 Date: Sun, 20 Dec 2009 16:13:44 +0100 Subject: Added file streams and string streams --- Source/Applications/PaperWork/Map.txt | 910 ++++++++++----------- Source/Kernel/VFS/FSNode-sc.proto.cpp | 1 + .../Kernel/VTManager/VirtualTerminal-kbd.proto.cpp | 3 + Source/Library/Common/FileStream.class.cpp | 67 ++ Source/Library/Common/FileStream.class.h | 41 + Source/Library/Common/IStream.proto.cpp | 7 +- Source/Library/Common/IStream.proto.h | 3 + Source/Library/Common/OStream.proto.cpp | 3 + Source/Library/Common/OStream.proto.h | 3 +- Source/Library/Common/StringStream.class.cpp | 28 + Source/Library/Common/StringStream.class.h | 35 + Source/Library/Common/WChar.class.h | 2 + Source/Library/Makefile | 2 + Source/Library/Userland/App/ShellApp.proto.cpp | 4 + Source/Library/Userland/App/ShellApp.proto.h | 1 + .../Userland/Binding/VirtualTerminal.class.h | 13 +- 16 files changed, 625 insertions(+), 498 deletions(-) create mode 100644 Source/Library/Common/FileStream.class.cpp create mode 100644 Source/Library/Common/FileStream.class.h create mode 100644 Source/Library/Common/StringStream.class.cpp create mode 100644 Source/Library/Common/StringStream.class.h (limited to 'Source') diff --git a/Source/Applications/PaperWork/Map.txt b/Source/Applications/PaperWork/Map.txt index f19b7ba..d44ef4f 100644 --- a/Source/Applications/PaperWork/Map.txt +++ b/Source/Applications/PaperWork/Map.txt @@ -116,27 +116,6 @@ Discarded input sections .group 0x00000000 0x8 ../../Library/Melon.o .group 0x00000000 0x8 ../../Library/Melon.o .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o .group 0x00000000 0x8 PaperWork.o .group 0x00000000 0x8 PaperWork.o .group 0x00000000 0x8 PaperWork.o @@ -191,40 +170,16 @@ Discarded input sections 0x00000000 0x1a PaperWork.o .text._ZNK6StringeqEPKc 0x00000000 0x22 PaperWork.o - .text._ZN6StringpLEPKc - 0x00000000 0x22 PaperWork.o .text._ZN6StringD1Ev 0x00000000 0x30 PaperWork.o .text._ZN6StringD0Ev 0x00000000 0x30 PaperWork.o - .text._ZN7OStreamD2Ev - 0x00000000 0x30 PaperWork.o - .text._ZN7OStreamD1Ev - 0x00000000 0x30 PaperWork.o - .text._ZN7OStreamD0Ev - 0x00000000 0x30 PaperWork.o .text._ZN7OStreamlsERK6String 0x00000000 0x59 PaperWork.o - .text._ZN15VirtualTerminalD1Ev - 0x00000000 0x50 PaperWork.o - .text._ZN15VirtualTerminalD0Ev - 0x00000000 0x50 PaperWork.o - .text._ZN15VirtualTerminal5writeERK6String - 0x00000000 0x45 PaperWork.o - .text._ZN15VirtualTerminal4readEv - 0x00000000 0x9f PaperWork.o .text._ZN7Process3getEv 0x00000000 0x5a PaperWork.o .text._ZN7ProcessC1Ej 0x00000000 0x22 PaperWork.o - .text._ZN11ApplicationD2Ev - 0x00000000 0x25 PaperWork.o - .text._ZN11ApplicationD1Ev - 0x00000000 0x25 PaperWork.o - .text._ZN11ApplicationD0Ev - 0x00000000 0x25 PaperWork.o - .text._ZN11Application4initEv - 0x00000000 0x5 PaperWork.o .text._ZN11Application8doEventsEv 0x00000000 0x5 PaperWork.o .text._ZN11BasicStringI5WCharEC2Ev @@ -241,18 +196,6 @@ Discarded input sections 0x00000000 0xb8 PaperWork.o .text._ZNK11BasicStringI5WCharE8containsERKS0_ 0x00000000 0x5a PaperWork.o - .text._ZN6VectorI6StringED1Ev - 0x00000000 0x7b PaperWork.o - .text._ZN6flag_tD1Ev - 0x00000000 0x32 PaperWork.o - .text._ZN6VectorI6flag_tED1Ev - 0x00000000 0x5b PaperWork.o - .rodata._ZTV11Application - 0x00000000 0x1c PaperWork.o - .rodata._ZTV15VirtualTerminal - 0x00000000 0x2c PaperWork.o - .rodata._ZTV7OStream - 0x00000000 0x14 PaperWork.o .rodata._ZTV6String 0x00000000 0x10 PaperWork.o .rodata._ZTV11BasicStringI5WCharE @@ -268,9 +211,9 @@ Linker script and memory map LOAD ../../Library/Melon.o 0x10000000 . = 0x10000000 -.text 0x10000000 0x6490 +.text 0x10000000 0x66e0 *(.text) - .text 0x10000000 0x5d4c ../../Library/Melon.o + .text 0x10000000 0x5f9c ../../Library/Melon.o 0x10000000 WChar::WChar() 0x1000000e WChar::WChar() 0x1000001c WChar::WChar(char) @@ -345,779 +288,764 @@ LOAD ../../Library/Melon.o 0x1000390c OStream::put(String const&) 0x100039a2 OStream::flush() 0x10003b4a OStream::operator<<(ostream_modifiers_e) - 0x10003ba8 IStream::IStream() - 0x10003be4 IStream::IStream() - 0x10003c20 IStream::IStream(IStream const&) - 0x10003c5c IStream::IStream(IStream const&) - 0x10003c98 IStream::~IStream() - 0x10003cdc IStream::~IStream() - 0x10003d20 IStream::~IStream() - 0x10003d64 IStream::populate() - 0x10003e02 IStream::getChar() - 0x10003efa IStream::get(WChar) - 0x100040f0 __cxa_pure_virtual - 0x100040f5 __cxa_atexit - 0x100040ff memmove - 0x10004123 __udivdi3 - 0x10004169 __umoddi3 - 0x100041b8 ShellApp::ShellApp(String, String) - 0x10004364 ShellApp::ShellApp(String, String) - 0x10004510 ShellApp::init() - 0x100056ac ShellApp::getFlag(String) - 0x10005720 ShellApp::addFlag(WChar, String, String, int, String) - 0x1000582e ShellApp::sFlag(String) - 0x100058d4 ShellApp::iFlag(String) - 0x10005934 ShellApp::bFlag(String) - 0x10005994 syscall(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) - 0x100059bf threadFinishedSyscall(unsigned int) - 0x100059c9 breakPoint() - 0x100059cf putch(char) - 0x10005a17 sleep(unsigned int) - 0x10005a52 write_hex(unsigned int) - 0x10005a90 RessourceCaller::RessourceCaller(unsigned int, unsigned int) - 0x10005b00 RessourceCaller::RessourceCaller(unsigned int, unsigned int) - 0x10005b70 RessourceCaller::sCall(unsigned int, unsigned char, unsigned int, unsigned int, unsigned int, unsigned int) - 0x10005bb6 RessourceCaller::doCall(unsigned char, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) - 0x10005c18 start - 0x10005cf9 Mem::alloc(unsigned int) - 0x10005d1d Mem::free(void*) - 0x10005d39 Mem::mkXchgSpace(unsigned int) - .text 0x10005d4c 0x744 PaperWork.o - 0x10005d4c PaperWork::run() + 0x10003bf4 IStream::IStream() + 0x10003c36 IStream::IStream() + 0x10003c78 IStream::IStream(IStream const&) + 0x10003cb4 IStream::IStream(IStream const&) + 0x10003cf0 IStream::~IStream() + 0x10003d34 IStream::~IStream() + 0x10003d78 IStream::~IStream() + 0x10003dbc IStream::populate() + 0x10003e76 IStream::getChar() + 0x10003f6e IStream::get(WChar) + 0x10004164 __cxa_pure_virtual + 0x10004169 __cxa_atexit + 0x10004173 memmove + 0x10004197 __udivdi3 + 0x100041dd __umoddi3 + 0x1000422c ShellApp::ShellApp(String, String) + 0x100043dc ShellApp::ShellApp(String, String) + 0x1000458c ShellApp::~ShellApp() + 0x10004626 ShellApp::~ShellApp() + 0x100046c0 ShellApp::~ShellApp() + 0x1000475a ShellApp::init() + 0x100058fa ShellApp::getFlag(String) + 0x1000596e ShellApp::addFlag(WChar, String, String, int, String) + 0x10005a7c ShellApp::sFlag(String) + 0x10005b22 ShellApp::iFlag(String) + 0x10005b82 ShellApp::bFlag(String) + 0x10005be4 syscall(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) + 0x10005c0f threadFinishedSyscall(unsigned int) + 0x10005c19 breakPoint() + 0x10005c1f putch(char) + 0x10005c67 sleep(unsigned int) + 0x10005ca2 write_hex(unsigned int) + 0x10005ce0 RessourceCaller::RessourceCaller(unsigned int, unsigned int) + 0x10005d50 RessourceCaller::RessourceCaller(unsigned int, unsigned int) + 0x10005dc0 RessourceCaller::sCall(unsigned int, unsigned char, unsigned int, unsigned int, unsigned int, unsigned int) + 0x10005e06 RessourceCaller::doCall(unsigned char, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) + 0x10005e68 start + 0x10005f49 Mem::alloc(unsigned int) + 0x10005f6d Mem::free(void*) + 0x10005f89 Mem::mkXchgSpace(unsigned int) + .text 0x10005f9c 0x744 PaperWork.o + 0x10005f9c PaperWork::run() .text._ZN5WChareqEj - 0x10006490 0x10 + 0x100066e0 0x10 .text._ZN5WChareqEj - 0x10006490 0x10 ../../Library/Melon.o - 0x10006490 WChar::operator==(unsigned int) + 0x100066e0 0x10 ../../Library/Melon.o + 0x100066e0 WChar::operator==(unsigned int) .text._ZNK5WCharcvjEv - 0x100064a0 0xa + 0x100066f0 0xa .text._ZNK5WCharcvjEv - 0x100064a0 0xa ../../Library/Melon.o - 0x100064a0 WChar::operator unsigned int() const + 0x100066f0 0xa ../../Library/Melon.o + 0x100066f0 WChar::operator unsigned int() const .text._ZN6Thread3getEv - 0x100064aa 0x5a + 0x100066fa 0x5a .text._ZN6Thread3getEv - 0x100064aa 0x5a ../../Library/Melon.o - 0x100064aa Thread::get() + 0x100066fa 0x5a ../../Library/Melon.o + 0x100066fa Thread::get() .text._ZN6ThreadC1Ej - 0x10006504 0x22 + 0x10006754 0x22 .text._ZN6ThreadC1Ej - 0x10006504 0x22 ../../Library/Melon.o - 0x10006504 Thread::Thread(unsigned int) + 0x10006754 0x22 ../../Library/Melon.o + 0x10006754 Thread::Thread(unsigned int) .text._ZN6Thread5sleepEj - 0x10006526 0x42 + 0x10006776 0x42 .text._ZN6Thread5sleepEj - 0x10006526 0x42 ../../Library/Melon.o - 0x10006526 Thread::sleep(unsigned int) + 0x10006776 0x42 ../../Library/Melon.o + 0x10006776 Thread::sleep(unsigned int) .text._ZN7Process3getEv - 0x10006568 0x5a + 0x100067b8 0x5a .text._ZN7Process3getEv - 0x10006568 0x5a ../../Library/Melon.o - 0x10006568 Process::get() + 0x100067b8 0x5a ../../Library/Melon.o + 0x100067b8 Process::get() .text._ZN7ProcessC1Ej - 0x100065c2 0x22 + 0x10006812 0x22 .text._ZN7ProcessC1Ej - 0x100065c2 0x22 ../../Library/Melon.o - 0x100065c2 Process::Process(unsigned int) + 0x10006812 0x22 ../../Library/Melon.o + 0x10006812 Process::Process(unsigned int) .text._ZN7Process10allocPagesEjj - 0x100065e4 0x41 + 0x10006834 0x41 .text._ZN7Process10allocPagesEjj - 0x100065e4 0x41 ../../Library/Melon.o - 0x100065e4 Process::allocPages(unsigned int, unsigned int) + 0x10006834 0x41 ../../Library/Melon.o + 0x10006834 Process::allocPages(unsigned int, unsigned int) .text._ZN7Process9freePagesEjj - 0x10006626 0x41 + 0x10006876 0x41 .text._ZN7Process9freePagesEjj - 0x10006626 0x41 ../../Library/Melon.o - 0x10006626 Process::freePages(unsigned int, unsigned int) + 0x10006876 0x41 ../../Library/Melon.o + 0x10006876 Process::freePages(unsigned int, unsigned int) -.text._ZnwjPv 0x10006667 0x8 - .text._ZnwjPv 0x10006667 0x8 ../../Library/Melon.o - 0x10006667 operator new(unsigned int, void*) +.text._ZnwjPv 0x100068b7 0x8 + .text._ZnwjPv 0x100068b7 0x8 ../../Library/Melon.o + 0x100068b7 operator new(unsigned int, void*) -.text._Znaj 0x1000666f 0x13 - .text._Znaj 0x1000666f 0x13 ../../Library/Melon.o - 0x1000666f operator new[](unsigned int) +.text._Znaj 0x100068bf 0x13 + .text._Znaj 0x100068bf 0x13 ../../Library/Melon.o + 0x100068bf operator new[](unsigned int) -.text._ZdlPv 0x10006682 0x13 - .text._ZdlPv 0x10006682 0x13 ../../Library/Melon.o - 0x10006682 operator delete(void*) +.text._ZdlPv 0x100068d2 0x13 + .text._ZdlPv 0x100068d2 0x13 ../../Library/Melon.o + 0x100068d2 operator delete(void*) -.text._ZdaPv 0x10006695 0x13 - .text._ZdaPv 0x10006695 0x13 ../../Library/Melon.o - 0x10006695 operator delete[](void*) +.text._ZdaPv 0x100068e5 0x13 + .text._ZdaPv 0x100068e5 0x13 ../../Library/Melon.o + 0x100068e5 operator delete[](void*) .text._ZN5WChar6affectEPKch - 0x100066a8 0xb0 + 0x100068f8 0xb0 .text._ZN5WChar6affectEPKch - 0x100066a8 0xb0 ../../Library/Melon.o - 0x100066a8 WChar::affect(char const*, unsigned char) + 0x100068f8 0xb0 ../../Library/Melon.o + 0x100068f8 WChar::affect(char const*, unsigned char) .text._ZN5WCharaSEj - 0x10006758 0x10 + 0x100069a8 0x10 .text._ZN5WCharaSEj - 0x10006758 0x10 ../../Library/Melon.o - 0x10006758 WChar::operator=(unsigned int) + 0x100069a8 0x10 ../../Library/Melon.o + 0x100069a8 WChar::operator=(unsigned int) .text._ZN6StringC1Ev - 0x10006768 0x1c + 0x100069b8 0x1c .text._ZN6StringC1Ev - 0x10006768 0x1c ../../Library/Melon.o - 0x10006768 String::String() + 0x100069b8 0x1c ../../Library/Melon.o + 0x100069b8 String::String() .text._ZN6StringC1ERKS_ - 0x10006784 0x23 + 0x100069d4 0x23 .text._ZN6StringC1ERKS_ - 0x10006784 0x23 ../../Library/Melon.o - 0x10006784 String::String(String const&) + 0x100069d4 0x23 ../../Library/Melon.o + 0x100069d4 String::String(String const&) .text._ZN6StringpLERKS_ - 0x100067a8 0x1d + 0x100069f8 0x1d .text._ZN6StringpLERKS_ - 0x100067a8 0x1d ../../Library/Melon.o - 0x100067a8 String::operator+=(String const&) + 0x100069f8 0x1d ../../Library/Melon.o + 0x100069f8 String::operator+=(String const&) .text._ZN6StringpLE5WChar - 0x100067c6 0x1d + 0x10006a16 0x1d .text._ZN6StringpLE5WChar - 0x100067c6 0x1d ../../Library/Melon.o - 0x100067c6 String::operator+=(WChar) + 0x10006a16 0x1d ../../Library/Melon.o + 0x10006a16 String::operator+=(WChar) .text._ZN6StringD1Ev - 0x100067e4 0x30 + 0x10006a34 0x30 .text._ZN6StringD1Ev - 0x100067e4 0x30 ../../Library/Melon.o - 0x100067e4 String::~String() + 0x10006a34 0x30 ../../Library/Melon.o + 0x10006a34 String::~String() .text._ZN6StringD0Ev - 0x10006814 0x30 + 0x10006a64 0x30 .text._ZN6StringD0Ev - 0x10006814 0x30 ../../Library/Melon.o - 0x10006814 String::~String() + 0x10006a64 0x30 ../../Library/Melon.o + 0x10006a64 String::~String() .text._ZN11BasicStringI5WCharEC2Ev - 0x10006844 0x22 + 0x10006a94 0x22 .text._ZN11BasicStringI5WCharEC2Ev - 0x10006844 0x22 ../../Library/Melon.o - 0x10006844 BasicString::BasicString() + 0x10006a94 0x22 ../../Library/Melon.o + 0x10006a94 BasicString::BasicString() .text._ZN11BasicStringI5WCharED2Ev - 0x10006866 0x3d + 0x10006ab6 0x3d .text._ZN11BasicStringI5WCharED2Ev - 0x10006866 0x3d ../../Library/Melon.o - 0x10006866 BasicString::~BasicString() + 0x10006ab6 0x3d ../../Library/Melon.o + 0x10006ab6 BasicString::~BasicString() .text._ZN11BasicStringI5WCharED1Ev - 0x100068a4 0x3d + 0x10006af4 0x3d .text._ZN11BasicStringI5WCharED1Ev - 0x100068a4 0x3d ../../Library/Melon.o - 0x100068a4 BasicString::~BasicString() + 0x10006af4 0x3d ../../Library/Melon.o + 0x10006af4 BasicString::~BasicString() .text._ZN11BasicStringI5WCharED0Ev - 0x100068e2 0x3d + 0x10006b32 0x3d .text._ZN11BasicStringI5WCharED0Ev - 0x100068e2 0x3d ../../Library/Melon.o - 0x100068e2 BasicString::~BasicString() + 0x10006b32 0x3d ../../Library/Melon.o + 0x10006b32 BasicString::~BasicString() .text._ZN11BasicStringI5WCharEC2ERKS1_ - 0x10006920 0x2d + 0x10006b70 0x2d .text._ZN11BasicStringI5WCharEC2ERKS1_ - 0x10006920 0x2d ../../Library/Melon.o - 0x10006920 BasicString::BasicString(BasicString const&) + 0x10006b70 0x2d ../../Library/Melon.o + 0x10006b70 BasicString::BasicString(BasicString const&) .text._ZN11BasicStringI5WCharE6affectERKS1_ - 0x1000694e 0xb8 + 0x10006b9e 0xb8 .text._ZN11BasicStringI5WCharE6affectERKS1_ - 0x1000694e 0xb8 ../../Library/Melon.o - 0x1000694e BasicString::affect(BasicString const&) + 0x10006b9e 0xb8 ../../Library/Melon.o + 0x10006b9e BasicString::affect(BasicString const&) .text._ZN11BasicStringI5WCharE6appendERKS1_ - 0x10006a06 0x105 + 0x10006c56 0x105 .text._ZN11BasicStringI5WCharE6appendERKS1_ - 0x10006a06 0x105 ../../Library/Melon.o - 0x10006a06 BasicString::append(BasicString const&) + 0x10006c56 0x105 ../../Library/Melon.o + 0x10006c56 BasicString::append(BasicString const&) .text._ZN11BasicStringI5WCharE6appendES0_ - 0x10006b0c 0xd2 + 0x10006d5c 0xd2 .text._ZN11BasicStringI5WCharE6appendES0_ - 0x10006b0c 0xd2 ../../Library/Melon.o - 0x10006b0c BasicString::append(WChar) + 0x10006d5c 0xd2 ../../Library/Melon.o + 0x10006d5c BasicString::append(WChar) .text._ZNK11BasicStringI5WCharEixEi - 0x10006bde 0x13 + 0x10006e2e 0x13 .text._ZNK11BasicStringI5WCharEixEi - 0x10006bde 0x13 ../../Library/Melon.o - 0x10006bde BasicString::operator[](int) const + 0x10006e2e 0x13 ../../Library/Melon.o + 0x10006e2e BasicString::operator[](int) const .text._ZN6VectorI6StringEC1Ev - 0x10006bf2 0x18 + 0x10006e42 0x18 .text._ZN6VectorI6StringEC1Ev - 0x10006bf2 0x18 ../../Library/Melon.o - 0x10006bf2 Vector::Vector() + 0x10006e42 0x18 ../../Library/Melon.o + 0x10006e42 Vector::Vector() .text._ZN6VectorI6StringE4pushERKS0_ - 0x10006c0a 0xb8 + 0x10006e5a 0xb8 .text._ZN6VectorI6StringE4pushERKS0_ - 0x10006c0a 0xb8 ../../Library/Melon.o - 0x10006c0a Vector::push(String const&) + 0x10006e5a 0xb8 ../../Library/Melon.o + 0x10006e5a Vector::push(String const&) .text._ZNK6VectorI6StringE4backEv - 0x10006cc2 0x1f + 0x10006f12 0x1f .text._ZNK6VectorI6StringE4backEv - 0x10006cc2 0x1f ../../Library/Melon.o - 0x10006cc2 Vector::back() const + 0x10006f12 0x1f ../../Library/Melon.o + 0x10006f12 Vector::back() const .text._ZN15RessourceCaller5validEv - 0x10006ce2 0x10 + 0x10006f32 0x10 .text._ZN15RessourceCaller5validEv - 0x10006ce2 0x10 ../../Library/Melon.o - 0x10006ce2 RessourceCaller::valid() + 0x10006f32 0x10 ../../Library/Melon.o + 0x10006f32 RessourceCaller::valid() .text._ZN9ByteArrayC1Ev - 0x10006cf2 0x1c + 0x10006f42 0x1c .text._ZN9ByteArrayC1Ev - 0x10006cf2 0x1c ../../Library/Melon.o - 0x10006cf2 ByteArray::ByteArray() + 0x10006f42 0x1c ../../Library/Melon.o + 0x10006f42 ByteArray::ByteArray() .text._ZN9ByteArrayC1ERK6Stringh - 0x10006d0e 0x3c + 0x10006f5e 0x3c .text._ZN9ByteArrayC1ERK6Stringh - 0x10006d0e 0x3c ../../Library/Melon.o - 0x10006d0e ByteArray::ByteArray(String const&, unsigned char) + 0x10006f5e 0x3c ../../Library/Melon.o + 0x10006f5e ByteArray::ByteArray(String const&, unsigned char) .text._ZN9ByteArraycvPhEv - 0x10006d4a 0xb + 0x10006f9a 0xb .text._ZN9ByteArraycvPhEv - 0x10006d4a 0xb ../../Library/Melon.o - 0x10006d4a ByteArray::operator unsigned char*() + 0x10006f9a 0xb ../../Library/Melon.o + 0x10006f9a ByteArray::operator unsigned char*() .text._ZN4File4readEjPh - 0x10006d56 0x41 + 0x10006fa6 0x41 .text._ZN4File4readEjPh - 0x10006d56 0x41 ../../Library/Melon.o - 0x10006d56 File::read(unsigned int, unsigned char*) + 0x10006fa6 0x41 ../../Library/Melon.o + 0x10006fa6 File::read(unsigned int, unsigned char*) .text._ZN4File5writeEjPh - 0x10006d98 0x46 + 0x10006fe8 0x46 .text._ZN4File5writeEjPh - 0x10006d98 0x46 ../../Library/Melon.o - 0x10006d98 File::write(unsigned int, unsigned char*) + 0x10006fe8 0x46 ../../Library/Melon.o + 0x10006fe8 File::write(unsigned int, unsigned char*) .text._ZN4File4readER9ByteArray - 0x10006dde 0x89 + 0x1000702e 0x89 .text._ZN4File4readER9ByteArray - 0x10006dde 0x89 ../../Library/Melon.o - 0x10006dde File::read(ByteArray&) + 0x1000702e 0x89 ../../Library/Melon.o + 0x1000702e File::read(ByteArray&) .text._ZN4File5writeER9ByteArray - 0x10006e68 0x51 + 0x100070b8 0x51 .text._ZN4File5writeER9ByteArray - 0x10006e68 0x51 ../../Library/Melon.o - 0x10006e68 File::write(ByteArray&) + 0x100070b8 0x51 ../../Library/Melon.o + 0x100070b8 File::write(ByteArray&) .text._ZN4File4seekEyh - 0x10006eba 0x77 + 0x1000710a 0x77 .text._ZN4File4seekEyh - 0x10006eba 0x77 ../../Library/Melon.o - 0x10006eba File::seek(unsigned long long, unsigned char) + 0x1000710a 0x77 ../../Library/Melon.o + 0x1000710a File::seek(unsigned long long, unsigned char) .text._ZN9ByteArrayD1Ev - 0x10006f32 0x30 + 0x10007182 0x30 .text._ZN9ByteArrayD1Ev - 0x10006f32 0x30 ../../Library/Melon.o - 0x10006f32 ByteArray::~ByteArray() + 0x10007182 0x30 ../../Library/Melon.o + 0x10007182 ByteArray::~ByteArray() .text._ZN9ByteArrayD0Ev - 0x10006f62 0x30 + 0x100071b2 0x30 .text._ZN9ByteArrayD0Ev - 0x10006f62 0x30 ../../Library/Melon.o - 0x10006f62 ByteArray::~ByteArray() + 0x100071b2 0x30 ../../Library/Melon.o + 0x100071b2 ByteArray::~ByteArray() .text._ZN11BasicStringIhEC2Ev - 0x10006f92 0x22 + 0x100071e2 0x22 .text._ZN11BasicStringIhEC2Ev - 0x10006f92 0x22 ../../Library/Melon.o - 0x10006f92 BasicString::BasicString() + 0x100071e2 0x22 ../../Library/Melon.o + 0x100071e2 BasicString::BasicString() .text._ZN11BasicStringIhED2Ev - 0x10006fb4 0x3d + 0x10007204 0x3d .text._ZN11BasicStringIhED2Ev - 0x10006fb4 0x3d ../../Library/Melon.o - 0x10006fb4 BasicString::~BasicString() + 0x10007204 0x3d ../../Library/Melon.o + 0x10007204 BasicString::~BasicString() .text._ZN11BasicStringIhED1Ev - 0x10006ff2 0x3d + 0x10007242 0x3d .text._ZN11BasicStringIhED1Ev - 0x10006ff2 0x3d ../../Library/Melon.o - 0x10006ff2 BasicString::~BasicString() + 0x10007242 0x3d ../../Library/Melon.o + 0x10007242 BasicString::~BasicString() .text._ZN11BasicStringIhED0Ev - 0x10007030 0x3d + 0x10007280 0x3d .text._ZN11BasicStringIhED0Ev - 0x10007030 0x3d ../../Library/Melon.o - 0x10007030 BasicString::~BasicString() + 0x10007280 0x3d ../../Library/Melon.o + 0x10007280 BasicString::~BasicString() .text._ZNK11BasicStringIhE4sizeEv - 0x1000706e 0xb + 0x100072be 0xb .text._ZNK11BasicStringIhE4sizeEv - 0x1000706e 0xb ../../Library/Melon.o - 0x1000706e BasicString::size() const + 0x100072be 0xb ../../Library/Melon.o + 0x100072be BasicString::size() const .text._ZNK11BasicStringIhEixEi - 0x1000707a 0x11 + 0x100072ca 0x11 .text._ZNK11BasicStringIhEixEi - 0x1000707a 0x11 ../../Library/Melon.o - 0x1000707a BasicString::operator[](int) const + 0x100072ca 0x11 ../../Library/Melon.o + 0x100072ca BasicString::operator[](int) const .text._ZN11BasicStringIhE5clearEv - 0x1000708c 0x34 + 0x100072dc 0x34 .text._ZN11BasicStringIhE5clearEv - 0x1000708c 0x34 ../../Library/Melon.o - 0x1000708c BasicString::clear() + 0x100072dc 0x34 ../../Library/Melon.o + 0x100072dc BasicString::clear() .text._ZN11BasicStringIhEpLEh - 0x100070c0 0x21 + 0x10007310 0x21 .text._ZN11BasicStringIhEpLEh - 0x100070c0 0x21 ../../Library/Melon.o - 0x100070c0 BasicString::operator+=(unsigned char) + 0x10007310 0x21 ../../Library/Melon.o + 0x10007310 BasicString::operator+=(unsigned char) .text._ZN11BasicStringIhE6appendEh - 0x100070e2 0x9c + 0x10007332 0x9c .text._ZN11BasicStringIhE6appendEh - 0x100070e2 0x9c ../../Library/Melon.o - 0x100070e2 BasicString::append(unsigned char) + 0x10007332 0x9c ../../Library/Melon.o + 0x10007332 BasicString::append(unsigned char) .text._ZN5WChar6encodeEh - 0x1000717e 0x7a + 0x100073ce 0x7a .text._ZN5WChar6encodeEh - 0x1000717e 0x7a ../../Library/Melon.o - 0x1000717e WChar::encode(unsigned char) + 0x100073ce 0x7a ../../Library/Melon.o + 0x100073ce WChar::encode(unsigned char) .text._ZNK11BasicStringI5WCharE4sizeEv - 0x100071f8 0xb + 0x10007448 0xb .text._ZNK11BasicStringI5WCharE4sizeEv - 0x100071f8 0xb ../../Library/Melon.o - 0x100071f8 BasicString::size() const + 0x10007448 0xb ../../Library/Melon.o + 0x10007448 BasicString::size() const -.text._Znwj 0x10007203 0x13 - .text._Znwj 0x10007203 0x13 ../../Library/Melon.o - 0x10007203 operator new(unsigned int) +.text._Znwj 0x10007453 0x13 + .text._Znwj 0x10007453 0x13 ../../Library/Melon.o + 0x10007453 operator new(unsigned int) .text._ZN6StringC1E5WCharj - 0x10007216 0x2a + 0x10007466 0x2a .text._ZN6StringC1E5WCharj - 0x10007216 0x2a ../../Library/Melon.o - 0x10007216 String::String(WChar, unsigned int) + 0x10007466 0x2a ../../Library/Melon.o + 0x10007466 String::String(WChar, unsigned int) .text._ZN7OStreamD1Ev - 0x10007240 0x30 + 0x10007490 0x30 .text._ZN7OStreamD1Ev - 0x10007240 0x30 ../../Library/Melon.o - 0x10007240 OStream::~OStream() + 0x10007490 0x30 ../../Library/Melon.o + 0x10007490 OStream::~OStream() .text._ZN7OStreamD0Ev - 0x10007270 0x30 + 0x100074c0 0x30 .text._ZN7OStreamD0Ev - 0x10007270 0x30 ../../Library/Melon.o - 0x10007270 OStream::~OStream() + 0x100074c0 0x30 ../../Library/Melon.o + 0x100074c0 OStream::~OStream() .text._ZN11BasicStringI5WCharEC2ES0_j - 0x100072a0 0x34 + 0x100074f0 0x34 .text._ZN11BasicStringI5WCharEC2ES0_j - 0x100072a0 0x34 ../../Library/Melon.o - 0x100072a0 BasicString::BasicString(WChar, unsigned int) + 0x100074f0 0x34 ../../Library/Melon.o + 0x100074f0 BasicString::BasicString(WChar, unsigned int) .text._ZN10SimpleListI6StringEC1ERKS0_PS1_ - 0x100072d4 0x23 + 0x10007524 0x23 .text._ZN10SimpleListI6StringEC1ERKS0_PS1_ - 0x100072d4 0x23 ../../Library/Melon.o - 0x100072d4 SimpleList::SimpleList(String const&, SimpleList*) + 0x10007524 0x23 ../../Library/Melon.o + 0x10007524 SimpleList::SimpleList(String const&, SimpleList*) .text._ZN10SimpleListI6StringE8addAtEndERKS0_ - 0x100072f8 0x94 + 0x10007548 0x94 .text._ZN10SimpleListI6StringE8addAtEndERKS0_ - 0x100072f8 0x94 ../../Library/Melon.o - 0x100072f8 SimpleList::addAtEnd(String const&) + 0x10007548 0x94 ../../Library/Melon.o + 0x10007548 SimpleList::addAtEnd(String const&) .text._ZN10SimpleListI6StringE4nextEv - 0x1000738c 0xb + 0x100075dc 0xb .text._ZN10SimpleListI6StringE4nextEv - 0x1000738c 0xb ../../Library/Melon.o - 0x1000738c SimpleList::next() + 0x100075dc 0xb ../../Library/Melon.o + 0x100075dc SimpleList::next() .text._ZN10SimpleListI6StringE1vEv - 0x10007398 0x8 + 0x100075e8 0x8 .text._ZN10SimpleListI6StringE1vEv - 0x10007398 0x8 ../../Library/Melon.o - 0x10007398 SimpleList::v() + 0x100075e8 0x8 ../../Library/Melon.o + 0x100075e8 SimpleList::v() .text._ZN10SimpleListI6StringED1Ev - 0x100073a0 0x3c + 0x100075f0 0x3c .text._ZN10SimpleListI6StringED1Ev - 0x100073a0 0x3c ../../Library/Melon.o - 0x100073a0 SimpleList::~SimpleList() + 0x100075f0 0x3c ../../Library/Melon.o + 0x100075f0 SimpleList::~SimpleList() .text._ZN11BasicStringI5WCharE6affectES0_j - 0x100073dc 0xb8 + 0x1000762c 0xb8 .text._ZN11BasicStringI5WCharE6affectES0_j - 0x100073dc 0xb8 ../../Library/Melon.o - 0x100073dc BasicString::affect(WChar, unsigned int) + 0x1000762c 0xb8 ../../Library/Melon.o + 0x1000762c BasicString::affect(WChar, unsigned int) .text._ZNK11BasicStringI5WCharE5emptyEv - 0x10007494 0x10 + 0x100076e4 0x10 .text._ZNK11BasicStringI5WCharE5emptyEv - 0x10007494 0x10 ../../Library/Melon.o - 0x10007494 BasicString::empty() const + 0x100076e4 0x10 ../../Library/Melon.o + 0x100076e4 BasicString::empty() const .text._ZN10SimpleListI6StringE7delThisEv - 0x100074a4 0x1f + 0x100076f4 0x1f .text._ZN10SimpleListI6StringE7delThisEv - 0x100074a4 0x1f ../../Library/Melon.o - 0x100074a4 SimpleList::delThis() + 0x100076f4 0x1f ../../Library/Melon.o + 0x100076f4 SimpleList::delThis() .text._Z5doDivyjPj - 0x100074c3 0x76 + 0x10007713 0x76 .text._Z5doDivyjPj - 0x100074c3 0x76 ../../Library/Melon.o - 0x100074c3 doDiv(unsigned long long, unsigned int, unsigned int*) + 0x10007713 0x76 ../../Library/Melon.o + 0x10007713 doDiv(unsigned long long, unsigned int, unsigned int*) .text._ZN6StringaSERKS_ - 0x1000753a 0x1a + 0x1000778a 0x1a .text._ZN6StringaSERKS_ - 0x1000753a 0x1a ../../Library/Melon.o - 0x1000753a String::operator=(String const&) + 0x1000778a 0x1a ../../Library/Melon.o + 0x1000778a String::operator=(String const&) .text._ZNK6StringeqEPKc - 0x10007554 0x22 + 0x100077a4 0x22 .text._ZNK6StringeqEPKc - 0x10007554 0x22 ../../Library/Melon.o - 0x10007554 String::operator==(char const*) const + 0x100077a4 0x22 ../../Library/Melon.o + 0x100077a4 String::operator==(char const*) const .text._ZN6StringneEPKc - 0x10007576 0x25 + 0x100077c6 0x25 .text._ZN6StringneEPKc - 0x10007576 0x25 ../../Library/Melon.o - 0x10007576 String::operator!=(char const*) + 0x100077c6 0x25 ../../Library/Melon.o + 0x100077c6 String::operator!=(char const*) .text._ZNK6StringeqERKS_ - 0x1000759c 0x1a + 0x100077ec 0x1a .text._ZNK6StringeqERKS_ - 0x1000759c 0x1a ../../Library/Melon.o - 0x1000759c String::operator==(String const&) const + 0x100077ec 0x1a ../../Library/Melon.o + 0x100077ec String::operator==(String const&) const .text._ZN6StringpLEPKc - 0x100075b6 0x22 + 0x10007806 0x22 .text._ZN6StringpLEPKc - 0x100075b6 0x22 ../../Library/Melon.o - 0x100075b6 String::operator+=(char const*) + 0x10007806 0x22 ../../Library/Melon.o + 0x10007806 String::operator+=(char const*) .text._ZNK6StringplERKS_ - 0x100075d8 0x30 + 0x10007828 0x30 .text._ZNK6StringplERKS_ - 0x100075d8 0x30 ../../Library/Melon.o - 0x100075d8 String::operator+(String const&) const + 0x10007828 0x30 ../../Library/Melon.o + 0x10007828 String::operator+(String const&) const .text._ZNK6StringplEPKc - 0x10007608 0x38 + 0x10007858 0x38 .text._ZNK6StringplEPKc - 0x10007608 0x38 ../../Library/Melon.o - 0x10007608 String::operator+(char const*) const + 0x10007858 0x38 ../../Library/Melon.o + 0x10007858 String::operator+(char const*) const .text._ZN7OStreamD2Ev - 0x10007640 0x30 + 0x10007890 0x30 .text._ZN7OStreamD2Ev - 0x10007640 0x30 ../../Library/Melon.o - 0x10007640 OStream::~OStream() + 0x10007890 0x30 ../../Library/Melon.o + 0x10007890 OStream::~OStream() .text._ZN7OStreamlsERK6String - 0x10007670 0x59 + 0x100078c0 0x59 .text._ZN7OStreamlsERK6String - 0x10007670 0x59 ../../Library/Melon.o - 0x10007670 OStream::operator<<(String const&) + 0x100078c0 0x59 ../../Library/Melon.o + 0x100078c0 OStream::operator<<(String const&) .text._ZN7OStreamlsEi - 0x100076ca 0x3d + 0x1000791a 0x3d .text._ZN7OStreamlsEi - 0x100076ca 0x3d ../../Library/Melon.o - 0x100076ca OStream::operator<<(int) + 0x1000791a 0x3d ../../Library/Melon.o + 0x1000791a OStream::operator<<(int) .text._ZN15VirtualTerminalD1Ev - 0x10007708 0x50 + 0x10007958 0x50 .text._ZN15VirtualTerminalD1Ev - 0x10007708 0x50 ../../Library/Melon.o - 0x10007708 non-virtual thunk to VirtualTerminal::~VirtualTerminal() - 0x10007710 VirtualTerminal::~VirtualTerminal() + 0x10007958 0x50 ../../Library/Melon.o + 0x10007958 non-virtual thunk to VirtualTerminal::~VirtualTerminal() + 0x10007960 VirtualTerminal::~VirtualTerminal() .text._ZN15VirtualTerminalD0Ev - 0x10007758 0x50 + 0x100079a8 0x50 .text._ZN15VirtualTerminalD0Ev - 0x10007758 0x50 ../../Library/Melon.o - 0x10007758 non-virtual thunk to VirtualTerminal::~VirtualTerminal() - 0x10007760 VirtualTerminal::~VirtualTerminal() + 0x100079a8 0x50 ../../Library/Melon.o + 0x100079a8 non-virtual thunk to VirtualTerminal::~VirtualTerminal() + 0x100079b0 VirtualTerminal::~VirtualTerminal() .text._ZN15VirtualTerminal5getInEv - 0x100077a8 0x5e + 0x100079f8 0x5e .text._ZN15VirtualTerminal5getInEv - 0x100077a8 0x5e ../../Library/Melon.o - 0x100077a8 VirtualTerminal::getIn() + 0x100079f8 0x5e ../../Library/Melon.o + 0x100079f8 VirtualTerminal::getIn() .text._ZN15VirtualTerminal6getOutEv - 0x10007806 0x5e + 0x10007a56 0x5e .text._ZN15VirtualTerminal6getOutEv - 0x10007806 0x5e ../../Library/Melon.o - 0x10007806 VirtualTerminal::getOut() + 0x10007a56 0x5e ../../Library/Melon.o + 0x10007a56 VirtualTerminal::getOut() .text._ZN15VirtualTerminalC1Ej - 0x10007864 0x51 + 0x10007ab4 0x58 .text._ZN15VirtualTerminalC1Ej - 0x10007864 0x51 ../../Library/Melon.o - 0x10007864 VirtualTerminal::VirtualTerminal(unsigned int) + 0x10007ab4 0x58 ../../Library/Melon.o + 0x10007ab4 VirtualTerminal::VirtualTerminal(unsigned int) .text._ZN15VirtualTerminal5writeERK6String - 0x100078b6 0x45 + 0x10007b0c 0x45 .text._ZN15VirtualTerminal5writeERK6String - 0x100078b6 0x45 ../../Library/Melon.o - 0x100078b6 VirtualTerminal::write(String const&) + 0x10007b0c 0x45 ../../Library/Melon.o + 0x10007b0c VirtualTerminal::write(String const&) .text._ZN15VirtualTerminal4readEv - 0x100078fc 0x9f + 0x10007b52 0x173 .text._ZN15VirtualTerminal4readEv - 0x100078fc 0x9f ../../Library/Melon.o - 0x100078fc non-virtual thunk to VirtualTerminal::read() - 0x10007904 VirtualTerminal::read() + 0x10007b52 0x173 ../../Library/Melon.o + 0x10007b52 non-virtual thunk to VirtualTerminal::read() + 0x10007b5a VirtualTerminal::read() .text._ZN7Process4argcEv - 0x1000799c 0x43 + 0x10007cc6 0x43 .text._ZN7Process4argcEv - 0x1000799c 0x43 ../../Library/Melon.o - 0x1000799c Process::argc() + 0x10007cc6 0x43 ../../Library/Melon.o + 0x10007cc6 Process::argc() .text._ZN7Process4argvEj - 0x100079e0 0x66 + 0x10007d0a 0x66 .text._ZN7Process4argvEj - 0x100079e0 0x66 ../../Library/Melon.o - 0x100079e0 Process::argv(unsigned int) + 0x10007d0a 0x66 ../../Library/Melon.o + 0x10007d0a Process::argv(unsigned int) .text._ZN11ApplicationC2Ev - 0x10007a46 0x22 + 0x10007d70 0x22 .text._ZN11ApplicationC2Ev - 0x10007a46 0x22 ../../Library/Melon.o - 0x10007a46 Application::Application() + 0x10007d70 0x22 ../../Library/Melon.o + 0x10007d70 Application::Application() .text._ZN11ApplicationD2Ev - 0x10007a68 0x25 + 0x10007d92 0x25 .text._ZN11ApplicationD2Ev - 0x10007a68 0x25 ../../Library/Melon.o - 0x10007a68 Application::~Application() + 0x10007d92 0x25 ../../Library/Melon.o + 0x10007d92 Application::~Application() .text._ZN11ApplicationD1Ev - 0x10007a8e 0x25 + 0x10007db8 0x25 .text._ZN11ApplicationD1Ev - 0x10007a8e 0x25 ../../Library/Melon.o - 0x10007a8e Application::~Application() + 0x10007db8 0x25 ../../Library/Melon.o + 0x10007db8 Application::~Application() .text._ZN11ApplicationD0Ev - 0x10007ab4 0x25 + 0x10007dde 0x25 .text._ZN11ApplicationD0Ev - 0x10007ab4 0x25 ../../Library/Melon.o - 0x10007ab4 Application::~Application() + 0x10007dde 0x25 ../../Library/Melon.o + 0x10007dde Application::~Application() .text._ZN11Application4initEv - 0x10007ada 0x5 + 0x10007e04 0x5 .text._ZN11Application4initEv - 0x10007ada 0x5 ../../Library/Melon.o - 0x10007ada Application::init() + 0x10007e04 0x5 ../../Library/Melon.o + 0x10007e04 Application::init() .text._ZN11Application8doEventsEv - 0x10007ae0 0x5 + 0x10007e0a 0x5 .text._ZN11Application8doEventsEv - 0x10007ae0 0x5 ../../Library/Melon.o - 0x10007ae0 Application::doEvents() + 0x10007e0a 0x5 ../../Library/Melon.o + 0x10007e0a Application::doEvents() .text._ZN11Application4exitEj - 0x10007ae6 0x35 + 0x10007e10 0x35 .text._ZN11Application4exitEj - 0x10007ae6 0x35 ../../Library/Melon.o - 0x10007ae6 Application::exit(unsigned int) + 0x10007e10 0x35 ../../Library/Melon.o + 0x10007e10 Application::exit(unsigned int) .text._ZN6flag_tC1Ev - 0x10007b1c 0x3d + 0x10007e46 0x3d .text._ZN6flag_tC1Ev - 0x10007b1c 0x3d ../../Library/Melon.o - 0x10007b1c flag_t::flag_t() + 0x10007e46 0x3d ../../Library/Melon.o + 0x10007e46 flag_t::flag_t() .text._ZN6flag_tD1Ev - 0x10007b5a 0x32 + 0x10007e84 0x32 .text._ZN6flag_tD1Ev - 0x10007b5a 0x32 ../../Library/Melon.o - 0x10007b5a flag_t::~flag_t() + 0x10007e84 0x32 ../../Library/Melon.o + 0x10007e84 flag_t::~flag_t() .text._ZNK11BasicStringI5WCharE7compareERKS1_ - 0x10007b8c 0x84 + 0x10007eb6 0x84 .text._ZNK11BasicStringI5WCharE7compareERKS1_ - 0x10007b8c 0x84 ../../Library/Melon.o - 0x10007b8c BasicString::compare(BasicString const&) const + 0x10007eb6 0x84 ../../Library/Melon.o + 0x10007eb6 BasicString::compare(BasicString const&) const .text._ZNK11BasicStringI5WCharE8containsERKS0_ - 0x10007c10 0x5a + 0x10007f3a 0x5a .text._ZNK11BasicStringI5WCharE8containsERKS0_ - 0x10007c10 0x5a ../../Library/Melon.o - 0x10007c10 BasicString::contains(WChar const&) const + 0x10007f3a 0x5a ../../Library/Melon.o + 0x10007f3a BasicString::contains(WChar const&) const .text._ZN6VectorI6StringED1Ev - 0x10007c6a 0x7b + 0x10007f94 0x7b .text._ZN6VectorI6StringED1Ev - 0x10007c6a 0x7b ../../Library/Melon.o - 0x10007c6a Vector::~Vector() + 0x10007f94 0x7b ../../Library/Melon.o + 0x10007f94 Vector::~Vector() .text._ZN6VectorI6flag_tEC1Ev - 0x10007ce6 0x18 + 0x10008010 0x18 .text._ZN6VectorI6flag_tEC1Ev - 0x10007ce6 0x18 ../../Library/Melon.o - 0x10007ce6 Vector::Vector() + 0x10008010 0x18 ../../Library/Melon.o + 0x10008010 Vector::Vector() .text._ZN6VectorI6flag_tED1Ev - 0x10007cfe 0x5b + 0x10008028 0x5b .text._ZN6VectorI6flag_tED1Ev - 0x10007cfe 0x5b ../../Library/Melon.o - 0x10007cfe Vector::~Vector() + 0x10008028 0x5b ../../Library/Melon.o + 0x10008028 Vector::~Vector() .text._ZNK6VectorI6flag_tE4sizeEv - 0x10007d5a 0xb + 0x10008084 0xb .text._ZNK6VectorI6flag_tE4sizeEv - 0x10007d5a 0xb ../../Library/Melon.o - 0x10007d5a Vector::size() const + 0x10008084 0xb ../../Library/Melon.o + 0x10008084 Vector::size() const .text._ZNK6VectorI6flag_tEixEj - 0x10007d66 0x13 + 0x10008090 0x13 .text._ZNK6VectorI6flag_tEixEj - 0x10007d66 0x13 ../../Library/Melon.o - 0x10007d66 Vector::operator[](unsigned int) const + 0x10008090 0x13 ../../Library/Melon.o + 0x10008090 Vector::operator[](unsigned int) const .text._ZN6flag_tC1ERKS_ - 0x10007d7a 0x7f + 0x100080a4 0x7f .text._ZN6flag_tC1ERKS_ - 0x10007d7a 0x7f ../../Library/Melon.o - 0x10007d7a flag_t::flag_t(flag_t const&) + 0x100080a4 0x7f ../../Library/Melon.o + 0x100080a4 flag_t::flag_t(flag_t const&) .text._ZN6VectorI6flag_tE4pushERKS0_ - 0x10007dfa 0xa4 + 0x10008124 0xa4 .text._ZN6VectorI6flag_tE4pushERKS0_ - 0x10007dfa 0xa4 ../../Library/Melon.o - 0x10007dfa Vector::push(flag_t const&) - -.text._ZN8ShellAppD1Ev - 0x10007e9e 0x84 - .text._ZN8ShellAppD1Ev - 0x10007e9e 0x84 ../../Library/Melon.o - 0x10007e9e ShellApp::~ShellApp() - -.text._ZN8ShellAppD0Ev - 0x10007f22 0x84 - .text._ZN8ShellAppD0Ev - 0x10007f22 0x84 ../../Library/Melon.o - 0x10007f22 ShellApp::~ShellApp() - -.iplt 0x10007fa8 0x0 load address 0x10007fa6 + 0x10008124 0xa4 ../../Library/Melon.o + 0x10008124 Vector::push(flag_t const&) + +.iplt 0x100081c8 0x0 .iplt 0x00000000 0x0 ../../Library/Melon.o .text._ZNK15RessourceCaller5resIdEv - 0x10007fa6 0xa + 0x100081c8 0xa .text._ZNK15RessourceCaller5resIdEv - 0x10007fa6 0xa PaperWork.o - 0x10007fa6 RessourceCaller::resId() const + 0x100081c8 0xa PaperWork.o + 0x100081c8 RessourceCaller::resId() const .text._ZN6StringaSEPKc - 0x10007fb0 0x22 + 0x100081d2 0x22 .text._ZN6StringaSEPKc - 0x10007fb0 0x22 PaperWork.o - 0x10007fb0 String::operator=(char const*) + 0x100081d2 0x22 PaperWork.o + 0x100081d2 String::operator=(char const*) .text._ZN15VirtualTerminal8readLineEb - 0x10007fd2 0x89 + 0x100081f4 0x89 .text._ZN15VirtualTerminal8readLineEb - 0x10007fd2 0x89 PaperWork.o - 0x10007fd2 VirtualTerminal::readLine(bool) + 0x100081f4 0x89 PaperWork.o + 0x100081f4 VirtualTerminal::readLine(bool) .text._ZN7Process3runERK6String - 0x1000805b 0x53 + 0x1000827d 0x53 .text._ZN7Process3runERK6String - 0x1000805b 0x53 PaperWork.o - 0x1000805b Process::run(String const&) + 0x1000827d 0x53 PaperWork.o + 0x1000827d Process::run(String const&) .text._ZN7Process5startEv - 0x100080ae 0x43 + 0x100082d0 0x43 .text._ZN7Process5startEv - 0x100080ae 0x43 PaperWork.o - 0x100080ae Process::start() + 0x100082d0 0x43 PaperWork.o + 0x100082d0 Process::start() .text._ZN7Process4waitEv - 0x100080f2 0x43 + 0x10008314 0x43 .text._ZN7Process4waitEv - 0x100080f2 0x43 PaperWork.o - 0x100080f2 Process::wait() + 0x10008314 0x43 PaperWork.o + 0x10008314 Process::wait() .text._ZN7Process7pushArgERK6String - 0x10008136 0x42 + 0x10008358 0x42 .text._ZN7Process7pushArgERK6String - 0x10008136 0x42 PaperWork.o - 0x10008136 Process::pushArg(String const&) + 0x10008358 0x42 PaperWork.o + 0x10008358 Process::pushArg(String const&) .text._ZN7Process7setInVTERK15VirtualTerminal - 0x10008178 0x4d + 0x1000839a 0x4d .text._ZN7Process7setInVTERK15VirtualTerminal - 0x10008178 0x4d PaperWork.o - 0x10008178 Process::setInVT(VirtualTerminal const&) + 0x1000839a 0x4d PaperWork.o + 0x1000839a Process::setInVT(VirtualTerminal const&) .text._ZN7Process8setOutVTERK15VirtualTerminal - 0x100081c6 0x4d + 0x100083e8 0x4d .text._ZN7Process8setOutVTERK15VirtualTerminal - 0x100081c6 0x4d PaperWork.o - 0x100081c6 Process::setOutVT(VirtualTerminal const&) + 0x100083e8 0x4d PaperWork.o + 0x100083e8 Process::setOutVT(VirtualTerminal const&) .text._ZN7Process14authenticatePWE6StringS0_ - 0x10008214 0x47 + 0x10008436 0x47 .text._ZN7Process14authenticatePWE6StringS0_ - 0x10008214 0x47 PaperWork.o - 0x10008214 Process::authenticatePW(String, String) - -.text._ZN8ShellAppD2Ev - 0x1000825c 0x84 - .text._ZN8ShellAppD2Ev - 0x1000825c 0x84 PaperWork.o - 0x1000825c ShellApp::~ShellApp() + 0x10008436 0x47 PaperWork.o + 0x10008436 Process::authenticatePW(String, String) .text._ZN9PaperWorkC1Ev - 0x100082e0 0x2bf + 0x1000847e 0x2bf .text._ZN9PaperWorkC1Ev - 0x100082e0 0x2bf PaperWork.o - 0x100082e0 PaperWork::PaperWork() + 0x1000847e 0x2bf PaperWork.o + 0x1000847e PaperWork::PaperWork() .text._ZN9PaperWorkD1Ev - 0x100085a0 0x30 + 0x1000873e 0x30 .text._ZN9PaperWorkD1Ev - 0x100085a0 0x30 PaperWork.o - 0x100085a0 PaperWork::~PaperWork() + 0x1000873e 0x30 PaperWork.o + 0x1000873e PaperWork::~PaperWork() .text._ZN9PaperWorkD0Ev - 0x100085d0 0x30 + 0x1000876e 0x30 .text._ZN9PaperWorkD0Ev - 0x100085d0 0x30 PaperWork.o - 0x100085d0 PaperWork::~PaperWork() + 0x1000876e 0x30 PaperWork.o + 0x1000876e PaperWork::~PaperWork() -.rodata 0x10009000 0x3d2 +.rodata 0x10009000 0x3d6 *(.rodata) - .rodata 0x10009000 0x28d ../../Library/Melon.o - *fill* 0x1000928d 0x3 00 - .rodata 0x10009290 0x142 PaperWork.o + .rodata 0x10009000 0x291 ../../Library/Melon.o + *fill* 0x10009291 0x3 00 + .rodata 0x10009294 0x142 PaperWork.o .rodata._ZTV6String 0x100093d8 0x10 @@ -1304,10 +1232,6 @@ LOAD ../../Library/Melon.o 0x00000000 0x0 ../../Library/Melon.o .rel.text._ZN6VectorI6flag_tE4pushERKS0_ 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN8ShellAppD1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN8ShellAppD0Ev - 0x00000000 0x0 ../../Library/Melon.o .rel.rodata._ZTV6String 0x00000000 0x0 ../../Library/Melon.o .rel.rodata._ZTV11BasicStringI5WCharE @@ -1332,8 +1256,6 @@ LOAD ../../Library/Melon.o 0x00000000 0x0 ../../Library/Melon.o .rel.text._ZN7Process8setOutVTERK15VirtualTerminal 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN8ShellAppD2Ev - 0x00000000 0x0 ../../Library/Melon.o .rel.text._ZN9PaperWorkC1Ev 0x00000000 0x0 ../../Library/Melon.o .rel.rodata._ZTV9PaperWork @@ -1364,7 +1286,7 @@ LOAD ../../Library/Melon.o .igot.plt 0x1000a024 0x0 .igot.plt 0x00000000 0x0 ../../Library/Melon.o -.bss 0x1000a040 0x2a4 +.bss 0x1000a040 0x2ac 0x1000a040 sbss = . *(COMMON) *(.bss) @@ -1373,11 +1295,11 @@ LOAD ../../Library/Melon.o 0x1000a240 __dso_handle 0x1000a244 heap *fill* 0x1000a248 0x18 00 - .bss 0x1000a260 0x84 PaperWork.o - 0x1000a2e4 ebss = . - 0x1000a2e4 end = . - 0x1000a2e4 _end = . - 0x1000a2e4 __end = . + .bss 0x1000a260 0x8c PaperWork.o + 0x1000a2ec ebss = . + 0x1000a2ec end = . + 0x1000a2ec _end = . + 0x1000a2ec __end = . LOAD PaperWork.o OUTPUT(PaperWork elf32-i386) diff --git a/Source/Kernel/VFS/FSNode-sc.proto.cpp b/Source/Kernel/VFS/FSNode-sc.proto.cpp index 717ccef..d86014c 100644 --- a/Source/Kernel/VFS/FSNode-sc.proto.cpp +++ b/Source/Kernel/VFS/FSNode-sc.proto.cpp @@ -90,6 +90,7 @@ bool FSNode::readable(User* user) { } bool FSNode::writable(User* user) { + if (!m_fs->isWritable()) return false; if (ISROOT) return true; if (user == 0) user = Usr::user(); if (user->getUid() == m_uid) diff --git a/Source/Kernel/VTManager/VirtualTerminal-kbd.proto.cpp b/Source/Kernel/VTManager/VirtualTerminal-kbd.proto.cpp index 5b551eb..e96c327 100644 --- a/Source/Kernel/VTManager/VirtualTerminal-kbd.proto.cpp +++ b/Source/Kernel/VTManager/VirtualTerminal-kbd.proto.cpp @@ -64,6 +64,9 @@ String VirtualTerminal::readLine(bool show) { else if (show) put(" "); //Put a space so that cursor stays at same place } else if (tmp.hascmd && !tmp.haschar && tmp.command == KBDC_TAB) { ret += "\t"; + } else if (tmp.hascmd && tmp.haschar && tmp.modifiers == STATUS_CTRL && tmp.character == WChar("d")) { + ret += EOF; + break; } else if (tmp.haschar && !tmp.hascmd) { ret += tmp.character; } diff --git a/Source/Library/Common/FileStream.class.cpp b/Source/Library/Common/FileStream.class.cpp new file mode 100644 index 0000000..6154b2f --- /dev/null +++ b/Source/Library/Common/FileStream.class.cpp @@ -0,0 +1,67 @@ +#include "FileStream.class.h" + +//************************************ +// INPUT FILE STREAM +// ******************** + +FileIStream::FileIStream(const String &filename, u8int encoding, FSNode start) { + m_file = new File(filename, FM_READ, start); + m_encoding = encoding; +} + +FileIStream::~FileIStream() { + if (m_file != 0) { + m_file->close(); + delete m_file; + } +} + +void FileIStream::appendFile(const String &filename) { + if (m_filenames == 0) { + m_filenames = new SimpleList(filename); + } else { + m_filenames->addAtEnd(filename); + } +} + +String FileIStream::read() { + if (m_file == 0) return ""; + while (m_file->eof() or !m_file->valid()) { + m_file->close(); + delete m_file; + m_file = 0; + if (m_filenames == 0) { + return ""; + } else { +#ifdef THIS_IS_MELON_KERNEL + m_file = new File(m_filenames->v(), FM_READ); +#else + m_file = new File(m_filenames->v(), FM_READ, FS::cwdNode()); +#endif + m_filenames = m_filenames->delThis(); + } + } + ByteArray temp; + temp.resize(512); + u32int r = m_file->read(temp); + temp.resize(r); + return temp.toString(m_encoding); +} + +//************************************ +// OUTPUT FILE STREAM +// ******************** + +FileOStream::FileOStream(const String& filename, u8int mode, u8int encoding, FSNode start) { + m_file = new File(filename, mode, start); + m_encoding = encoding; +} + +FileOStream::~FileOStream() { + delete m_file; +} + +void FileOStream::write(const String &s) { + ByteArray a(s, m_encoding); + m_file->write(a); +} diff --git a/Source/Library/Common/FileStream.class.h b/Source/Library/Common/FileStream.class.h new file mode 100644 index 0000000..d0fb971 --- /dev/null +++ b/Source/Library/Common/FileStream.class.h @@ -0,0 +1,41 @@ +#ifndef DEF_FILESTREAM_CLASS_H +#define DEF_FILESTREAM_CLASS_H + +#include +#include + +#ifdef THIS_IS_MELON_KERNEL +#include +#else +#include +#endif + +class FileIStream : public IStream { + private: + String read(); + + SimpleList *m_filenames; + + File *m_file; + u8int m_encoding; + + public: + FileIStream(const String &filename, u8int encoding = UE_UTF8, FSNode start = FSNode(0)); + ~FileIStream(); + + void appendFile(const String &filename); +}; + +class FileOStream : public OStream { + private: + File *m_file; + u8int m_encoding; + + public: + FileOStream(const String &filename, u8int mode, u8int encoding = UE_UTF8, FSNode start = FSNode(0)); + ~FileOStream(); + + void write(const String &s); +}; + +#endif diff --git a/Source/Library/Common/IStream.proto.cpp b/Source/Library/Common/IStream.proto.cpp index 0cc2a79..59c623e 100644 --- a/Source/Library/Common/IStream.proto.cpp +++ b/Source/Library/Common/IStream.proto.cpp @@ -3,6 +3,7 @@ IStream::IStream() { m_buffer = NULL; m_ptr = 0; + m_eof = false; } IStream::IStream(const IStream& other) { @@ -15,8 +16,12 @@ IStream::~IStream() { } bool IStream::populate() { + if (m_eof) return false; String s = read(); - if (s.empty()) return false; + if (s.empty()) { + m_eof = true; + return false; + } if (m_buffer == NULL) { m_buffer = new SimpleList(s); } else { diff --git a/Source/Library/Common/IStream.proto.h b/Source/Library/Common/IStream.proto.h index f689a22..e844726 100644 --- a/Source/Library/Common/IStream.proto.h +++ b/Source/Library/Common/IStream.proto.h @@ -10,6 +10,7 @@ class IStream : private Mutex { SimpleList *m_buffer; int m_ptr; void operator =(IStream& other); + bool m_eof; bool populate(); @@ -21,6 +22,8 @@ class IStream : private Mutex { IStream(const IStream& other); virtual ~IStream(); + bool eof() const { return m_eof && (m_buffer == NULL); } + WChar getChar(); String get(WChar delimiter = "\n"); String getWord() { return get(" "); } diff --git a/Source/Library/Common/OStream.proto.cpp b/Source/Library/Common/OStream.proto.cpp index bbf5dc3..ba876b3 100644 --- a/Source/Library/Common/OStream.proto.cpp +++ b/Source/Library/Common/OStream.proto.cpp @@ -55,6 +55,9 @@ OStream& OStream::operator<< (ostream_modifiers_e m) { flush(); } else if (m == ENDL) { put("\n"); + } else if (m == END) { + put(String(EOF, 1)); + flush(); } return *this; } diff --git a/Source/Library/Common/OStream.proto.h b/Source/Library/Common/OStream.proto.h index 2fc68e1..ff19e7b 100644 --- a/Source/Library/Common/OStream.proto.h +++ b/Source/Library/Common/OStream.proto.h @@ -7,7 +7,8 @@ enum ostream_modifiers_e { FLUSH, - ENDL + ENDL, + END }; class OStream : private Mutex { diff --git a/Source/Library/Common/StringStream.class.cpp b/Source/Library/Common/StringStream.class.cpp new file mode 100644 index 0000000..c4377ce --- /dev/null +++ b/Source/Library/Common/StringStream.class.cpp @@ -0,0 +1,28 @@ +#include "StringStream.class.h" + +StringIStream::StringIStream(const String &e) { + m_elements = new SimpleList(e); +} + +StringIStream::StringIStream() { + m_elements = 0; +} + +StringIStream::~StringIStream() { + if (m_elements != 0) delete m_elements; +} + +String StringIStream::read() { + if (m_elements == 0) return ""; + String ret = m_elements->v(); + m_elements = m_elements->delThis(); + return ret; +} + +void StringIStream::append(const String &e) { + if (m_elements == 0) { + m_elements = new SimpleList(e); + } else { + m_elements->addAtEnd(e); + } +} diff --git a/Source/Library/Common/StringStream.class.h b/Source/Library/Common/StringStream.class.h new file mode 100644 index 0000000..814b539 --- /dev/null +++ b/Source/Library/Common/StringStream.class.h @@ -0,0 +1,35 @@ +#ifndef DEF_STRINGSTREAM_CLASS_H +#define DEF_STRINGSTREAM_CLASS_H + +#include +#include + +class StringIStream : public IStream { + private: + SimpleList *m_elements; + + String read(); + + public: + StringIStream(const String &e); + StringIStream(); + ~StringIStream(); + + void append(const String &e); +}; + +class StringOStream : public OStream { + private: + String m_str; + + void write(const String& s) { m_str += s; } + + public: + + const String &str() const { return m_str; } + void clear() { m_str = ""; } +}; + + +#endif + diff --git a/Source/Library/Common/WChar.class.h b/Source/Library/Common/WChar.class.h index afaeb44..6db4b1b 100644 --- a/Source/Library/Common/WChar.class.h +++ b/Source/Library/Common/WChar.class.h @@ -7,6 +7,8 @@ #include #endif +#define EOF "\3" + enum { UE_UTF8, UE_UTF16_LE, diff --git a/Source/Library/Makefile b/Source/Library/Makefile index cee4944..83e3689 100644 --- a/Source/Library/Makefile +++ b/Source/Library/Makefile @@ -21,6 +21,8 @@ Objects = Common/WChar.class.uo \ Common/Rand.ns.uo \ Common/OStream.proto.uo \ Common/IStream.proto.uo \ + Common/FileStream.class.uo \ + Common/StringStream.class.uo \ Common/cppsupport.wtf.uo \ Userland/App/ShellApp.proto.uo \ Userland/Syscall/Syscall.wtf.uo \ diff --git a/Source/Library/Userland/App/ShellApp.proto.cpp b/Source/Library/Userland/App/ShellApp.proto.cpp index f2233bc..9528ca2 100644 --- a/Source/Library/Userland/App/ShellApp.proto.cpp +++ b/Source/Library/Userland/App/ShellApp.proto.cpp @@ -9,6 +9,10 @@ ShellApp::ShellApp(String name, String desc) addFlag("h", "help", "Show this help screen"); } +ShellApp::~ShellApp() { + outvt << END; +} + void ShellApp::init() { //Parse flags u32int argc = pr.argc(); diff --git a/Source/Library/Userland/App/ShellApp.proto.h b/Source/Library/Userland/App/ShellApp.proto.h index 5575112..2308fd1 100644 --- a/Source/Library/Userland/App/ShellApp.proto.h +++ b/Source/Library/Userland/App/ShellApp.proto.h @@ -24,6 +24,7 @@ class ShellApp : public Application { Vector flags; String appName, appDesc; ShellApp(String name, String desc); + ~ShellApp(); virtual void init(); diff --git a/Source/Library/Userland/Binding/VirtualTerminal.class.h b/Source/Library/Userland/Binding/VirtualTerminal.class.h index 6576c1c..54bdc53 100644 --- a/Source/Library/Userland/Binding/VirtualTerminal.class.h +++ b/Source/Library/Userland/Binding/VirtualTerminal.class.h @@ -11,6 +11,9 @@ #include class VirtualTerminal : public RessourceCaller, public OStream, public IStream { + private: + bool m_eof; + public: static VirtualTerminal getIn() { u32int id = RessourceCaller::sCall(VTIF_OBJTYPE, VTIF_SGETPRINVT); @@ -20,7 +23,7 @@ class VirtualTerminal : public RessourceCaller, public OStream, public IStream { u32int id = RessourceCaller::sCall(VTIF_OBJTYPE, VTIF_SGETPROUTVT); return VirtualTerminal(id); } - VirtualTerminal(u32int id) : RessourceCaller(id, VTIF_OBJTYPE) {} + VirtualTerminal(u32int id) : RessourceCaller(id, VTIF_OBJTYPE) { m_eof = false; } /*void writeHex(u32int number) { doCall(VTIF_WRITEHEX, number); @@ -32,7 +35,13 @@ class VirtualTerminal : public RessourceCaller, public OStream, public IStream { doCall(VTIF_WRITE, (u32int)&s); } String read() { - return String::unserialize(doCall(VTIF_READLINE, 1)) += "\n"; + if (m_eof) return ""; + String ret = String::unserialize(doCall(VTIF_READLINE, 1)); + if (ret[ret.size() - 1] == WChar(EOF)) { + ret = ret.substr(0, ret.size() - 1); + m_eof = true; + } + return ret += "\n"; } keypress_t getKeypress(bool show = true, bool block = true) { keypress_t* ptr = (keypress_t*)doCall(VTIF_GETKEYPRESS, (show ? 1 : 0) | (block ? 2 : 0)); -- cgit v1.2.3 From 13d720389a01161a327a30918ad7ac9eec4a3d6c Mon Sep 17 00:00:00 2001 From: Alexis211 Date: Sun, 20 Dec 2009 16:30:30 +0100 Subject: [not tested] Introduced StreamApp.class --- Source/Applications/PaperWork/Map.txt | 1316 ----------------------- Source/Kernel/VTManager/FileVT.class.cpp | 2 +- Source/Library/Common/FileStream.class.cpp | 13 +- Source/Library/Common/FileStream.class.h | 2 + Source/Library/Makefile | 1 + Source/Library/Userland/App/ShellApp.proto.cpp | 2 +- Source/Library/Userland/App/ShellApp.proto.h | 2 +- Source/Library/Userland/App/StreamApp.proto.cpp | 39 + Source/Library/Userland/App/StreamApp.proto.h | 27 + 9 files changed, 79 insertions(+), 1325 deletions(-) delete mode 100644 Source/Applications/PaperWork/Map.txt create mode 100644 Source/Library/Userland/App/StreamApp.proto.cpp create mode 100644 Source/Library/Userland/App/StreamApp.proto.h (limited to 'Source') diff --git a/Source/Applications/PaperWork/Map.txt b/Source/Applications/PaperWork/Map.txt deleted file mode 100644 index d44ef4f..0000000 --- a/Source/Applications/PaperWork/Map.txt +++ /dev/null @@ -1,1316 +0,0 @@ - -Discarded input sections - - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .group 0x00000000 0x8 PaperWork.o - .text._Znaj 0x00000000 0x13 PaperWork.o - .text._ZdlPv 0x00000000 0x13 PaperWork.o - .text._ZN15RessourceCaller5validEv - 0x00000000 0x10 PaperWork.o - .text._ZN5WChareqEj - 0x00000000 0x10 PaperWork.o - .text._ZNK5WCharcvjEv - 0x00000000 0xa PaperWork.o - .text._ZN6StringC1Ev - 0x00000000 0x1c PaperWork.o - .text._ZN6StringC1ERKS_ - 0x00000000 0x23 PaperWork.o - .text._ZN6StringaSERKS_ - 0x00000000 0x1a PaperWork.o - .text._ZNK6StringeqEPKc - 0x00000000 0x22 PaperWork.o - .text._ZN6StringD1Ev - 0x00000000 0x30 PaperWork.o - .text._ZN6StringD0Ev - 0x00000000 0x30 PaperWork.o - .text._ZN7OStreamlsERK6String - 0x00000000 0x59 PaperWork.o - .text._ZN7Process3getEv - 0x00000000 0x5a PaperWork.o - .text._ZN7ProcessC1Ej - 0x00000000 0x22 PaperWork.o - .text._ZN11Application8doEventsEv - 0x00000000 0x5 PaperWork.o - .text._ZN11BasicStringI5WCharEC2Ev - 0x00000000 0x22 PaperWork.o - .text._ZN11BasicStringI5WCharED2Ev - 0x00000000 0x3d PaperWork.o - .text._ZN11BasicStringI5WCharED1Ev - 0x00000000 0x3d PaperWork.o - .text._ZN11BasicStringI5WCharED0Ev - 0x00000000 0x3d PaperWork.o - .text._ZN11BasicStringI5WCharEC2ERKS1_ - 0x00000000 0x2d PaperWork.o - .text._ZN11BasicStringI5WCharE6affectERKS1_ - 0x00000000 0xb8 PaperWork.o - .text._ZNK11BasicStringI5WCharE8containsERKS0_ - 0x00000000 0x5a PaperWork.o - .rodata._ZTV6String - 0x00000000 0x10 PaperWork.o - .rodata._ZTV11BasicStringI5WCharE - 0x00000000 0x10 PaperWork.o - -Memory Configuration - -Name Origin Length Attributes -*default* 0x00000000 0xffffffff - -Linker script and memory map - -LOAD ../../Library/Melon.o - 0x10000000 . = 0x10000000 - -.text 0x10000000 0x66e0 - *(.text) - .text 0x10000000 0x5f9c ../../Library/Melon.o - 0x10000000 WChar::WChar() - 0x1000000e WChar::WChar() - 0x1000001c WChar::WChar(char) - 0x1000003e WChar::WChar(char) - 0x10000060 WChar::WChar(char const*, unsigned char) - 0x100000e6 WChar::WChar(char const*, unsigned char) - 0x1000016c WChar::ucharLen(char const*, unsigned char) - 0x10000298 WChar::utfLen(char const*, unsigned char) - 0x1000030c WChar::affectAscii(char) - 0x1000034c WChar::affectUtf8(char const*) - 0x10000514 WChar::affectUtf16be(char const*) - 0x10000684 WChar::affectUtf16le(char const*) - 0x100007f4 WChar::affectUtf32be(char const*) - 0x10000886 WChar::affectUtf32le(char const*) - 0x10000918 WChar::toAscii() - 0x10000978 WChar::toUtf8() - 0x10000a62 WChar::toUtf32be() - 0x10000a98 WChar::toUtf32le() - 0x10001894 CMem::memcpy(unsigned char*, unsigned char const*, unsigned int) - 0x1000192b CMem::memset(unsigned char*, unsigned char, int) - 0x10001962 CMem::memsetw(unsigned short*, unsigned short, int) - 0x1000199d CMem::strlen(char const*) - 0x100019cc atomic_exchange(unsigned int*, unsigned int) - 0x100019e4 Mutex::Mutex(unsigned int) - 0x100019f2 Mutex::Mutex(unsigned int) - 0x10001a00 Mutex::lock() - 0x10001a32 Mutex::waitLock() - 0x10001a7a Mutex::unlock() - 0x10001a88 Mutex::locked() - 0x10001a98 Heap::Heap() - 0x10001ae2 Heap::Heap() - 0x10001b2c Heap::~Heap() - 0x10001b32 Heap::~Heap() - 0x10001b38 Heap::create(unsigned int, unsigned int, unsigned int) - 0x10001c5e Heap::expand(unsigned int) - 0x10001d86 Heap::contract() - 0x10001ea4 Heap::alloc(unsigned int, bool) - 0x10002060 Heap::free(void*) - 0x100021fc Heap::insertIntoIndex(heap_header_t*) - 0x10002324 Heap::findIndexEntry(heap_header_t*) - 0x10002368 Heap::removeFromIndex(unsigned int) - 0x100023b6 Heap::removeFromIndex(heap_header_t*) - 0x100023ec String::hex(unsigned int) - 0x10002500 String::number(int) - 0x100026f0 String::unserialize(unsigned int) - 0x100027ae String::serialize() const - 0x10002824 String::String(char const*, unsigned char) - 0x10002874 String::String(char const*, unsigned char) - 0x100028c4 String::affect(char const*, unsigned char) - 0x100029e8 String::compare(char const*, unsigned char) const - 0x10002abe String::append(char const*, unsigned char) - 0x10002c32 String::concat(String const&) const - 0x10002c88 String::concat(char const*, unsigned char) const - 0x10002cec String::concat(WChar) const - 0x10002d42 String::toInt() const - 0x10002e44 String::toInt16() const - 0x10002f44 String::split(WChar) const - 0x1000304a String::substr(int, int) - 0x10003188 TextFile::write(String, bool) - 0x100031f6 TextFile::readLine(char) - 0x10003350 ByteArray::ByteArray(char const*) - 0x1000339c ByteArray::ByteArray(char const*) - 0x100033e8 ByteArray::affect(String const&, unsigned char) - 0x100035ea ByteArray::resize(unsigned int) - 0x100036d0 ByteArray::toString(unsigned char) - 0x10003770 Rand::rand() - 0x1000380d Rand::max() - 0x1000381c OStream::OStream() - 0x10003858 OStream::OStream() - 0x10003894 OStream::OStream(OStream const&) - 0x100038d0 OStream::OStream(OStream const&) - 0x1000390c OStream::put(String const&) - 0x100039a2 OStream::flush() - 0x10003b4a OStream::operator<<(ostream_modifiers_e) - 0x10003bf4 IStream::IStream() - 0x10003c36 IStream::IStream() - 0x10003c78 IStream::IStream(IStream const&) - 0x10003cb4 IStream::IStream(IStream const&) - 0x10003cf0 IStream::~IStream() - 0x10003d34 IStream::~IStream() - 0x10003d78 IStream::~IStream() - 0x10003dbc IStream::populate() - 0x10003e76 IStream::getChar() - 0x10003f6e IStream::get(WChar) - 0x10004164 __cxa_pure_virtual - 0x10004169 __cxa_atexit - 0x10004173 memmove - 0x10004197 __udivdi3 - 0x100041dd __umoddi3 - 0x1000422c ShellApp::ShellApp(String, String) - 0x100043dc ShellApp::ShellApp(String, String) - 0x1000458c ShellApp::~ShellApp() - 0x10004626 ShellApp::~ShellApp() - 0x100046c0 ShellApp::~ShellApp() - 0x1000475a ShellApp::init() - 0x100058fa ShellApp::getFlag(String) - 0x1000596e ShellApp::addFlag(WChar, String, String, int, String) - 0x10005a7c ShellApp::sFlag(String) - 0x10005b22 ShellApp::iFlag(String) - 0x10005b82 ShellApp::bFlag(String) - 0x10005be4 syscall(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) - 0x10005c0f threadFinishedSyscall(unsigned int) - 0x10005c19 breakPoint() - 0x10005c1f putch(char) - 0x10005c67 sleep(unsigned int) - 0x10005ca2 write_hex(unsigned int) - 0x10005ce0 RessourceCaller::RessourceCaller(unsigned int, unsigned int) - 0x10005d50 RessourceCaller::RessourceCaller(unsigned int, unsigned int) - 0x10005dc0 RessourceCaller::sCall(unsigned int, unsigned char, unsigned int, unsigned int, unsigned int, unsigned int) - 0x10005e06 RessourceCaller::doCall(unsigned char, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) - 0x10005e68 start - 0x10005f49 Mem::alloc(unsigned int) - 0x10005f6d Mem::free(void*) - 0x10005f89 Mem::mkXchgSpace(unsigned int) - .text 0x10005f9c 0x744 PaperWork.o - 0x10005f9c PaperWork::run() - -.text._ZN5WChareqEj - 0x100066e0 0x10 - .text._ZN5WChareqEj - 0x100066e0 0x10 ../../Library/Melon.o - 0x100066e0 WChar::operator==(unsigned int) - -.text._ZNK5WCharcvjEv - 0x100066f0 0xa - .text._ZNK5WCharcvjEv - 0x100066f0 0xa ../../Library/Melon.o - 0x100066f0 WChar::operator unsigned int() const - -.text._ZN6Thread3getEv - 0x100066fa 0x5a - .text._ZN6Thread3getEv - 0x100066fa 0x5a ../../Library/Melon.o - 0x100066fa Thread::get() - -.text._ZN6ThreadC1Ej - 0x10006754 0x22 - .text._ZN6ThreadC1Ej - 0x10006754 0x22 ../../Library/Melon.o - 0x10006754 Thread::Thread(unsigned int) - -.text._ZN6Thread5sleepEj - 0x10006776 0x42 - .text._ZN6Thread5sleepEj - 0x10006776 0x42 ../../Library/Melon.o - 0x10006776 Thread::sleep(unsigned int) - -.text._ZN7Process3getEv - 0x100067b8 0x5a - .text._ZN7Process3getEv - 0x100067b8 0x5a ../../Library/Melon.o - 0x100067b8 Process::get() - -.text._ZN7ProcessC1Ej - 0x10006812 0x22 - .text._ZN7ProcessC1Ej - 0x10006812 0x22 ../../Library/Melon.o - 0x10006812 Process::Process(unsigned int) - -.text._ZN7Process10allocPagesEjj - 0x10006834 0x41 - .text._ZN7Process10allocPagesEjj - 0x10006834 0x41 ../../Library/Melon.o - 0x10006834 Process::allocPages(unsigned int, unsigned int) - -.text._ZN7Process9freePagesEjj - 0x10006876 0x41 - .text._ZN7Process9freePagesEjj - 0x10006876 0x41 ../../Library/Melon.o - 0x10006876 Process::freePages(unsigned int, unsigned int) - -.text._ZnwjPv 0x100068b7 0x8 - .text._ZnwjPv 0x100068b7 0x8 ../../Library/Melon.o - 0x100068b7 operator new(unsigned int, void*) - -.text._Znaj 0x100068bf 0x13 - .text._Znaj 0x100068bf 0x13 ../../Library/Melon.o - 0x100068bf operator new[](unsigned int) - -.text._ZdlPv 0x100068d2 0x13 - .text._ZdlPv 0x100068d2 0x13 ../../Library/Melon.o - 0x100068d2 operator delete(void*) - -.text._ZdaPv 0x100068e5 0x13 - .text._ZdaPv 0x100068e5 0x13 ../../Library/Melon.o - 0x100068e5 operator delete[](void*) - -.text._ZN5WChar6affectEPKch - 0x100068f8 0xb0 - .text._ZN5WChar6affectEPKch - 0x100068f8 0xb0 ../../Library/Melon.o - 0x100068f8 WChar::affect(char const*, unsigned char) - -.text._ZN5WCharaSEj - 0x100069a8 0x10 - .text._ZN5WCharaSEj - 0x100069a8 0x10 ../../Library/Melon.o - 0x100069a8 WChar::operator=(unsigned int) - -.text._ZN6StringC1Ev - 0x100069b8 0x1c - .text._ZN6StringC1Ev - 0x100069b8 0x1c ../../Library/Melon.o - 0x100069b8 String::String() - -.text._ZN6StringC1ERKS_ - 0x100069d4 0x23 - .text._ZN6StringC1ERKS_ - 0x100069d4 0x23 ../../Library/Melon.o - 0x100069d4 String::String(String const&) - -.text._ZN6StringpLERKS_ - 0x100069f8 0x1d - .text._ZN6StringpLERKS_ - 0x100069f8 0x1d ../../Library/Melon.o - 0x100069f8 String::operator+=(String const&) - -.text._ZN6StringpLE5WChar - 0x10006a16 0x1d - .text._ZN6StringpLE5WChar - 0x10006a16 0x1d ../../Library/Melon.o - 0x10006a16 String::operator+=(WChar) - -.text._ZN6StringD1Ev - 0x10006a34 0x30 - .text._ZN6StringD1Ev - 0x10006a34 0x30 ../../Library/Melon.o - 0x10006a34 String::~String() - -.text._ZN6StringD0Ev - 0x10006a64 0x30 - .text._ZN6StringD0Ev - 0x10006a64 0x30 ../../Library/Melon.o - 0x10006a64 String::~String() - -.text._ZN11BasicStringI5WCharEC2Ev - 0x10006a94 0x22 - .text._ZN11BasicStringI5WCharEC2Ev - 0x10006a94 0x22 ../../Library/Melon.o - 0x10006a94 BasicString::BasicString() - -.text._ZN11BasicStringI5WCharED2Ev - 0x10006ab6 0x3d - .text._ZN11BasicStringI5WCharED2Ev - 0x10006ab6 0x3d ../../Library/Melon.o - 0x10006ab6 BasicString::~BasicString() - -.text._ZN11BasicStringI5WCharED1Ev - 0x10006af4 0x3d - .text._ZN11BasicStringI5WCharED1Ev - 0x10006af4 0x3d ../../Library/Melon.o - 0x10006af4 BasicString::~BasicString() - -.text._ZN11BasicStringI5WCharED0Ev - 0x10006b32 0x3d - .text._ZN11BasicStringI5WCharED0Ev - 0x10006b32 0x3d ../../Library/Melon.o - 0x10006b32 BasicString::~BasicString() - -.text._ZN11BasicStringI5WCharEC2ERKS1_ - 0x10006b70 0x2d - .text._ZN11BasicStringI5WCharEC2ERKS1_ - 0x10006b70 0x2d ../../Library/Melon.o - 0x10006b70 BasicString::BasicString(BasicString const&) - -.text._ZN11BasicStringI5WCharE6affectERKS1_ - 0x10006b9e 0xb8 - .text._ZN11BasicStringI5WCharE6affectERKS1_ - 0x10006b9e 0xb8 ../../Library/Melon.o - 0x10006b9e BasicString::affect(BasicString const&) - -.text._ZN11BasicStringI5WCharE6appendERKS1_ - 0x10006c56 0x105 - .text._ZN11BasicStringI5WCharE6appendERKS1_ - 0x10006c56 0x105 ../../Library/Melon.o - 0x10006c56 BasicString::append(BasicString const&) - -.text._ZN11BasicStringI5WCharE6appendES0_ - 0x10006d5c 0xd2 - .text._ZN11BasicStringI5WCharE6appendES0_ - 0x10006d5c 0xd2 ../../Library/Melon.o - 0x10006d5c BasicString::append(WChar) - -.text._ZNK11BasicStringI5WCharEixEi - 0x10006e2e 0x13 - .text._ZNK11BasicStringI5WCharEixEi - 0x10006e2e 0x13 ../../Library/Melon.o - 0x10006e2e BasicString::operator[](int) const - -.text._ZN6VectorI6StringEC1Ev - 0x10006e42 0x18 - .text._ZN6VectorI6StringEC1Ev - 0x10006e42 0x18 ../../Library/Melon.o - 0x10006e42 Vector::Vector() - -.text._ZN6VectorI6StringE4pushERKS0_ - 0x10006e5a 0xb8 - .text._ZN6VectorI6StringE4pushERKS0_ - 0x10006e5a 0xb8 ../../Library/Melon.o - 0x10006e5a Vector::push(String const&) - -.text._ZNK6VectorI6StringE4backEv - 0x10006f12 0x1f - .text._ZNK6VectorI6StringE4backEv - 0x10006f12 0x1f ../../Library/Melon.o - 0x10006f12 Vector::back() const - -.text._ZN15RessourceCaller5validEv - 0x10006f32 0x10 - .text._ZN15RessourceCaller5validEv - 0x10006f32 0x10 ../../Library/Melon.o - 0x10006f32 RessourceCaller::valid() - -.text._ZN9ByteArrayC1Ev - 0x10006f42 0x1c - .text._ZN9ByteArrayC1Ev - 0x10006f42 0x1c ../../Library/Melon.o - 0x10006f42 ByteArray::ByteArray() - -.text._ZN9ByteArrayC1ERK6Stringh - 0x10006f5e 0x3c - .text._ZN9ByteArrayC1ERK6Stringh - 0x10006f5e 0x3c ../../Library/Melon.o - 0x10006f5e ByteArray::ByteArray(String const&, unsigned char) - -.text._ZN9ByteArraycvPhEv - 0x10006f9a 0xb - .text._ZN9ByteArraycvPhEv - 0x10006f9a 0xb ../../Library/Melon.o - 0x10006f9a ByteArray::operator unsigned char*() - -.text._ZN4File4readEjPh - 0x10006fa6 0x41 - .text._ZN4File4readEjPh - 0x10006fa6 0x41 ../../Library/Melon.o - 0x10006fa6 File::read(unsigned int, unsigned char*) - -.text._ZN4File5writeEjPh - 0x10006fe8 0x46 - .text._ZN4File5writeEjPh - 0x10006fe8 0x46 ../../Library/Melon.o - 0x10006fe8 File::write(unsigned int, unsigned char*) - -.text._ZN4File4readER9ByteArray - 0x1000702e 0x89 - .text._ZN4File4readER9ByteArray - 0x1000702e 0x89 ../../Library/Melon.o - 0x1000702e File::read(ByteArray&) - -.text._ZN4File5writeER9ByteArray - 0x100070b8 0x51 - .text._ZN4File5writeER9ByteArray - 0x100070b8 0x51 ../../Library/Melon.o - 0x100070b8 File::write(ByteArray&) - -.text._ZN4File4seekEyh - 0x1000710a 0x77 - .text._ZN4File4seekEyh - 0x1000710a 0x77 ../../Library/Melon.o - 0x1000710a File::seek(unsigned long long, unsigned char) - -.text._ZN9ByteArrayD1Ev - 0x10007182 0x30 - .text._ZN9ByteArrayD1Ev - 0x10007182 0x30 ../../Library/Melon.o - 0x10007182 ByteArray::~ByteArray() - -.text._ZN9ByteArrayD0Ev - 0x100071b2 0x30 - .text._ZN9ByteArrayD0Ev - 0x100071b2 0x30 ../../Library/Melon.o - 0x100071b2 ByteArray::~ByteArray() - -.text._ZN11BasicStringIhEC2Ev - 0x100071e2 0x22 - .text._ZN11BasicStringIhEC2Ev - 0x100071e2 0x22 ../../Library/Melon.o - 0x100071e2 BasicString::BasicString() - -.text._ZN11BasicStringIhED2Ev - 0x10007204 0x3d - .text._ZN11BasicStringIhED2Ev - 0x10007204 0x3d ../../Library/Melon.o - 0x10007204 BasicString::~BasicString() - -.text._ZN11BasicStringIhED1Ev - 0x10007242 0x3d - .text._ZN11BasicStringIhED1Ev - 0x10007242 0x3d ../../Library/Melon.o - 0x10007242 BasicString::~BasicString() - -.text._ZN11BasicStringIhED0Ev - 0x10007280 0x3d - .text._ZN11BasicStringIhED0Ev - 0x10007280 0x3d ../../Library/Melon.o - 0x10007280 BasicString::~BasicString() - -.text._ZNK11BasicStringIhE4sizeEv - 0x100072be 0xb - .text._ZNK11BasicStringIhE4sizeEv - 0x100072be 0xb ../../Library/Melon.o - 0x100072be BasicString::size() const - -.text._ZNK11BasicStringIhEixEi - 0x100072ca 0x11 - .text._ZNK11BasicStringIhEixEi - 0x100072ca 0x11 ../../Library/Melon.o - 0x100072ca BasicString::operator[](int) const - -.text._ZN11BasicStringIhE5clearEv - 0x100072dc 0x34 - .text._ZN11BasicStringIhE5clearEv - 0x100072dc 0x34 ../../Library/Melon.o - 0x100072dc BasicString::clear() - -.text._ZN11BasicStringIhEpLEh - 0x10007310 0x21 - .text._ZN11BasicStringIhEpLEh - 0x10007310 0x21 ../../Library/Melon.o - 0x10007310 BasicString::operator+=(unsigned char) - -.text._ZN11BasicStringIhE6appendEh - 0x10007332 0x9c - .text._ZN11BasicStringIhE6appendEh - 0x10007332 0x9c ../../Library/Melon.o - 0x10007332 BasicString::append(unsigned char) - -.text._ZN5WChar6encodeEh - 0x100073ce 0x7a - .text._ZN5WChar6encodeEh - 0x100073ce 0x7a ../../Library/Melon.o - 0x100073ce WChar::encode(unsigned char) - -.text._ZNK11BasicStringI5WCharE4sizeEv - 0x10007448 0xb - .text._ZNK11BasicStringI5WCharE4sizeEv - 0x10007448 0xb ../../Library/Melon.o - 0x10007448 BasicString::size() const - -.text._Znwj 0x10007453 0x13 - .text._Znwj 0x10007453 0x13 ../../Library/Melon.o - 0x10007453 operator new(unsigned int) - -.text._ZN6StringC1E5WCharj - 0x10007466 0x2a - .text._ZN6StringC1E5WCharj - 0x10007466 0x2a ../../Library/Melon.o - 0x10007466 String::String(WChar, unsigned int) - -.text._ZN7OStreamD1Ev - 0x10007490 0x30 - .text._ZN7OStreamD1Ev - 0x10007490 0x30 ../../Library/Melon.o - 0x10007490 OStream::~OStream() - -.text._ZN7OStreamD0Ev - 0x100074c0 0x30 - .text._ZN7OStreamD0Ev - 0x100074c0 0x30 ../../Library/Melon.o - 0x100074c0 OStream::~OStream() - -.text._ZN11BasicStringI5WCharEC2ES0_j - 0x100074f0 0x34 - .text._ZN11BasicStringI5WCharEC2ES0_j - 0x100074f0 0x34 ../../Library/Melon.o - 0x100074f0 BasicString::BasicString(WChar, unsigned int) - -.text._ZN10SimpleListI6StringEC1ERKS0_PS1_ - 0x10007524 0x23 - .text._ZN10SimpleListI6StringEC1ERKS0_PS1_ - 0x10007524 0x23 ../../Library/Melon.o - 0x10007524 SimpleList::SimpleList(String const&, SimpleList*) - -.text._ZN10SimpleListI6StringE8addAtEndERKS0_ - 0x10007548 0x94 - .text._ZN10SimpleListI6StringE8addAtEndERKS0_ - 0x10007548 0x94 ../../Library/Melon.o - 0x10007548 SimpleList::addAtEnd(String const&) - -.text._ZN10SimpleListI6StringE4nextEv - 0x100075dc 0xb - .text._ZN10SimpleListI6StringE4nextEv - 0x100075dc 0xb ../../Library/Melon.o - 0x100075dc SimpleList::next() - -.text._ZN10SimpleListI6StringE1vEv - 0x100075e8 0x8 - .text._ZN10SimpleListI6StringE1vEv - 0x100075e8 0x8 ../../Library/Melon.o - 0x100075e8 SimpleList::v() - -.text._ZN10SimpleListI6StringED1Ev - 0x100075f0 0x3c - .text._ZN10SimpleListI6StringED1Ev - 0x100075f0 0x3c ../../Library/Melon.o - 0x100075f0 SimpleList::~SimpleList() - -.text._ZN11BasicStringI5WCharE6affectES0_j - 0x1000762c 0xb8 - .text._ZN11BasicStringI5WCharE6affectES0_j - 0x1000762c 0xb8 ../../Library/Melon.o - 0x1000762c BasicString::affect(WChar, unsigned int) - -.text._ZNK11BasicStringI5WCharE5emptyEv - 0x100076e4 0x10 - .text._ZNK11BasicStringI5WCharE5emptyEv - 0x100076e4 0x10 ../../Library/Melon.o - 0x100076e4 BasicString::empty() const - -.text._ZN10SimpleListI6StringE7delThisEv - 0x100076f4 0x1f - .text._ZN10SimpleListI6StringE7delThisEv - 0x100076f4 0x1f ../../Library/Melon.o - 0x100076f4 SimpleList::delThis() - -.text._Z5doDivyjPj - 0x10007713 0x76 - .text._Z5doDivyjPj - 0x10007713 0x76 ../../Library/Melon.o - 0x10007713 doDiv(unsigned long long, unsigned int, unsigned int*) - -.text._ZN6StringaSERKS_ - 0x1000778a 0x1a - .text._ZN6StringaSERKS_ - 0x1000778a 0x1a ../../Library/Melon.o - 0x1000778a String::operator=(String const&) - -.text._ZNK6StringeqEPKc - 0x100077a4 0x22 - .text._ZNK6StringeqEPKc - 0x100077a4 0x22 ../../Library/Melon.o - 0x100077a4 String::operator==(char const*) const - -.text._ZN6StringneEPKc - 0x100077c6 0x25 - .text._ZN6StringneEPKc - 0x100077c6 0x25 ../../Library/Melon.o - 0x100077c6 String::operator!=(char const*) - -.text._ZNK6StringeqERKS_ - 0x100077ec 0x1a - .text._ZNK6StringeqERKS_ - 0x100077ec 0x1a ../../Library/Melon.o - 0x100077ec String::operator==(String const&) const - -.text._ZN6StringpLEPKc - 0x10007806 0x22 - .text._ZN6StringpLEPKc - 0x10007806 0x22 ../../Library/Melon.o - 0x10007806 String::operator+=(char const*) - -.text._ZNK6StringplERKS_ - 0x10007828 0x30 - .text._ZNK6StringplERKS_ - 0x10007828 0x30 ../../Library/Melon.o - 0x10007828 String::operator+(String const&) const - -.text._ZNK6StringplEPKc - 0x10007858 0x38 - .text._ZNK6StringplEPKc - 0x10007858 0x38 ../../Library/Melon.o - 0x10007858 String::operator+(char const*) const - -.text._ZN7OStreamD2Ev - 0x10007890 0x30 - .text._ZN7OStreamD2Ev - 0x10007890 0x30 ../../Library/Melon.o - 0x10007890 OStream::~OStream() - -.text._ZN7OStreamlsERK6String - 0x100078c0 0x59 - .text._ZN7OStreamlsERK6String - 0x100078c0 0x59 ../../Library/Melon.o - 0x100078c0 OStream::operator<<(String const&) - -.text._ZN7OStreamlsEi - 0x1000791a 0x3d - .text._ZN7OStreamlsEi - 0x1000791a 0x3d ../../Library/Melon.o - 0x1000791a OStream::operator<<(int) - -.text._ZN15VirtualTerminalD1Ev - 0x10007958 0x50 - .text._ZN15VirtualTerminalD1Ev - 0x10007958 0x50 ../../Library/Melon.o - 0x10007958 non-virtual thunk to VirtualTerminal::~VirtualTerminal() - 0x10007960 VirtualTerminal::~VirtualTerminal() - -.text._ZN15VirtualTerminalD0Ev - 0x100079a8 0x50 - .text._ZN15VirtualTerminalD0Ev - 0x100079a8 0x50 ../../Library/Melon.o - 0x100079a8 non-virtual thunk to VirtualTerminal::~VirtualTerminal() - 0x100079b0 VirtualTerminal::~VirtualTerminal() - -.text._ZN15VirtualTerminal5getInEv - 0x100079f8 0x5e - .text._ZN15VirtualTerminal5getInEv - 0x100079f8 0x5e ../../Library/Melon.o - 0x100079f8 VirtualTerminal::getIn() - -.text._ZN15VirtualTerminal6getOutEv - 0x10007a56 0x5e - .text._ZN15VirtualTerminal6getOutEv - 0x10007a56 0x5e ../../Library/Melon.o - 0x10007a56 VirtualTerminal::getOut() - -.text._ZN15VirtualTerminalC1Ej - 0x10007ab4 0x58 - .text._ZN15VirtualTerminalC1Ej - 0x10007ab4 0x58 ../../Library/Melon.o - 0x10007ab4 VirtualTerminal::VirtualTerminal(unsigned int) - -.text._ZN15VirtualTerminal5writeERK6String - 0x10007b0c 0x45 - .text._ZN15VirtualTerminal5writeERK6String - 0x10007b0c 0x45 ../../Library/Melon.o - 0x10007b0c VirtualTerminal::write(String const&) - -.text._ZN15VirtualTerminal4readEv - 0x10007b52 0x173 - .text._ZN15VirtualTerminal4readEv - 0x10007b52 0x173 ../../Library/Melon.o - 0x10007b52 non-virtual thunk to VirtualTerminal::read() - 0x10007b5a VirtualTerminal::read() - -.text._ZN7Process4argcEv - 0x10007cc6 0x43 - .text._ZN7Process4argcEv - 0x10007cc6 0x43 ../../Library/Melon.o - 0x10007cc6 Process::argc() - -.text._ZN7Process4argvEj - 0x10007d0a 0x66 - .text._ZN7Process4argvEj - 0x10007d0a 0x66 ../../Library/Melon.o - 0x10007d0a Process::argv(unsigned int) - -.text._ZN11ApplicationC2Ev - 0x10007d70 0x22 - .text._ZN11ApplicationC2Ev - 0x10007d70 0x22 ../../Library/Melon.o - 0x10007d70 Application::Application() - -.text._ZN11ApplicationD2Ev - 0x10007d92 0x25 - .text._ZN11ApplicationD2Ev - 0x10007d92 0x25 ../../Library/Melon.o - 0x10007d92 Application::~Application() - -.text._ZN11ApplicationD1Ev - 0x10007db8 0x25 - .text._ZN11ApplicationD1Ev - 0x10007db8 0x25 ../../Library/Melon.o - 0x10007db8 Application::~Application() - -.text._ZN11ApplicationD0Ev - 0x10007dde 0x25 - .text._ZN11ApplicationD0Ev - 0x10007dde 0x25 ../../Library/Melon.o - 0x10007dde Application::~Application() - -.text._ZN11Application4initEv - 0x10007e04 0x5 - .text._ZN11Application4initEv - 0x10007e04 0x5 ../../Library/Melon.o - 0x10007e04 Application::init() - -.text._ZN11Application8doEventsEv - 0x10007e0a 0x5 - .text._ZN11Application8doEventsEv - 0x10007e0a 0x5 ../../Library/Melon.o - 0x10007e0a Application::doEvents() - -.text._ZN11Application4exitEj - 0x10007e10 0x35 - .text._ZN11Application4exitEj - 0x10007e10 0x35 ../../Library/Melon.o - 0x10007e10 Application::exit(unsigned int) - -.text._ZN6flag_tC1Ev - 0x10007e46 0x3d - .text._ZN6flag_tC1Ev - 0x10007e46 0x3d ../../Library/Melon.o - 0x10007e46 flag_t::flag_t() - -.text._ZN6flag_tD1Ev - 0x10007e84 0x32 - .text._ZN6flag_tD1Ev - 0x10007e84 0x32 ../../Library/Melon.o - 0x10007e84 flag_t::~flag_t() - -.text._ZNK11BasicStringI5WCharE7compareERKS1_ - 0x10007eb6 0x84 - .text._ZNK11BasicStringI5WCharE7compareERKS1_ - 0x10007eb6 0x84 ../../Library/Melon.o - 0x10007eb6 BasicString::compare(BasicString const&) const - -.text._ZNK11BasicStringI5WCharE8containsERKS0_ - 0x10007f3a 0x5a - .text._ZNK11BasicStringI5WCharE8containsERKS0_ - 0x10007f3a 0x5a ../../Library/Melon.o - 0x10007f3a BasicString::contains(WChar const&) const - -.text._ZN6VectorI6StringED1Ev - 0x10007f94 0x7b - .text._ZN6VectorI6StringED1Ev - 0x10007f94 0x7b ../../Library/Melon.o - 0x10007f94 Vector::~Vector() - -.text._ZN6VectorI6flag_tEC1Ev - 0x10008010 0x18 - .text._ZN6VectorI6flag_tEC1Ev - 0x10008010 0x18 ../../Library/Melon.o - 0x10008010 Vector::Vector() - -.text._ZN6VectorI6flag_tED1Ev - 0x10008028 0x5b - .text._ZN6VectorI6flag_tED1Ev - 0x10008028 0x5b ../../Library/Melon.o - 0x10008028 Vector::~Vector() - -.text._ZNK6VectorI6flag_tE4sizeEv - 0x10008084 0xb - .text._ZNK6VectorI6flag_tE4sizeEv - 0x10008084 0xb ../../Library/Melon.o - 0x10008084 Vector::size() const - -.text._ZNK6VectorI6flag_tEixEj - 0x10008090 0x13 - .text._ZNK6VectorI6flag_tEixEj - 0x10008090 0x13 ../../Library/Melon.o - 0x10008090 Vector::operator[](unsigned int) const - -.text._ZN6flag_tC1ERKS_ - 0x100080a4 0x7f - .text._ZN6flag_tC1ERKS_ - 0x100080a4 0x7f ../../Library/Melon.o - 0x100080a4 flag_t::flag_t(flag_t const&) - -.text._ZN6VectorI6flag_tE4pushERKS0_ - 0x10008124 0xa4 - .text._ZN6VectorI6flag_tE4pushERKS0_ - 0x10008124 0xa4 ../../Library/Melon.o - 0x10008124 Vector::push(flag_t const&) - -.iplt 0x100081c8 0x0 - .iplt 0x00000000 0x0 ../../Library/Melon.o - -.text._ZNK15RessourceCaller5resIdEv - 0x100081c8 0xa - .text._ZNK15RessourceCaller5resIdEv - 0x100081c8 0xa PaperWork.o - 0x100081c8 RessourceCaller::resId() const - -.text._ZN6StringaSEPKc - 0x100081d2 0x22 - .text._ZN6StringaSEPKc - 0x100081d2 0x22 PaperWork.o - 0x100081d2 String::operator=(char const*) - -.text._ZN15VirtualTerminal8readLineEb - 0x100081f4 0x89 - .text._ZN15VirtualTerminal8readLineEb - 0x100081f4 0x89 PaperWork.o - 0x100081f4 VirtualTerminal::readLine(bool) - -.text._ZN7Process3runERK6String - 0x1000827d 0x53 - .text._ZN7Process3runERK6String - 0x1000827d 0x53 PaperWork.o - 0x1000827d Process::run(String const&) - -.text._ZN7Process5startEv - 0x100082d0 0x43 - .text._ZN7Process5startEv - 0x100082d0 0x43 PaperWork.o - 0x100082d0 Process::start() - -.text._ZN7Process4waitEv - 0x10008314 0x43 - .text._ZN7Process4waitEv - 0x10008314 0x43 PaperWork.o - 0x10008314 Process::wait() - -.text._ZN7Process7pushArgERK6String - 0x10008358 0x42 - .text._ZN7Process7pushArgERK6String - 0x10008358 0x42 PaperWork.o - 0x10008358 Process::pushArg(String const&) - -.text._ZN7Process7setInVTERK15VirtualTerminal - 0x1000839a 0x4d - .text._ZN7Process7setInVTERK15VirtualTerminal - 0x1000839a 0x4d PaperWork.o - 0x1000839a Process::setInVT(VirtualTerminal const&) - -.text._ZN7Process8setOutVTERK15VirtualTerminal - 0x100083e8 0x4d - .text._ZN7Process8setOutVTERK15VirtualTerminal - 0x100083e8 0x4d PaperWork.o - 0x100083e8 Process::setOutVT(VirtualTerminal const&) - -.text._ZN7Process14authenticatePWE6StringS0_ - 0x10008436 0x47 - .text._ZN7Process14authenticatePWE6StringS0_ - 0x10008436 0x47 PaperWork.o - 0x10008436 Process::authenticatePW(String, String) - -.text._ZN9PaperWorkC1Ev - 0x1000847e 0x2bf - .text._ZN9PaperWorkC1Ev - 0x1000847e 0x2bf PaperWork.o - 0x1000847e PaperWork::PaperWork() - -.text._ZN9PaperWorkD1Ev - 0x1000873e 0x30 - .text._ZN9PaperWorkD1Ev - 0x1000873e 0x30 PaperWork.o - 0x1000873e PaperWork::~PaperWork() - -.text._ZN9PaperWorkD0Ev - 0x1000876e 0x30 - .text._ZN9PaperWorkD0Ev - 0x1000876e 0x30 PaperWork.o - 0x1000876e PaperWork::~PaperWork() - -.rodata 0x10009000 0x3d6 - *(.rodata) - .rodata 0x10009000 0x291 ../../Library/Melon.o - *fill* 0x10009291 0x3 00 - .rodata 0x10009294 0x142 PaperWork.o - -.rodata._ZTV6String - 0x100093d8 0x10 - .rodata._ZTV6String - 0x100093d8 0x10 ../../Library/Melon.o - 0x100093d8 vtable for String - -.rodata._ZTV11BasicStringI5WCharE - 0x100093e8 0x10 - .rodata._ZTV11BasicStringI5WCharE - 0x100093e8 0x10 ../../Library/Melon.o - 0x100093e8 vtable for BasicString - -.rodata._ZTV9ByteArray - 0x100093f8 0x10 - .rodata._ZTV9ByteArray - 0x100093f8 0x10 ../../Library/Melon.o - 0x100093f8 vtable for ByteArray - -.rodata._ZTV11BasicStringIhE - 0x10009408 0x10 - .rodata._ZTV11BasicStringIhE - 0x10009408 0x10 ../../Library/Melon.o - 0x10009408 vtable for BasicString - -.rodata._ZTV7OStream - 0x10009418 0x14 - .rodata._ZTV7OStream - 0x10009418 0x14 ../../Library/Melon.o - 0x10009418 vtable for OStream - -.rodata._ZTV7IStream - 0x10009430 0x14 - .rodata._ZTV7IStream - 0x10009430 0x14 ../../Library/Melon.o - 0x10009430 vtable for IStream - -.rodata._ZTV8ShellApp - 0x10009448 0x1c - .rodata._ZTV8ShellApp - 0x10009448 0x1c ../../Library/Melon.o - 0x10009448 vtable for ShellApp - -.rodata._ZTV11Application - 0x10009468 0x1c - .rodata._ZTV11Application - 0x10009468 0x1c ../../Library/Melon.o - 0x10009468 vtable for Application - -.rodata._ZTV15VirtualTerminal - 0x100094a0 0x2c - .rodata._ZTV15VirtualTerminal - 0x100094a0 0x2c ../../Library/Melon.o - 0x100094a0 vtable for VirtualTerminal - -.rodata._ZTV9PaperWork - 0x100094d0 0x1c - .rodata._ZTV9PaperWork - 0x100094d0 0x1c PaperWork.o - 0x100094d0 vtable for PaperWork - -.rel.dyn 0x100094ec 0x0 - .rel.iplt 0x00000000 0x0 ../../Library/Melon.o - .rel.text 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6Thread3getEv - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN7Process3getEv - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6StringC1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6StringC1ERKS_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6StringpLERKS_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6StringpLE5WChar - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6StringD1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6StringD0Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringI5WCharEC2Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringI5WCharED2Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringI5WCharED1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringI5WCharED0Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringI5WCharEC2ERKS1_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringI5WCharE6affectERKS1_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringI5WCharE6appendERKS1_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringI5WCharE6appendES0_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6VectorI6StringE4pushERKS0_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN9ByteArrayC1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN9ByteArrayC1ERK6Stringh - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN4File4readER9ByteArray - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN4File5writeER9ByteArray - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN9ByteArrayD1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN9ByteArrayD0Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringIhEC2Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringIhED2Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringIhED1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringIhED0Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringIhE5clearEv - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringIhEpLEh - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringIhE6appendEh - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6StringC1E5WCharj - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN7OStreamD1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN7OStreamD0Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringI5WCharEC2ES0_j - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN10SimpleListI6StringEC1ERKS0_PS1_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN10SimpleListI6StringE8addAtEndERKS0_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN10SimpleListI6StringED1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringI5WCharE6affectES0_j - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6StringaSERKS_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZNK6StringeqERKS_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN7OStreamD2Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN7OStreamlsERK6String - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN7OStreamlsEi - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN15VirtualTerminalD1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN15VirtualTerminalD0Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN15VirtualTerminal5getInEv - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN15VirtualTerminal6getOutEv - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN15VirtualTerminalC1Ej - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN15VirtualTerminal4readEv - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11ApplicationC2Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11ApplicationD2Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11ApplicationD1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11ApplicationD0Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11Application4exitEj - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6flag_tC1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6flag_tD1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZNK11BasicStringI5WCharE7compareERKS1_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZNK11BasicStringI5WCharE8containsERKS0_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6VectorI6flag_tED1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6flag_tC1ERKS_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6VectorI6flag_tE4pushERKS0_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.rodata._ZTV6String - 0x00000000 0x0 ../../Library/Melon.o - .rel.rodata._ZTV11BasicStringI5WCharE - 0x00000000 0x0 ../../Library/Melon.o - .rel.rodata._ZTV9ByteArray - 0x00000000 0x0 ../../Library/Melon.o - .rel.rodata._ZTV11BasicStringIhE - 0x00000000 0x0 ../../Library/Melon.o - .rel.rodata._ZTV7OStream - 0x00000000 0x0 ../../Library/Melon.o - .rel.rodata._ZTV8ShellApp - 0x00000000 0x0 ../../Library/Melon.o - .rel.rodata._ZTV11Application - 0x00000000 0x0 ../../Library/Melon.o - .rel.rodata._ZTV15VirtualTerminal - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN7Process3runERK6String - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN7Process4waitEv - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN7Process7setInVTERK15VirtualTerminal - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN7Process8setOutVTERK15VirtualTerminal - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN9PaperWorkC1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.rodata._ZTV9PaperWork - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN9PaperWorkD1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN9PaperWorkD0Ev - 0x00000000 0x0 ../../Library/Melon.o - -.data 0x1000a000 0x24 - 0x1000a000 start_ctors = . - *(.ctor*) - .ctors 0x1000a000 0x4 ../../Library/Melon.o - .ctors 0x1000a004 0x4 PaperWork.o - 0x1000a008 end_ctors = . - 0x1000a008 start_dtors = . - *(.dtor*) - 0x1000a008 end_dtors = . - *(.data) - .data 0x1000a008 0x18 ../../Library/Melon.o - 0x1000a008 Rand::m - 0x1000a00c Rand::a - 0x1000a010 Rand::b - 0x1000a018 Rand::current - .data 0x1000a020 0x4 PaperWork.o - 0x1000a020 app - -.igot.plt 0x1000a024 0x0 - .igot.plt 0x00000000 0x0 ../../Library/Melon.o - -.bss 0x1000a040 0x2ac - 0x1000a040 sbss = . - *(COMMON) - *(.bss) - .bss 0x1000a040 0x208 ../../Library/Melon.o - 0x1000a040 WChar::CP437 - 0x1000a240 __dso_handle - 0x1000a244 heap - *fill* 0x1000a248 0x18 00 - .bss 0x1000a260 0x8c PaperWork.o - 0x1000a2ec ebss = . - 0x1000a2ec end = . - 0x1000a2ec _end = . - 0x1000a2ec __end = . -LOAD PaperWork.o -OUTPUT(PaperWork elf32-i386) - -.note.GNU-stack - 0x00000000 0x0 - .note.GNU-stack - 0x00000000 0x0 ../../Library/Melon.o - .note.GNU-stack - 0x00000000 0x0 PaperWork.o - -.comment 0x00000000 0x27 - .comment 0x00000000 0x27 ../../Library/Melon.o - 0x280 (size before relaxing) - .comment 0x00000000 0x28 PaperWork.o diff --git a/Source/Kernel/VTManager/FileVT.class.cpp b/Source/Kernel/VTManager/FileVT.class.cpp index 5469fbd..24a1b63 100644 --- a/Source/Kernel/VTManager/FileVT.class.cpp +++ b/Source/Kernel/VTManager/FileVT.class.cpp @@ -39,7 +39,7 @@ keypress_t FileVT::getKeypress(bool show, bool block) { ret.hascmd = true; ret.command = KBDC_ENTER; if (m_file.eof()) { - m_buffer = "."; + m_buffer = EOF; } else { m_buffer = m_file.readLine(); } diff --git a/Source/Library/Common/FileStream.class.cpp b/Source/Library/Common/FileStream.class.cpp index 6154b2f..322e9aa 100644 --- a/Source/Library/Common/FileStream.class.cpp +++ b/Source/Library/Common/FileStream.class.cpp @@ -4,11 +4,16 @@ // INPUT FILE STREAM // ******************** -FileIStream::FileIStream(const String &filename, u8int encoding, FSNode start) { +FileIStream::FileIStream(const String &filename, u8int encoding, FSNode start) : m_start(start) { m_file = new File(filename, FM_READ, start); m_encoding = encoding; } +FileIStream::FileIStream(u8int encoding, FSNode start) : m_start(start) { + m_file = 0; + m_encoding = encoding; +} + FileIStream::~FileIStream() { if (m_file != 0) { m_file->close(); @@ -33,11 +38,7 @@ String FileIStream::read() { if (m_filenames == 0) { return ""; } else { -#ifdef THIS_IS_MELON_KERNEL - m_file = new File(m_filenames->v(), FM_READ); -#else - m_file = new File(m_filenames->v(), FM_READ, FS::cwdNode()); -#endif + m_file = new File(m_filenames->v(), FM_READ, m_start); m_filenames = m_filenames->delThis(); } } diff --git a/Source/Library/Common/FileStream.class.h b/Source/Library/Common/FileStream.class.h index d0fb971..99bf0e8 100644 --- a/Source/Library/Common/FileStream.class.h +++ b/Source/Library/Common/FileStream.class.h @@ -18,9 +18,11 @@ class FileIStream : public IStream { File *m_file; u8int m_encoding; + FSNode m_start; public: FileIStream(const String &filename, u8int encoding = UE_UTF8, FSNode start = FSNode(0)); + FileIStream(u8int encoding = UE_UTF8, FSNode start = FSNode(0)); ~FileIStream(); void appendFile(const String &filename); diff --git a/Source/Library/Makefile b/Source/Library/Makefile index 83e3689..c67daf7 100644 --- a/Source/Library/Makefile +++ b/Source/Library/Makefile @@ -25,6 +25,7 @@ Objects = Common/WChar.class.uo \ Common/StringStream.class.uo \ Common/cppsupport.wtf.uo \ Userland/App/ShellApp.proto.uo \ + Userland/App/StreamApp.proto.uo \ Userland/Syscall/Syscall.wtf.uo \ Userland/Syscall/RessourceCaller.class.uo \ Userland/Start.uo diff --git a/Source/Library/Userland/App/ShellApp.proto.cpp b/Source/Library/Userland/App/ShellApp.proto.cpp index 9528ca2..840e985 100644 --- a/Source/Library/Userland/App/ShellApp.proto.cpp +++ b/Source/Library/Userland/App/ShellApp.proto.cpp @@ -1,6 +1,6 @@ #include "ShellApp.proto.h" -ShellApp::ShellApp(String name, String desc) +ShellApp::ShellApp(const String &name, const String &desc) : Application(), invt(VirtualTerminal::getIn()), outvt(VirtualTerminal::getOut()) { appName = name, appDesc = desc; if (!invt.valid()) exit(1); diff --git a/Source/Library/Userland/App/ShellApp.proto.h b/Source/Library/Userland/App/ShellApp.proto.h index 2308fd1..bc57cd0 100644 --- a/Source/Library/Userland/App/ShellApp.proto.h +++ b/Source/Library/Userland/App/ShellApp.proto.h @@ -23,7 +23,7 @@ class ShellApp : public Application { Vector args; Vector flags; String appName, appDesc; - ShellApp(String name, String desc); + ShellApp(const String &name, const String &desc); ~ShellApp(); virtual void init(); diff --git a/Source/Library/Userland/App/StreamApp.proto.cpp b/Source/Library/Userland/App/StreamApp.proto.cpp new file mode 100644 index 0000000..97f473e --- /dev/null +++ b/Source/Library/Userland/App/StreamApp.proto.cpp @@ -0,0 +1,39 @@ +#include "StreamApp.proto.h" + +#include + +StreamApp::StreamApp(const String& name, const String& desc) + : ShellApp(name, desc) { + addFlag("o", "output", "Set the output to a file instead of the text output", FT_STR, ""); + addFlag("e", "encoding", "Set the encoding for files (input and output)", FT_STR, "utf8"); +} + +StreamApp::~StreamApp() { +} + +void StreamApp::init() { + ShellApp::init(); + + u8int encoding = UE_UTF8; + if (sFlag("encoding") == "utf8") encoding = UE_UTF8; + if (sFlag("encoding") == "utf16be") encoding = UE_UTF16_BE; + if (sFlag("encoding") == "utf16le") encoding = UE_UTF16_LE; + if (sFlag("encoding") == "utf32be") encoding = UE_UTF32_BE; + if (sFlag("encoding") == "utf32le") encoding = UE_UTF32_LE; + + if (sFlag("output") == "") { + out = &outvt; + } else { + out = new FileOStream(sFlag("output"), FM_TRUNCATE, encoding, FS::cwdNode()); + } + + if (args.size() == 0) { + in = &invt; + } else { + FileIStream *f = new FileIStream(encoding, FS::cwdNode()); + for (u32int i = 0; i < args.size(); i++) { + f->appendFile(args[i]); + } + in = f; + } +} diff --git a/Source/Library/Userland/App/StreamApp.proto.h b/Source/Library/Userland/App/StreamApp.proto.h new file mode 100644 index 0000000..462b1f3 --- /dev/null +++ b/Source/Library/Userland/App/StreamApp.proto.h @@ -0,0 +1,27 @@ +#ifndef DEF_STREAMAPP_PROTO_H +#define DEF_STREAMAPP_PROTO_H + +#include "ShellApp.proto.h" + +#include +#include + +/* + * This class implements basic utilities for apps that simply take some input, process it and output something. + * Examples : cat, grep, ... + */ + +class StreamApp : public ShellApp { + protected: + + IStream *in; + OStream *out; + + public: + StreamApp(const String& name, const String& desc); + ~StreamApp(); + + virtual void init(); +}; + +#endif -- cgit v1.2.3 From 1d301e54da75b90172d129594265f2b629f3125a Mon Sep 17 00:00:00 2001 From: Alexis211 Date: Sun, 20 Dec 2009 19:39:46 +0100 Subject: rot13, demo app for StreamApp, is working :) --- Source/Applications/Shell/Applets/rot13 | Bin 0 -> 73404 bytes Source/Applications/Shell/Applets/rot13.cpp | 30 + Source/Applications/Shell/Applets/rot13.map | 1371 ++++++++++++++++++++ Source/Applications/Shell/Makefile | 8 +- Source/Applications/Shell/Shell.class.cpp | 1 + Source/Kernel/TaskManager/Thread.class.cpp | 6 +- Source/Library/Common/FileStream.class.cpp | 11 +- Source/Library/Common/IStream.proto.cpp | 5 +- Source/Library/Common/OStream.proto.cpp | 4 +- Source/Library/Userland/App/ShellApp.proto.cpp | 5 +- Source/Library/Userland/App/StreamApp.proto.cpp | 5 +- .../Userland/Binding/VirtualTerminal.class.h | 1 + 12 files changed, 1434 insertions(+), 13 deletions(-) create mode 100755 Source/Applications/Shell/Applets/rot13 create mode 100644 Source/Applications/Shell/Applets/rot13.cpp create mode 100644 Source/Applications/Shell/Applets/rot13.map (limited to 'Source') diff --git a/Source/Applications/Shell/Applets/rot13 b/Source/Applications/Shell/Applets/rot13 new file mode 100755 index 0000000..5ec705f Binary files /dev/null and b/Source/Applications/Shell/Applets/rot13 differ diff --git a/Source/Applications/Shell/Applets/rot13.cpp b/Source/Applications/Shell/Applets/rot13.cpp new file mode 100644 index 0000000..79c2124 --- /dev/null +++ b/Source/Applications/Shell/Applets/rot13.cpp @@ -0,0 +1,30 @@ +#include + +class rot13 : public StreamApp { + public: + rot13() : StreamApp("rot13", "Cat a file, but ROT13 it") {} + int run(); +}; + +APP(rot13); + +int rot13::run() { + while (!in->eof()) { + String s = in->get(); + for (u32int i = 0; i < s.size(); i++) { + WChar &c = s[i]; + if (c >= WChar('A') and c <= WChar('Z')) { + c += 13; + if (c > WChar('Z')) c -= 26; + } + if (c >= WChar('a') and c <= WChar('z')) { + c += 13; + if (c > WChar('z')) c -= 26; + } + } + if (in->eof() && s.empty()) break; + *out << s << ENDL; + } + return 0; +} + diff --git a/Source/Applications/Shell/Applets/rot13.map b/Source/Applications/Shell/Applets/rot13.map new file mode 100644 index 0000000..10461ef --- /dev/null +++ b/Source/Applications/Shell/Applets/rot13.map @@ -0,0 +1,1371 @@ + +Discarded input sections + + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 ../../Library/Melon.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .group 0x00000000 0x8 Applets/rot13.o + .text._ZdlPv 0x00000000 0x13 Applets/rot13.o + .text._ZN5WChareqEj + 0x00000000 0x10 Applets/rot13.o + .text._ZNK5WCharcvjEv + 0x00000000 0xa Applets/rot13.o + .text._ZN6StringD1Ev + 0x00000000 0x30 Applets/rot13.o + .text._ZN6StringD0Ev + 0x00000000 0x30 Applets/rot13.o + .text._ZN7OStreamlsERK6String + 0x00000000 0x59 Applets/rot13.o + .text._ZN11Application8doEventsEv + 0x00000000 0x5 Applets/rot13.o + .text._ZN11BasicStringI5WCharED2Ev + 0x00000000 0x3d Applets/rot13.o + .text._ZN11BasicStringI5WCharED1Ev + 0x00000000 0x3d Applets/rot13.o + .text._ZN11BasicStringI5WCharED0Ev + 0x00000000 0x3d Applets/rot13.o + .text._ZNK11BasicStringI5WCharE8containsERKS0_ + 0x00000000 0x5a Applets/rot13.o + .text._ZNK11BasicStringI5WCharE4sizeEv + 0x00000000 0xb Applets/rot13.o + .text._ZNK11BasicStringI5WCharEixEi + 0x00000000 0x13 Applets/rot13.o + .text._ZNK11BasicStringI5WCharE5emptyEv + 0x00000000 0x10 Applets/rot13.o + .rodata._ZTV6String + 0x00000000 0x10 Applets/rot13.o + .rodata._ZTV11BasicStringI5WCharE + 0x00000000 0x10 Applets/rot13.o + +Memory Configuration + +Name Origin Length Attributes +*default* 0x00000000 0xffffffff + +Linker script and memory map + +LOAD ../../Library/Melon.o + 0x10000000 . = 0x10000000 + +.text 0x10000000 0x777d + *(.text) + .text 0x10000000 0x746c ../../Library/Melon.o + 0x10000000 WChar::WChar() + 0x1000000e WChar::WChar() + 0x1000001c WChar::WChar(char) + 0x1000003e WChar::WChar(char) + 0x10000060 WChar::WChar(char const*, unsigned char) + 0x100000e6 WChar::WChar(char const*, unsigned char) + 0x1000016c WChar::ucharLen(char const*, unsigned char) + 0x10000298 WChar::utfLen(char const*, unsigned char) + 0x1000030c WChar::affectAscii(char) + 0x1000034c WChar::affectUtf8(char const*) + 0x10000514 WChar::affectUtf16be(char const*) + 0x10000684 WChar::affectUtf16le(char const*) + 0x100007f4 WChar::affectUtf32be(char const*) + 0x10000886 WChar::affectUtf32le(char const*) + 0x10000918 WChar::toAscii() + 0x10000978 WChar::toUtf8() + 0x10000a62 WChar::toUtf32be() + 0x10000a98 WChar::toUtf32le() + 0x10001894 CMem::memcpy(unsigned char*, unsigned char const*, unsigned int) + 0x1000192b CMem::memset(unsigned char*, unsigned char, int) + 0x10001962 CMem::memsetw(unsigned short*, unsigned short, int) + 0x1000199d CMem::strlen(char const*) + 0x100019cc atomic_exchange(unsigned int*, unsigned int) + 0x100019e4 Mutex::Mutex(unsigned int) + 0x100019f2 Mutex::Mutex(unsigned int) + 0x10001a00 Mutex::lock() + 0x10001a32 Mutex::waitLock() + 0x10001a7a Mutex::unlock() + 0x10001a88 Mutex::locked() + 0x10001a98 Heap::Heap() + 0x10001ae2 Heap::Heap() + 0x10001b2c Heap::~Heap() + 0x10001b32 Heap::~Heap() + 0x10001b38 Heap::create(unsigned int, unsigned int, unsigned int) + 0x10001c5e Heap::expand(unsigned int) + 0x10001d86 Heap::contract() + 0x10001ea4 Heap::alloc(unsigned int, bool) + 0x10002060 Heap::free(void*) + 0x100021fc Heap::insertIntoIndex(heap_header_t*) + 0x10002324 Heap::findIndexEntry(heap_header_t*) + 0x10002368 Heap::removeFromIndex(unsigned int) + 0x100023b6 Heap::removeFromIndex(heap_header_t*) + 0x100023ec String::hex(unsigned int) + 0x10002500 String::number(int) + 0x100026f0 String::unserialize(unsigned int) + 0x100027ae String::serialize() const + 0x10002824 String::String(char const*, unsigned char) + 0x10002874 String::String(char const*, unsigned char) + 0x100028c4 String::affect(char const*, unsigned char) + 0x100029e8 String::compare(char const*, unsigned char) const + 0x10002abe String::append(char const*, unsigned char) + 0x10002c32 String::concat(String const&) const + 0x10002c88 String::concat(char const*, unsigned char) const + 0x10002cec String::concat(WChar) const + 0x10002d42 String::toInt() const + 0x10002e44 String::toInt16() const + 0x10002f44 String::split(WChar) const + 0x1000304a String::substr(int, int) + 0x10003188 TextFile::write(String, bool) + 0x100031f6 TextFile::readLine(char) + 0x10003350 ByteArray::ByteArray(char const*) + 0x1000339c ByteArray::ByteArray(char const*) + 0x100033e8 ByteArray::affect(String const&, unsigned char) + 0x100035ea ByteArray::resize(unsigned int) + 0x100036d0 ByteArray::toString(unsigned char) + 0x10003770 Rand::rand() + 0x1000380d Rand::max() + 0x1000381c OStream::OStream() + 0x10003858 OStream::OStream() + 0x10003894 OStream::OStream(OStream const&) + 0x100038d0 OStream::OStream(OStream const&) + 0x1000390c OStream::put(String const&) + 0x100039b8 OStream::flush() + 0x10003b60 OStream::operator<<(ostream_modifiers_e) + 0x10003c18 IStream::IStream() + 0x10003c5a IStream::IStream() + 0x10003c9c IStream::IStream(IStream const&) + 0x10003cd8 IStream::IStream(IStream const&) + 0x10003d14 IStream::~IStream() + 0x10003d58 IStream::~IStream() + 0x10003d9c IStream::~IStream() + 0x10003de0 IStream::populate() + 0x10003e9a IStream::getChar() + 0x10003f92 IStream::get(WChar) + 0x100041d8 FileIStream::FileIStream(String const&, unsigned char, FSNode) + 0x1000427e FileIStream::FileIStream(String const&, unsigned char, FSNode) + 0x10004324 FileIStream::FileIStream(unsigned char, FSNode) + 0x10004374 FileIStream::FileIStream(unsigned char, FSNode) + 0x100043c4 FileIStream::~FileIStream() + 0x1000441a FileIStream::~FileIStream() + 0x10004470 FileIStream::~FileIStream() + 0x100044c6 FileIStream::appendFile(String const&) + 0x10004524 FileIStream::read() + 0x100046d6 FileOStream::FileOStream(String const&, unsigned char, unsigned char, FSNode) + 0x1000476c FileOStream::FileOStream(String const&, unsigned char, unsigned char, FSNode) + 0x10004802 FileOStream::~FileOStream() + 0x10004840 FileOStream::~FileOStream() + 0x1000487e FileOStream::~FileOStream() + 0x100048bc FileOStream::write(String const&) + 0x10004904 StringIStream::StringIStream(String const&) + 0x10004954 StringIStream::StringIStream(String const&) + 0x100049a4 StringIStream::StringIStream() + 0x100049ca StringIStream::StringIStream() + 0x100049f0 StringIStream::~StringIStream() + 0x10004a4a StringIStream::~StringIStream() + 0x10004aa4 StringIStream::~StringIStream() + 0x10004afe StringIStream::read() + 0x10004b88 StringIStream::append(String const&) + 0x10004be8 __cxa_pure_virtual + 0x10004bed __cxa_atexit + 0x10004bf7 memmove + 0x10004c1b __udivdi3 + 0x10004c61 __umoddi3 + 0x10004cb0 ShellApp::ShellApp(String const&, String const&) + 0x10004e60 ShellApp::ShellApp(String const&, String const&) + 0x10005010 ShellApp::~ShellApp() + 0x100050aa ShellApp::~ShellApp() + 0x10005144 ShellApp::~ShellApp() + 0x100051de ShellApp::init() + 0x100063bc ShellApp::getFlag(String) + 0x10006430 ShellApp::addFlag(WChar, String, String, int, String) + 0x1000653e ShellApp::sFlag(String) + 0x100065e4 ShellApp::iFlag(String) + 0x10006644 ShellApp::bFlag(String) + 0x100066a4 StreamApp::StreamApp(String const&, String const&) + 0x10006906 StreamApp::StreamApp(String const&, String const&) + 0x10006b68 StreamApp::~StreamApp() + 0x10006b98 StreamApp::~StreamApp() + 0x10006bc8 StreamApp::~StreamApp() + 0x10006bf8 StreamApp::init() + 0x100070b4 syscall(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) + 0x100070df threadFinishedSyscall(unsigned int) + 0x100070e9 breakPoint() + 0x100070ef putch(char) + 0x10007137 sleep(unsigned int) + 0x10007172 write_hex(unsigned int) + 0x100071b0 RessourceCaller::RessourceCaller(unsigned int, unsigned int) + 0x10007220 RessourceCaller::RessourceCaller(unsigned int, unsigned int) + 0x10007290 RessourceCaller::sCall(unsigned int, unsigned char, unsigned int, unsigned int, unsigned int, unsigned int) + 0x100072d6 RessourceCaller::doCall(unsigned char, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) + 0x10007338 start + 0x10007419 Mem::alloc(unsigned int) + 0x1000743d Mem::free(void*) + 0x10007459 Mem::mkXchgSpace(unsigned int) + .text 0x1000746c 0x311 Applets/rot13.o + 0x1000746c rot13::run() + +.text._ZN5WChareqEj + 0x1000777e 0x10 + .text._ZN5WChareqEj + 0x1000777e 0x10 ../../Library/Melon.o + 0x1000777e WChar::operator==(unsigned int) + +.text._ZNK5WCharcvjEv + 0x1000778e 0xa + .text._ZNK5WCharcvjEv + 0x1000778e 0xa ../../Library/Melon.o + 0x1000778e WChar::operator unsigned int() const + +.text._ZN6Thread3getEv + 0x10007798 0x5a + .text._ZN6Thread3getEv + 0x10007798 0x5a ../../Library/Melon.o + 0x10007798 Thread::get() + +.text._ZN6ThreadC1Ej + 0x100077f2 0x22 + .text._ZN6ThreadC1Ej + 0x100077f2 0x22 ../../Library/Melon.o + 0x100077f2 Thread::Thread(unsigned int) + +.text._ZN6Thread5sleepEj + 0x10007814 0x42 + .text._ZN6Thread5sleepEj + 0x10007814 0x42 ../../Library/Melon.o + 0x10007814 Thread::sleep(unsigned int) + +.text._ZN7Process3getEv + 0x10007856 0x5a + .text._ZN7Process3getEv + 0x10007856 0x5a ../../Library/Melon.o + 0x10007856 Process::get() + +.text._ZN7ProcessC1Ej + 0x100078b0 0x22 + .text._ZN7ProcessC1Ej + 0x100078b0 0x22 ../../Library/Melon.o + 0x100078b0 Process::Process(unsigned int) + +.text._ZN7Process10allocPagesEjj + 0x100078d2 0x41 + .text._ZN7Process10allocPagesEjj + 0x100078d2 0x41 ../../Library/Melon.o + 0x100078d2 Process::allocPages(unsigned int, unsigned int) + +.text._ZN7Process9freePagesEjj + 0x10007914 0x41 + .text._ZN7Process9freePagesEjj + 0x10007914 0x41 ../../Library/Melon.o + 0x10007914 Process::freePages(unsigned int, unsigned int) + +.text._ZnwjPv 0x10007955 0x8 + .text._ZnwjPv 0x10007955 0x8 ../../Library/Melon.o + 0x10007955 operator new(unsigned int, void*) + +.text._Znaj 0x1000795d 0x13 + .text._Znaj 0x1000795d 0x13 ../../Library/Melon.o + 0x1000795d operator new[](unsigned int) + +.text._ZdlPv 0x10007970 0x13 + .text._ZdlPv 0x10007970 0x13 ../../Library/Melon.o + 0x10007970 operator delete(void*) + +.text._ZdaPv 0x10007983 0x13 + .text._ZdaPv 0x10007983 0x13 ../../Library/Melon.o + 0x10007983 operator delete[](void*) + +.text._ZN5WChar6affectEPKch + 0x10007996 0xb0 + .text._ZN5WChar6affectEPKch + 0x10007996 0xb0 ../../Library/Melon.o + 0x10007996 WChar::affect(char const*, unsigned char) + +.text._ZN5WCharaSEj + 0x10007a46 0x10 + .text._ZN5WCharaSEj + 0x10007a46 0x10 ../../Library/Melon.o + 0x10007a46 WChar::operator=(unsigned int) + +.text._ZN6StringC1Ev + 0x10007a56 0x1c + .text._ZN6StringC1Ev + 0x10007a56 0x1c ../../Library/Melon.o + 0x10007a56 String::String() + +.text._ZN6StringC1ERKS_ + 0x10007a72 0x23 + .text._ZN6StringC1ERKS_ + 0x10007a72 0x23 ../../Library/Melon.o + 0x10007a72 String::String(String const&) + +.text._ZN6StringpLERKS_ + 0x10007a96 0x1d + .text._ZN6StringpLERKS_ + 0x10007a96 0x1d ../../Library/Melon.o + 0x10007a96 String::operator+=(String const&) + +.text._ZN6StringpLE5WChar + 0x10007ab4 0x1d + .text._ZN6StringpLE5WChar + 0x10007ab4 0x1d ../../Library/Melon.o + 0x10007ab4 String::operator+=(WChar) + +.text._ZN6StringD1Ev + 0x10007ad2 0x30 + .text._ZN6StringD1Ev + 0x10007ad2 0x30 ../../Library/Melon.o + 0x10007ad2 String::~String() + +.text._ZN6StringD0Ev + 0x10007b02 0x30 + .text._ZN6StringD0Ev + 0x10007b02 0x30 ../../Library/Melon.o + 0x10007b02 String::~String() + +.text._ZN11BasicStringI5WCharEC2Ev + 0x10007b32 0x22 + .text._ZN11BasicStringI5WCharEC2Ev + 0x10007b32 0x22 ../../Library/Melon.o + 0x10007b32 BasicString::BasicString() + +.text._ZN11BasicStringI5WCharED2Ev + 0x10007b54 0x3d + .text._ZN11BasicStringI5WCharED2Ev + 0x10007b54 0x3d ../../Library/Melon.o + 0x10007b54 BasicString::~BasicString() + +.text._ZN11BasicStringI5WCharED1Ev + 0x10007b92 0x3d + .text._ZN11BasicStringI5WCharED1Ev + 0x10007b92 0x3d ../../Library/Melon.o + 0x10007b92 BasicString::~BasicString() + +.text._ZN11BasicStringI5WCharED0Ev + 0x10007bd0 0x3d + .text._ZN11BasicStringI5WCharED0Ev + 0x10007bd0 0x3d ../../Library/Melon.o + 0x10007bd0 BasicString::~BasicString() + +.text._ZN11BasicStringI5WCharEC2ERKS1_ + 0x10007c0e 0x2d + .text._ZN11BasicStringI5WCharEC2ERKS1_ + 0x10007c0e 0x2d ../../Library/Melon.o + 0x10007c0e BasicString::BasicString(BasicString const&) + +.text._ZN11BasicStringI5WCharE6affectERKS1_ + 0x10007c3c 0xb8 + .text._ZN11BasicStringI5WCharE6affectERKS1_ + 0x10007c3c 0xb8 ../../Library/Melon.o + 0x10007c3c BasicString::affect(BasicString const&) + +.text._ZN11BasicStringI5WCharE6appendERKS1_ + 0x10007cf4 0x105 + .text._ZN11BasicStringI5WCharE6appendERKS1_ + 0x10007cf4 0x105 ../../Library/Melon.o + 0x10007cf4 BasicString::append(BasicString const&) + +.text._ZN11BasicStringI5WCharE6appendES0_ + 0x10007dfa 0xd2 + .text._ZN11BasicStringI5WCharE6appendES0_ + 0x10007dfa 0xd2 ../../Library/Melon.o + 0x10007dfa BasicString::append(WChar) + +.text._ZNK11BasicStringI5WCharEixEi + 0x10007ecc 0x13 + .text._ZNK11BasicStringI5WCharEixEi + 0x10007ecc 0x13 ../../Library/Melon.o + 0x10007ecc BasicString::operator[](int) const + +.text._ZN6VectorI6StringEC1Ev + 0x10007ee0 0x18 + .text._ZN6VectorI6StringEC1Ev + 0x10007ee0 0x18 ../../Library/Melon.o + 0x10007ee0 Vector::Vector() + +.text._ZN6VectorI6StringE4pushERKS0_ + 0x10007ef8 0xb8 + .text._ZN6VectorI6StringE4pushERKS0_ + 0x10007ef8 0xb8 ../../Library/Melon.o + 0x10007ef8 Vector::push(String const&) + +.text._ZNK6VectorI6StringE4backEv + 0x10007fb0 0x1f + .text._ZNK6VectorI6StringE4backEv + 0x10007fb0 0x1f ../../Library/Melon.o + 0x10007fb0 Vector::back() const + +.text._ZN15RessourceCaller5validEv + 0x10007fd0 0x10 + .text._ZN15RessourceCaller5validEv + 0x10007fd0 0x10 ../../Library/Melon.o + 0x10007fd0 RessourceCaller::valid() + +.text._ZN9ByteArrayC1Ev + 0x10007fe0 0x1c + .text._ZN9ByteArrayC1Ev + 0x10007fe0 0x1c ../../Library/Melon.o + 0x10007fe0 ByteArray::ByteArray() + +.text._ZN9ByteArrayC1ERK6Stringh + 0x10007ffc 0x3c + .text._ZN9ByteArrayC1ERK6Stringh + 0x10007ffc 0x3c ../../Library/Melon.o + 0x10007ffc ByteArray::ByteArray(String const&, unsigned char) + +.text._ZN9ByteArraycvPhEv + 0x10008038 0xb + .text._ZN9ByteArraycvPhEv + 0x10008038 0xb ../../Library/Melon.o + 0x10008038 ByteArray::operator unsigned char*() + +.text._ZN4File4readEjPh + 0x10008044 0x41 + .text._ZN4File4readEjPh + 0x10008044 0x41 ../../Library/Melon.o + 0x10008044 File::read(unsigned int, unsigned char*) + +.text._ZN4File5writeEjPh + 0x10008086 0x46 + .text._ZN4File5writeEjPh + 0x10008086 0x46 ../../Library/Melon.o + 0x10008086 File::write(unsigned int, unsigned char*) + +.text._ZN4File4readER9ByteArray + 0x100080cc 0x89 + .text._ZN4File4readER9ByteArray + 0x100080cc 0x89 ../../Library/Melon.o + 0x100080cc File::read(ByteArray&) + +.text._ZN4File5writeER9ByteArray + 0x10008156 0x51 + .text._ZN4File5writeER9ByteArray + 0x10008156 0x51 ../../Library/Melon.o + 0x10008156 File::write(ByteArray&) + +.text._ZN4File4seekEyh + 0x100081a8 0x77 + .text._ZN4File4seekEyh + 0x100081a8 0x77 ../../Library/Melon.o + 0x100081a8 File::seek(unsigned long long, unsigned char) + +.text._ZN9ByteArrayD1Ev + 0x10008220 0x30 + .text._ZN9ByteArrayD1Ev + 0x10008220 0x30 ../../Library/Melon.o + 0x10008220 ByteArray::~ByteArray() + +.text._ZN9ByteArrayD0Ev + 0x10008250 0x30 + .text._ZN9ByteArrayD0Ev + 0x10008250 0x30 ../../Library/Melon.o + 0x10008250 ByteArray::~ByteArray() + +.text._ZN11BasicStringIhEC2Ev + 0x10008280 0x22 + .text._ZN11BasicStringIhEC2Ev + 0x10008280 0x22 ../../Library/Melon.o + 0x10008280 BasicString::BasicString() + +.text._ZN11BasicStringIhED2Ev + 0x100082a2 0x3d + .text._ZN11BasicStringIhED2Ev + 0x100082a2 0x3d ../../Library/Melon.o + 0x100082a2 BasicString::~BasicString() + +.text._ZN11BasicStringIhED1Ev + 0x100082e0 0x3d + .text._ZN11BasicStringIhED1Ev + 0x100082e0 0x3d ../../Library/Melon.o + 0x100082e0 BasicString::~BasicString() + +.text._ZN11BasicStringIhED0Ev + 0x1000831e 0x3d + .text._ZN11BasicStringIhED0Ev + 0x1000831e 0x3d ../../Library/Melon.o + 0x1000831e BasicString::~BasicString() + +.text._ZNK11BasicStringIhE4sizeEv + 0x1000835c 0xb + .text._ZNK11BasicStringIhE4sizeEv + 0x1000835c 0xb ../../Library/Melon.o + 0x1000835c BasicString::size() const + +.text._ZNK11BasicStringIhEixEi + 0x10008368 0x11 + .text._ZNK11BasicStringIhEixEi + 0x10008368 0x11 ../../Library/Melon.o + 0x10008368 BasicString::operator[](int) const + +.text._ZN11BasicStringIhE5clearEv + 0x1000837a 0x34 + .text._ZN11BasicStringIhE5clearEv + 0x1000837a 0x34 ../../Library/Melon.o + 0x1000837a BasicString::clear() + +.text._ZN11BasicStringIhEpLEh + 0x100083ae 0x21 + .text._ZN11BasicStringIhEpLEh + 0x100083ae 0x21 ../../Library/Melon.o + 0x100083ae BasicString::operator+=(unsigned char) + +.text._ZN11BasicStringIhE6appendEh + 0x100083d0 0x9c + .text._ZN11BasicStringIhE6appendEh + 0x100083d0 0x9c ../../Library/Melon.o + 0x100083d0 BasicString::append(unsigned char) + +.text._ZN5WChar6encodeEh + 0x1000846c 0x7a + .text._ZN5WChar6encodeEh + 0x1000846c 0x7a ../../Library/Melon.o + 0x1000846c WChar::encode(unsigned char) + +.text._ZNK11BasicStringI5WCharE4sizeEv + 0x100084e6 0xb + .text._ZNK11BasicStringI5WCharE4sizeEv + 0x100084e6 0xb ../../Library/Melon.o + 0x100084e6 BasicString::size() const + +.text._Znwj 0x100084f1 0x13 + .text._Znwj 0x100084f1 0x13 ../../Library/Melon.o + 0x100084f1 operator new(unsigned int) + +.text._ZN6StringC1E5WCharj + 0x10008504 0x2a + .text._ZN6StringC1E5WCharj + 0x10008504 0x2a ../../Library/Melon.o + 0x10008504 String::String(WChar, unsigned int) + +.text._ZN7OStreamD1Ev + 0x1000852e 0x30 + .text._ZN7OStreamD1Ev + 0x1000852e 0x30 ../../Library/Melon.o + 0x1000852e OStream::~OStream() + +.text._ZN7OStreamD0Ev + 0x1000855e 0x30 + .text._ZN7OStreamD0Ev + 0x1000855e 0x30 ../../Library/Melon.o + 0x1000855e OStream::~OStream() + +.text._ZN11BasicStringI5WCharEC2ES0_j + 0x1000858e 0x34 + .text._ZN11BasicStringI5WCharEC2ES0_j + 0x1000858e 0x34 ../../Library/Melon.o + 0x1000858e BasicString::BasicString(WChar, unsigned int) + +.text._ZNK11BasicStringI5WCharE5emptyEv + 0x100085c2 0x10 + .text._ZNK11BasicStringI5WCharE5emptyEv + 0x100085c2 0x10 ../../Library/Melon.o + 0x100085c2 BasicString::empty() const + +.text._ZN10SimpleListI6StringEC1ERKS0_PS1_ + 0x100085d2 0x23 + .text._ZN10SimpleListI6StringEC1ERKS0_PS1_ + 0x100085d2 0x23 ../../Library/Melon.o + 0x100085d2 SimpleList::SimpleList(String const&, SimpleList*) + +.text._ZN10SimpleListI6StringE8addAtEndERKS0_ + 0x100085f6 0x94 + .text._ZN10SimpleListI6StringE8addAtEndERKS0_ + 0x100085f6 0x94 ../../Library/Melon.o + 0x100085f6 SimpleList::addAtEnd(String const&) + +.text._ZN10SimpleListI6StringE4nextEv + 0x1000868a 0xb + .text._ZN10SimpleListI6StringE4nextEv + 0x1000868a 0xb ../../Library/Melon.o + 0x1000868a SimpleList::next() + +.text._ZN10SimpleListI6StringE1vEv + 0x10008696 0x8 + .text._ZN10SimpleListI6StringE1vEv + 0x10008696 0x8 ../../Library/Melon.o + 0x10008696 SimpleList::v() + +.text._ZN10SimpleListI6StringED1Ev + 0x1000869e 0x3c + .text._ZN10SimpleListI6StringED1Ev + 0x1000869e 0x3c ../../Library/Melon.o + 0x1000869e SimpleList::~SimpleList() + +.text._ZN11BasicStringI5WCharE6affectES0_j + 0x100086da 0xb8 + .text._ZN11BasicStringI5WCharE6affectES0_j + 0x100086da 0xb8 ../../Library/Melon.o + 0x100086da BasicString::affect(WChar, unsigned int) + +.text._ZN10SimpleListI6StringE7delThisEv + 0x10008792 0x1f + .text._ZN10SimpleListI6StringE7delThisEv + 0x10008792 0x1f ../../Library/Melon.o + 0x10008792 SimpleList::delThis() + +.text._ZN7OStreamD2Ev + 0x100087b2 0x30 + .text._ZN7OStreamD2Ev + 0x100087b2 0x30 ../../Library/Melon.o + 0x100087b2 OStream::~OStream() + +.text._ZNK15RessourceCaller5resIdEv + 0x100087e2 0xa + .text._ZNK15RessourceCaller5resIdEv + 0x100087e2 0xa ../../Library/Melon.o + 0x100087e2 RessourceCaller::resId() const + +.text._ZN4FileC1E6Stringh6FSNode + 0x100087ec 0x5f + .text._ZN4FileC1E6Stringh6FSNode + 0x100087ec 0x5f ../../Library/Melon.o + 0x100087ec File::File(String, unsigned char, FSNode) + +.text._ZN4File5closeEv + 0x1000884c 0x43 + .text._ZN4File5closeEv + 0x1000884c 0x43 ../../Library/Melon.o + 0x1000884c File::close() + +.text._ZN4File3eofEv + 0x10008890 0x48 + .text._ZN4File3eofEv + 0x10008890 0x48 ../../Library/Melon.o + 0x10008890 File::eof() + +.text._Z5doDivyjPj + 0x100088d8 0x76 + .text._Z5doDivyjPj + 0x100088d8 0x76 ../../Library/Melon.o + 0x100088d8 doDiv(unsigned long long, unsigned int, unsigned int*) + +.text._ZN6StringaSERKS_ + 0x1000894e 0x1a + .text._ZN6StringaSERKS_ + 0x1000894e 0x1a ../../Library/Melon.o + 0x1000894e String::operator=(String const&) + +.text._ZNK6StringeqEPKc + 0x10008968 0x22 + .text._ZNK6StringeqEPKc + 0x10008968 0x22 ../../Library/Melon.o + 0x10008968 String::operator==(char const*) const + +.text._ZN6StringneEPKc + 0x1000898a 0x25 + .text._ZN6StringneEPKc + 0x1000898a 0x25 ../../Library/Melon.o + 0x1000898a String::operator!=(char const*) + +.text._ZNK6StringeqERKS_ + 0x100089b0 0x1a + .text._ZNK6StringeqERKS_ + 0x100089b0 0x1a ../../Library/Melon.o + 0x100089b0 String::operator==(String const&) const + +.text._ZN6StringpLEPKc + 0x100089ca 0x22 + .text._ZN6StringpLEPKc + 0x100089ca 0x22 ../../Library/Melon.o + 0x100089ca String::operator+=(char const*) + +.text._ZNK6StringplERKS_ + 0x100089ec 0x30 + .text._ZNK6StringplERKS_ + 0x100089ec 0x30 ../../Library/Melon.o + 0x100089ec String::operator+(String const&) const + +.text._ZNK6StringplEPKc + 0x10008a1c 0x38 + .text._ZNK6StringplEPKc + 0x10008a1c 0x38 ../../Library/Melon.o + 0x10008a1c String::operator+(char const*) const + +.text._ZN7OStreamlsERK6String + 0x10008a54 0x59 + .text._ZN7OStreamlsERK6String + 0x10008a54 0x59 ../../Library/Melon.o + 0x10008a54 OStream::operator<<(String const&) + +.text._ZN7OStreamlsEi + 0x10008aae 0x3d + .text._ZN7OStreamlsEi + 0x10008aae 0x3d ../../Library/Melon.o + 0x10008aae OStream::operator<<(int) + +.text._ZN15VirtualTerminalD1Ev + 0x10008aec 0x50 + .text._ZN15VirtualTerminalD1Ev + 0x10008aec 0x50 ../../Library/Melon.o + 0x10008aec non-virtual thunk to VirtualTerminal::~VirtualTerminal() + 0x10008af4 VirtualTerminal::~VirtualTerminal() + +.text._ZN15VirtualTerminalD0Ev + 0x10008b3c 0x50 + .text._ZN15VirtualTerminalD0Ev + 0x10008b3c 0x50 ../../Library/Melon.o + 0x10008b3c non-virtual thunk to VirtualTerminal::~VirtualTerminal() + 0x10008b44 VirtualTerminal::~VirtualTerminal() + +.text._ZN15VirtualTerminal5getInEv + 0x10008b8c 0x5e + .text._ZN15VirtualTerminal5getInEv + 0x10008b8c 0x5e ../../Library/Melon.o + 0x10008b8c VirtualTerminal::getIn() + +.text._ZN15VirtualTerminal6getOutEv + 0x10008bea 0x5e + .text._ZN15VirtualTerminal6getOutEv + 0x10008bea 0x5e ../../Library/Melon.o + 0x10008bea VirtualTerminal::getOut() + +.text._ZN15VirtualTerminalC1Ej + 0x10008c48 0x58 + .text._ZN15VirtualTerminalC1Ej + 0x10008c48 0x58 ../../Library/Melon.o + 0x10008c48 VirtualTerminal::VirtualTerminal(unsigned int) + +.text._ZN15VirtualTerminal5writeERK6String + 0x10008ca0 0x45 + .text._ZN15VirtualTerminal5writeERK6String + 0x10008ca0 0x45 ../../Library/Melon.o + 0x10008ca0 VirtualTerminal::write(String const&) + +.text._ZN15VirtualTerminal4readEv + 0x10008ce6 0x1a2 + .text._ZN15VirtualTerminal4readEv + 0x10008ce6 0x1a2 ../../Library/Melon.o + 0x10008ce6 non-virtual thunk to VirtualTerminal::read() + 0x10008cee VirtualTerminal::read() + +.text._ZN7Process4argcEv + 0x10008e88 0x43 + .text._ZN7Process4argcEv + 0x10008e88 0x43 ../../Library/Melon.o + 0x10008e88 Process::argc() + +.text._ZN7Process4argvEj + 0x10008ecc 0x66 + .text._ZN7Process4argvEj + 0x10008ecc 0x66 ../../Library/Melon.o + 0x10008ecc Process::argv(unsigned int) + +.text._ZN11ApplicationC2Ev + 0x10008f32 0x22 + .text._ZN11ApplicationC2Ev + 0x10008f32 0x22 ../../Library/Melon.o + 0x10008f32 Application::Application() + +.text._ZN11ApplicationD2Ev + 0x10008f54 0x25 + .text._ZN11ApplicationD2Ev + 0x10008f54 0x25 ../../Library/Melon.o + 0x10008f54 Application::~Application() + +.text._ZN11ApplicationD1Ev + 0x10008f7a 0x25 + .text._ZN11ApplicationD1Ev + 0x10008f7a 0x25 ../../Library/Melon.o + 0x10008f7a Application::~Application() + +.text._ZN11ApplicationD0Ev + 0x10008fa0 0x25 + .text._ZN11ApplicationD0Ev + 0x10008fa0 0x25 ../../Library/Melon.o + 0x10008fa0 Application::~Application() + +.text._ZN11Application4initEv + 0x10008fc6 0x5 + .text._ZN11Application4initEv + 0x10008fc6 0x5 ../../Library/Melon.o + 0x10008fc6 Application::init() + +.text._ZN11Application8doEventsEv + 0x10008fcc 0x5 + .text._ZN11Application8doEventsEv + 0x10008fcc 0x5 ../../Library/Melon.o + 0x10008fcc Application::doEvents() + +.text._ZN11Application4exitEj + 0x10008fd2 0x35 + .text._ZN11Application4exitEj + 0x10008fd2 0x35 ../../Library/Melon.o + 0x10008fd2 Application::exit(unsigned int) + +.text._ZN6flag_tC1Ev + 0x10009008 0x3d + .text._ZN6flag_tC1Ev + 0x10009008 0x3d ../../Library/Melon.o + 0x10009008 flag_t::flag_t() + +.text._ZN6flag_tD1Ev + 0x10009046 0x32 + .text._ZN6flag_tD1Ev + 0x10009046 0x32 ../../Library/Melon.o + 0x10009046 flag_t::~flag_t() + +.text._ZNK11BasicStringI5WCharE7compareERKS1_ + 0x10009078 0x84 + .text._ZNK11BasicStringI5WCharE7compareERKS1_ + 0x10009078 0x84 ../../Library/Melon.o + 0x10009078 BasicString::compare(BasicString const&) const + +.text._ZNK11BasicStringI5WCharE8containsERKS0_ + 0x100090fc 0x5a + .text._ZNK11BasicStringI5WCharE8containsERKS0_ + 0x100090fc 0x5a ../../Library/Melon.o + 0x100090fc BasicString::contains(WChar const&) const + +.text._ZN6VectorI6StringED1Ev + 0x10009156 0x7b + .text._ZN6VectorI6StringED1Ev + 0x10009156 0x7b ../../Library/Melon.o + 0x10009156 Vector::~Vector() + +.text._ZN6VectorI6flag_tEC1Ev + 0x100091d2 0x18 + .text._ZN6VectorI6flag_tEC1Ev + 0x100091d2 0x18 ../../Library/Melon.o + 0x100091d2 Vector::Vector() + +.text._ZN6VectorI6flag_tED1Ev + 0x100091ea 0x5b + .text._ZN6VectorI6flag_tED1Ev + 0x100091ea 0x5b ../../Library/Melon.o + 0x100091ea Vector::~Vector() + +.text._ZN6VectorI6StringE5clearEv + 0x10009246 0xa4 + .text._ZN6VectorI6StringE5clearEv + 0x10009246 0xa4 ../../Library/Melon.o + 0x10009246 Vector::clear() + +.text._ZNK6VectorI6flag_tE4sizeEv + 0x100092ea 0xb + .text._ZNK6VectorI6flag_tE4sizeEv + 0x100092ea 0xb ../../Library/Melon.o + 0x100092ea Vector::size() const + +.text._ZNK6VectorI6flag_tEixEj + 0x100092f6 0x13 + .text._ZNK6VectorI6flag_tEixEj + 0x100092f6 0x13 ../../Library/Melon.o + 0x100092f6 Vector::operator[](unsigned int) const + +.text._ZN6flag_tC1ERKS_ + 0x1000930a 0x7f + .text._ZN6flag_tC1ERKS_ + 0x1000930a 0x7f ../../Library/Melon.o + 0x1000930a flag_t::flag_t(flag_t const&) + +.text._ZN6VectorI6flag_tE4pushERKS0_ + 0x1000938a 0xa4 + .text._ZN6VectorI6flag_tE4pushERKS0_ + 0x1000938a 0xa4 ../../Library/Melon.o + 0x1000938a Vector::push(flag_t const&) + +.text._ZNK6VectorI6StringE5emptyEv + 0x1000942e 0x10 + .text._ZNK6VectorI6StringE5emptyEv + 0x1000942e 0x10 ../../Library/Melon.o + 0x1000942e Vector::empty() const + +.text._ZN6FSNodeC1Ej + 0x1000943e 0x22 + .text._ZN6FSNodeC1Ej + 0x1000943e 0x22 ../../Library/Melon.o + 0x1000943e FSNode::FSNode(unsigned int) + +.text._ZN2FS7cwdNodeEv + 0x10009460 0x54 + .text._ZN2FS7cwdNodeEv + 0x10009460 0x54 ../../Library/Melon.o + 0x10009460 FS::cwdNode() + +.text._ZNK6VectorI6StringE4sizeEv + 0x100094b4 0xb + .text._ZNK6VectorI6StringE4sizeEv + 0x100094b4 0xb ../../Library/Melon.o + 0x100094b4 Vector::size() const + +.text._ZNK6VectorI6StringEixEj + 0x100094c0 0x19 + .text._ZNK6VectorI6StringEixEj + 0x100094c0 0x19 ../../Library/Melon.o + 0x100094c0 Vector::operator[](unsigned int) const + +.iplt 0x100094dc 0x0 load address 0x100094d9 + .iplt 0x00000000 0x0 ../../Library/Melon.o + +.text._ZN5WCharpLEj + 0x100094da 0x17 + .text._ZN5WCharpLEj + 0x100094da 0x17 Applets/rot13.o + 0x100094da WChar::operator+=(unsigned int) + +.text._ZN5WCharmIEj + 0x100094f2 0x17 + .text._ZN5WCharmIEj + 0x100094f2 0x17 Applets/rot13.o + 0x100094f2 WChar::operator-=(unsigned int) + +.text._ZNK7IStream3eofEv + 0x1000950a 0x26 + .text._ZNK7IStream3eofEv + 0x1000950a 0x26 Applets/rot13.o + 0x1000950a IStream::eof() const + +.text._ZN5rot13C1Ev + 0x10009530 0x76 + .text._ZN5rot13C1Ev + 0x10009530 0x76 Applets/rot13.o + 0x10009530 rot13::rot13() + +.text._ZN5rot13D1Ev + 0x100095a6 0x30 + .text._ZN5rot13D1Ev + 0x100095a6 0x30 Applets/rot13.o + 0x100095a6 rot13::~rot13() + +.text._ZN5rot13D0Ev + 0x100095d6 0x30 + .text._ZN5rot13D0Ev + 0x100095d6 0x30 Applets/rot13.o + 0x100095d6 rot13::~rot13() + +.rodata 0x1000a000 0x397 + *(.rodata) + .rodata 0x1000a000 0x376 ../../Library/Melon.o + .rodata 0x1000a376 0x21 Applets/rot13.o + +.rodata._ZTV6String + 0x1000a398 0x10 + .rodata._ZTV6String + 0x1000a398 0x10 ../../Library/Melon.o + 0x1000a398 vtable for String + +.rodata._ZTV11BasicStringI5WCharE + 0x1000a3a8 0x10 + .rodata._ZTV11BasicStringI5WCharE + 0x1000a3a8 0x10 ../../Library/Melon.o + 0x1000a3a8 vtable for BasicString + +.rodata._ZTV9ByteArray + 0x1000a3b8 0x10 + .rodata._ZTV9ByteArray + 0x1000a3b8 0x10 ../../Library/Melon.o + 0x1000a3b8 vtable for ByteArray + +.rodata._ZTV11BasicStringIhE + 0x1000a3c8 0x10 + .rodata._ZTV11BasicStringIhE + 0x1000a3c8 0x10 ../../Library/Melon.o + 0x1000a3c8 vtable for BasicString + +.rodata._ZTV7OStream + 0x1000a3d8 0x14 + .rodata._ZTV7OStream + 0x1000a3d8 0x14 ../../Library/Melon.o + 0x1000a3d8 vtable for OStream + +.rodata._ZTV7IStream + 0x1000a3f0 0x14 + .rodata._ZTV7IStream + 0x1000a3f0 0x14 ../../Library/Melon.o + 0x1000a3f0 vtable for IStream + +.rodata._ZTV11FileOStream + 0x1000a408 0x14 + .rodata._ZTV11FileOStream + 0x1000a408 0x14 ../../Library/Melon.o + 0x1000a408 vtable for FileOStream + +.rodata._ZTV11FileIStream + 0x1000a420 0x14 + .rodata._ZTV11FileIStream + 0x1000a420 0x14 ../../Library/Melon.o + 0x1000a420 vtable for FileIStream + +.rodata._ZTV13StringIStream + 0x1000a438 0x14 + .rodata._ZTV13StringIStream + 0x1000a438 0x14 ../../Library/Melon.o + 0x1000a438 vtable for StringIStream + +.rodata._ZTV8ShellApp + 0x1000a450 0x1c + .rodata._ZTV8ShellApp + 0x1000a450 0x1c ../../Library/Melon.o + 0x1000a450 vtable for ShellApp + +.rodata._ZTV11Application + 0x1000a470 0x1c + .rodata._ZTV11Application + 0x1000a470 0x1c ../../Library/Melon.o + 0x1000a470 vtable for Application + +.rodata._ZTV15VirtualTerminal + 0x1000a4a0 0x2c + .rodata._ZTV15VirtualTerminal + 0x1000a4a0 0x2c ../../Library/Melon.o + 0x1000a4a0 vtable for VirtualTerminal + +.rodata._ZTV9StreamApp + 0x1000a4d0 0x1c + .rodata._ZTV9StreamApp + 0x1000a4d0 0x1c ../../Library/Melon.o + 0x1000a4d0 vtable for StreamApp + +.rodata._ZTV5rot13 + 0x1000a4f0 0x1c + .rodata._ZTV5rot13 + 0x1000a4f0 0x1c Applets/rot13.o + 0x1000a4f0 vtable for rot13 + +.rel.dyn 0x1000a50c 0x0 + .rel.iplt 0x00000000 0x0 ../../Library/Melon.o + .rel.text 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6Thread3getEv + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN7Process3getEv + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6StringC1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6StringC1ERKS_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6StringpLERKS_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6StringpLE5WChar + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6StringD1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6StringD0Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringI5WCharEC2Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringI5WCharED2Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringI5WCharED1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringI5WCharED0Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringI5WCharEC2ERKS1_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringI5WCharE6affectERKS1_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringI5WCharE6appendERKS1_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringI5WCharE6appendES0_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6VectorI6StringE4pushERKS0_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN9ByteArrayC1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN9ByteArrayC1ERK6Stringh + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN4File4readER9ByteArray + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN4File5writeER9ByteArray + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN9ByteArrayD1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN9ByteArrayD0Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringIhEC2Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringIhED2Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringIhED1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringIhED0Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringIhE5clearEv + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringIhEpLEh + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringIhE6appendEh + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6StringC1E5WCharj + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN7OStreamD1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN7OStreamD0Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringI5WCharEC2ES0_j + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN10SimpleListI6StringEC1ERKS0_PS1_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN10SimpleListI6StringE8addAtEndERKS0_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN10SimpleListI6StringED1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11BasicStringI5WCharE6affectES0_j + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN7OStreamD2Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN4FileC1E6Stringh6FSNode + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6StringaSERKS_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZNK6StringeqERKS_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN7OStreamlsERK6String + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN7OStreamlsEi + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN15VirtualTerminalD1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN15VirtualTerminalD0Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN15VirtualTerminal5getInEv + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN15VirtualTerminal6getOutEv + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN15VirtualTerminalC1Ej + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN15VirtualTerminal4readEv + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11ApplicationC2Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11ApplicationD2Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11ApplicationD1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11ApplicationD0Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN11Application4exitEj + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6flag_tC1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6flag_tD1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZNK11BasicStringI5WCharE7compareERKS1_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZNK11BasicStringI5WCharE8containsERKS0_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6VectorI6flag_tED1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6VectorI6StringE5clearEv + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6flag_tC1ERKS_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN6VectorI6flag_tE4pushERKS0_ + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN2FS7cwdNodeEv + 0x00000000 0x0 ../../Library/Melon.o + .rel.rodata._ZTV6String + 0x00000000 0x0 ../../Library/Melon.o + .rel.rodata._ZTV11BasicStringI5WCharE + 0x00000000 0x0 ../../Library/Melon.o + .rel.rodata._ZTV9ByteArray + 0x00000000 0x0 ../../Library/Melon.o + .rel.rodata._ZTV11BasicStringIhE + 0x00000000 0x0 ../../Library/Melon.o + .rel.rodata._ZTV7OStream + 0x00000000 0x0 ../../Library/Melon.o + .rel.rodata._ZTV8ShellApp + 0x00000000 0x0 ../../Library/Melon.o + .rel.rodata._ZTV11Application + 0x00000000 0x0 ../../Library/Melon.o + .rel.rodata._ZTV15VirtualTerminal + 0x00000000 0x0 ../../Library/Melon.o + .rel.rodata._ZTV9StreamApp + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN5rot13C1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.rodata._ZTV5rot13 + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN5rot13D1Ev + 0x00000000 0x0 ../../Library/Melon.o + .rel.text._ZN5rot13D0Ev + 0x00000000 0x0 ../../Library/Melon.o + +.data 0x1000b000 0x24 + 0x1000b000 start_ctors = . + *(.ctor*) + .ctors 0x1000b000 0x4 ../../Library/Melon.o + .ctors 0x1000b004 0x4 Applets/rot13.o + 0x1000b008 end_ctors = . + 0x1000b008 start_dtors = . + *(.dtor*) + 0x1000b008 end_dtors = . + *(.data) + .data 0x1000b008 0x18 ../../Library/Melon.o + 0x1000b008 Rand::m + 0x1000b00c Rand::a + 0x1000b010 Rand::b + 0x1000b018 Rand::current + .data 0x1000b020 0x4 Applets/rot13.o + 0x1000b020 app + +.igot.plt 0x1000b024 0x0 + .igot.plt 0x00000000 0x0 ../../Library/Melon.o + +.bss 0x1000b040 0x2b4 + 0x1000b040 sbss = . + *(COMMON) + *(.bss) + .bss 0x1000b040 0x208 ../../Library/Melon.o + 0x1000b040 WChar::CP437 + 0x1000b240 __dso_handle + 0x1000b244 heap + *fill* 0x1000b248 0x18 00 + .bss 0x1000b260 0x94 Applets/rot13.o + 0x1000b2f4 ebss = . + 0x1000b2f4 end = . + 0x1000b2f4 _end = . + 0x1000b2f4 __end = . +LOAD Applets/rot13.o +OUTPUT(Applets/rot13 elf32-i386) + +.note.GNU-stack + 0x00000000 0x0 + .note.GNU-stack + 0x00000000 0x0 ../../Library/Melon.o + .note.GNU-stack + 0x00000000 0x0 Applets/rot13.o + +.comment 0x00000000 0x27 + .comment 0x00000000 0x27 ../../Library/Melon.o + 0x2f8 (size before relaxing) + .comment 0x00000000 0x28 Applets/rot13.o diff --git a/Source/Applications/Shell/Makefile b/Source/Applications/Shell/Makefile index d546a15..e972dfb 100644 --- a/Source/Applications/Shell/Makefile +++ b/Source/Applications/Shell/Makefile @@ -10,7 +10,9 @@ Objects = Shell.class.o \ Shell-fs.class.o OutFile = Shell -all: $(OutFile) +Applets = Applets/rot13 + +all: $(OutFile) $(Applets) echo "* Done with $(OutFile)." rebuild: mrproper all @@ -19,6 +21,10 @@ $(OutFile): $(Objects) echo "* Linking $@..." $(LD) $(LDFLAGS) $^ -o $@ +Applets/%: Applets/%.o + echo "* Linking $@..." + $(LD) $(LDFLAGS) $^ -o $@ -Map $@.map + %.o: %.cpp echo "* Compiling $<..." $(CXX) $(CXXFLAGS) -c $< -o $@ diff --git a/Source/Applications/Shell/Shell.class.cpp b/Source/Applications/Shell/Shell.class.cpp index a2eb490..4283b30 100644 --- a/Source/Applications/Shell/Shell.class.cpp +++ b/Source/Applications/Shell/Shell.class.cpp @@ -27,6 +27,7 @@ int Shell::run() { while (1) { outvt << "{" << cwd.getName() << "}: " << FLUSH; String s = invt.get(); + if (s.contains(EOF)) return 0; if (s.empty()) continue; while (s[0] == WChar(" ") or s[0] == WChar("\t")) { s = s.substr(1, s.size() - 1); diff --git a/Source/Kernel/TaskManager/Thread.class.cpp b/Source/Kernel/TaskManager/Thread.class.cpp index af501fe..2cd9515 100644 --- a/Source/Kernel/TaskManager/Thread.class.cpp +++ b/Source/Kernel/TaskManager/Thread.class.cpp @@ -182,9 +182,11 @@ void Thread::handleException(registers_t *regs, int no) { if (rw) vt << "R/W "; if (us) vt << "User "; if (rsvd) vt << "Rsvd "; - vt << "At:" << (u32int)faddr; + vt << "At:" << (u32int)faddr << "\n"; - vt << "\nThread finishing.\n"; + Sys::stackTrace(regs->ebp, vt, 5, true); + + vt << "Thread finishing.\n"; Task::currentThreadExits(E_PAGEFAULT); //Calling this will setup a new stack return; } diff --git a/Source/Library/Common/FileStream.class.cpp b/Source/Library/Common/FileStream.class.cpp index 322e9aa..317a023 100644 --- a/Source/Library/Common/FileStream.class.cpp +++ b/Source/Library/Common/FileStream.class.cpp @@ -6,11 +6,13 @@ FileIStream::FileIStream(const String &filename, u8int encoding, FSNode start) : m_start(start) { m_file = new File(filename, FM_READ, start); + m_filenames = 0; m_encoding = encoding; } FileIStream::FileIStream(u8int encoding, FSNode start) : m_start(start) { m_file = 0; + m_filenames = 0; m_encoding = encoding; } @@ -30,10 +32,11 @@ void FileIStream::appendFile(const String &filename) { } String FileIStream::read() { - if (m_file == 0) return ""; - while (m_file->eof() or !m_file->valid()) { - m_file->close(); - delete m_file; + while (m_file == 0 or m_file->eof() or !m_file->valid()) { + if (m_file != 0) { + m_file->close(); + delete m_file; + } m_file = 0; if (m_filenames == 0) { return ""; diff --git a/Source/Library/Common/IStream.proto.cpp b/Source/Library/Common/IStream.proto.cpp index 59c623e..6176eac 100644 --- a/Source/Library/Common/IStream.proto.cpp +++ b/Source/Library/Common/IStream.proto.cpp @@ -51,7 +51,10 @@ WChar IStream::getChar() { String IStream::get(WChar delimiter) { waitLock(); //calculate length of string to read - if (m_buffer == 0) populate(); + if (m_buffer == 0) { + unlock(); + if (!populate()) return ""; + } int length = 0, ptr = m_ptr; for (SimpleList *iter = m_buffer; iter != 0;) { if (iter->v()[ptr] == delimiter) break; diff --git a/Source/Library/Common/OStream.proto.cpp b/Source/Library/Common/OStream.proto.cpp index ba876b3..f0667e7 100644 --- a/Source/Library/Common/OStream.proto.cpp +++ b/Source/Library/Common/OStream.proto.cpp @@ -11,6 +11,7 @@ OStream::OStream(const OStream& other) { } void OStream::put(const String &s) { + if (s.empty()) return; waitLock(); if (m_buffer == NULL or m_last == NULL) { m_buffer = m_last = new SimpleList(s); @@ -55,8 +56,9 @@ OStream& OStream::operator<< (ostream_modifiers_e m) { flush(); } else if (m == ENDL) { put("\n"); + flush(); } else if (m == END) { - put(String(EOF, 1)); + put(EOF); flush(); } return *this; diff --git a/Source/Library/Userland/App/ShellApp.proto.cpp b/Source/Library/Userland/App/ShellApp.proto.cpp index 840e985..123eb73 100644 --- a/Source/Library/Userland/App/ShellApp.proto.cpp +++ b/Source/Library/Userland/App/ShellApp.proto.cpp @@ -16,7 +16,8 @@ ShellApp::~ShellApp() { void ShellApp::init() { //Parse flags u32int argc = pr.argc(); - for (u32int i = 0; i < argc; i++) { + args.clear(); + for (u32int i = 1; i < argc; i++) { String arg = pr.argv(i); if (arg.empty()) continue; if (arg == "-") { @@ -89,7 +90,7 @@ void ShellApp::init() { //Eventually show help screen if (bFlag("help")) { outvt << appName << ": " << appDesc << "\n"; - outvt << "Usage: \t" << appName << " [-] \n\n"; + outvt << "Usage: \t" << pr.argv(0) << " [-] \n\n"; outvt << "Possible flags :\n"; for (u32int i = 0; i < flags.size(); i++) { outvt << " --" << flags[i].lName << "\t" << (flags[i].sName != 0 ? "-" : "") << String(flags[i].sName) << "\t"; diff --git a/Source/Library/Userland/App/StreamApp.proto.cpp b/Source/Library/Userland/App/StreamApp.proto.cpp index 97f473e..b1dc7dd 100644 --- a/Source/Library/Userland/App/StreamApp.proto.cpp +++ b/Source/Library/Userland/App/StreamApp.proto.cpp @@ -6,6 +6,7 @@ StreamApp::StreamApp(const String& name, const String& desc) : ShellApp(name, desc) { addFlag("o", "output", "Set the output to a file instead of the text output", FT_STR, ""); addFlag("e", "encoding", "Set the encoding for files (input and output)", FT_STR, "utf8"); + addFlag("a", "append", "When writing to a file, append instead of truncating", FT_BOOL, ""); } StreamApp::~StreamApp() { @@ -13,7 +14,7 @@ StreamApp::~StreamApp() { void StreamApp::init() { ShellApp::init(); - + u8int encoding = UE_UTF8; if (sFlag("encoding") == "utf8") encoding = UE_UTF8; if (sFlag("encoding") == "utf16be") encoding = UE_UTF16_BE; @@ -24,7 +25,7 @@ void StreamApp::init() { if (sFlag("output") == "") { out = &outvt; } else { - out = new FileOStream(sFlag("output"), FM_TRUNCATE, encoding, FS::cwdNode()); + out = new FileOStream(sFlag("output"), (bFlag("append") ? FM_APPEND : FM_TRUNCATE), encoding, FS::cwdNode()); } if (args.size() == 0) { diff --git a/Source/Library/Userland/Binding/VirtualTerminal.class.h b/Source/Library/Userland/Binding/VirtualTerminal.class.h index 54bdc53..2a38abd 100644 --- a/Source/Library/Userland/Binding/VirtualTerminal.class.h +++ b/Source/Library/Userland/Binding/VirtualTerminal.class.h @@ -39,6 +39,7 @@ class VirtualTerminal : public RessourceCaller, public OStream, public IStream { String ret = String::unserialize(doCall(VTIF_READLINE, 1)); if (ret[ret.size() - 1] == WChar(EOF)) { ret = ret.substr(0, ret.size() - 1); + if (ret.empty()) return ""; m_eof = true; } return ret += "\n"; -- cgit v1.2.3 From 18454dc8be12827a84c2ebc58aa5d31bb44e1e6a Mon Sep 17 00:00:00 2001 From: Alexis211 Date: Sun, 20 Dec 2009 19:58:34 +0100 Subject: Some reorganisation --- Source/Applications/Demos/GOL.cpp | 7 +- Source/Applications/Shell/Applets/rot13 | Bin 73404 -> 73404 bytes Source/Applications/Shell/Applets/rot13.cpp | 2 +- Source/Applications/Shell/Applets/rot13.map | 1371 --------------------------- 4 files changed, 5 insertions(+), 1375 deletions(-) delete mode 100644 Source/Applications/Shell/Applets/rot13.map (limited to 'Source') diff --git a/Source/Applications/Demos/GOL.cpp b/Source/Applications/Demos/GOL.cpp index 675c159..ba9cb1c 100644 --- a/Source/Applications/Demos/GOL.cpp +++ b/Source/Applications/Demos/GOL.cpp @@ -46,7 +46,8 @@ int GOL::run() { } } outvt.moveCursor(0, 0); - outvt << tmp.toString() << "Press Ctrl+h for help"; + outvt.write(tmp.toString()); //BYPASS buffering + outvt<< "Press Ctrl+h for help" << FLUSH; //Compute next generation for (int y = 0; y < h; y++) { @@ -92,7 +93,7 @@ int GOL::run() { cells[x * h + y] = true; } } else if (kp.character == WChar("p")) { - outvt << " [PAUSED] press a key to resume"; + outvt << " [PAUSED] press a key to resume" << FLUSH; invt.getKeypress(); } else if (kp.character == WChar("h")) { outvt << "\n\n** Melon's demo Game Of Life Simulator help :\n"; @@ -101,7 +102,7 @@ int GOL::run() { outvt << " - ctrl+p : pause\n"; outvt << " - ctrl+r : add some random cells\n"; outvt << " - ctrl+R : add more cells, still random\n\n"; - outvt << "Press any key to return to simultaor..."; + outvt << "Press any key to return to simultaor..." << FLUSH; invt.getKeypress(); } kp = invt.getKeypress(false, false); diff --git a/Source/Applications/Shell/Applets/rot13 b/Source/Applications/Shell/Applets/rot13 index 5ec705f..0399a6f 100755 Binary files a/Source/Applications/Shell/Applets/rot13 and b/Source/Applications/Shell/Applets/rot13 differ diff --git a/Source/Applications/Shell/Applets/rot13.cpp b/Source/Applications/Shell/Applets/rot13.cpp index 79c2124..e5638b8 100644 --- a/Source/Applications/Shell/Applets/rot13.cpp +++ b/Source/Applications/Shell/Applets/rot13.cpp @@ -11,6 +11,7 @@ APP(rot13); int rot13::run() { while (!in->eof()) { String s = in->get(); + if (in->eof() && s.empty()) break; for (u32int i = 0; i < s.size(); i++) { WChar &c = s[i]; if (c >= WChar('A') and c <= WChar('Z')) { @@ -22,7 +23,6 @@ int rot13::run() { if (c > WChar('z')) c -= 26; } } - if (in->eof() && s.empty()) break; *out << s << ENDL; } return 0; diff --git a/Source/Applications/Shell/Applets/rot13.map b/Source/Applications/Shell/Applets/rot13.map deleted file mode 100644 index 10461ef..0000000 --- a/Source/Applications/Shell/Applets/rot13.map +++ /dev/null @@ -1,1371 +0,0 @@ - -Discarded input sections - - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 ../../Library/Melon.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .group 0x00000000 0x8 Applets/rot13.o - .text._ZdlPv 0x00000000 0x13 Applets/rot13.o - .text._ZN5WChareqEj - 0x00000000 0x10 Applets/rot13.o - .text._ZNK5WCharcvjEv - 0x00000000 0xa Applets/rot13.o - .text._ZN6StringD1Ev - 0x00000000 0x30 Applets/rot13.o - .text._ZN6StringD0Ev - 0x00000000 0x30 Applets/rot13.o - .text._ZN7OStreamlsERK6String - 0x00000000 0x59 Applets/rot13.o - .text._ZN11Application8doEventsEv - 0x00000000 0x5 Applets/rot13.o - .text._ZN11BasicStringI5WCharED2Ev - 0x00000000 0x3d Applets/rot13.o - .text._ZN11BasicStringI5WCharED1Ev - 0x00000000 0x3d Applets/rot13.o - .text._ZN11BasicStringI5WCharED0Ev - 0x00000000 0x3d Applets/rot13.o - .text._ZNK11BasicStringI5WCharE8containsERKS0_ - 0x00000000 0x5a Applets/rot13.o - .text._ZNK11BasicStringI5WCharE4sizeEv - 0x00000000 0xb Applets/rot13.o - .text._ZNK11BasicStringI5WCharEixEi - 0x00000000 0x13 Applets/rot13.o - .text._ZNK11BasicStringI5WCharE5emptyEv - 0x00000000 0x10 Applets/rot13.o - .rodata._ZTV6String - 0x00000000 0x10 Applets/rot13.o - .rodata._ZTV11BasicStringI5WCharE - 0x00000000 0x10 Applets/rot13.o - -Memory Configuration - -Name Origin Length Attributes -*default* 0x00000000 0xffffffff - -Linker script and memory map - -LOAD ../../Library/Melon.o - 0x10000000 . = 0x10000000 - -.text 0x10000000 0x777d - *(.text) - .text 0x10000000 0x746c ../../Library/Melon.o - 0x10000000 WChar::WChar() - 0x1000000e WChar::WChar() - 0x1000001c WChar::WChar(char) - 0x1000003e WChar::WChar(char) - 0x10000060 WChar::WChar(char const*, unsigned char) - 0x100000e6 WChar::WChar(char const*, unsigned char) - 0x1000016c WChar::ucharLen(char const*, unsigned char) - 0x10000298 WChar::utfLen(char const*, unsigned char) - 0x1000030c WChar::affectAscii(char) - 0x1000034c WChar::affectUtf8(char const*) - 0x10000514 WChar::affectUtf16be(char const*) - 0x10000684 WChar::affectUtf16le(char const*) - 0x100007f4 WChar::affectUtf32be(char const*) - 0x10000886 WChar::affectUtf32le(char const*) - 0x10000918 WChar::toAscii() - 0x10000978 WChar::toUtf8() - 0x10000a62 WChar::toUtf32be() - 0x10000a98 WChar::toUtf32le() - 0x10001894 CMem::memcpy(unsigned char*, unsigned char const*, unsigned int) - 0x1000192b CMem::memset(unsigned char*, unsigned char, int) - 0x10001962 CMem::memsetw(unsigned short*, unsigned short, int) - 0x1000199d CMem::strlen(char const*) - 0x100019cc atomic_exchange(unsigned int*, unsigned int) - 0x100019e4 Mutex::Mutex(unsigned int) - 0x100019f2 Mutex::Mutex(unsigned int) - 0x10001a00 Mutex::lock() - 0x10001a32 Mutex::waitLock() - 0x10001a7a Mutex::unlock() - 0x10001a88 Mutex::locked() - 0x10001a98 Heap::Heap() - 0x10001ae2 Heap::Heap() - 0x10001b2c Heap::~Heap() - 0x10001b32 Heap::~Heap() - 0x10001b38 Heap::create(unsigned int, unsigned int, unsigned int) - 0x10001c5e Heap::expand(unsigned int) - 0x10001d86 Heap::contract() - 0x10001ea4 Heap::alloc(unsigned int, bool) - 0x10002060 Heap::free(void*) - 0x100021fc Heap::insertIntoIndex(heap_header_t*) - 0x10002324 Heap::findIndexEntry(heap_header_t*) - 0x10002368 Heap::removeFromIndex(unsigned int) - 0x100023b6 Heap::removeFromIndex(heap_header_t*) - 0x100023ec String::hex(unsigned int) - 0x10002500 String::number(int) - 0x100026f0 String::unserialize(unsigned int) - 0x100027ae String::serialize() const - 0x10002824 String::String(char const*, unsigned char) - 0x10002874 String::String(char const*, unsigned char) - 0x100028c4 String::affect(char const*, unsigned char) - 0x100029e8 String::compare(char const*, unsigned char) const - 0x10002abe String::append(char const*, unsigned char) - 0x10002c32 String::concat(String const&) const - 0x10002c88 String::concat(char const*, unsigned char) const - 0x10002cec String::concat(WChar) const - 0x10002d42 String::toInt() const - 0x10002e44 String::toInt16() const - 0x10002f44 String::split(WChar) const - 0x1000304a String::substr(int, int) - 0x10003188 TextFile::write(String, bool) - 0x100031f6 TextFile::readLine(char) - 0x10003350 ByteArray::ByteArray(char const*) - 0x1000339c ByteArray::ByteArray(char const*) - 0x100033e8 ByteArray::affect(String const&, unsigned char) - 0x100035ea ByteArray::resize(unsigned int) - 0x100036d0 ByteArray::toString(unsigned char) - 0x10003770 Rand::rand() - 0x1000380d Rand::max() - 0x1000381c OStream::OStream() - 0x10003858 OStream::OStream() - 0x10003894 OStream::OStream(OStream const&) - 0x100038d0 OStream::OStream(OStream const&) - 0x1000390c OStream::put(String const&) - 0x100039b8 OStream::flush() - 0x10003b60 OStream::operator<<(ostream_modifiers_e) - 0x10003c18 IStream::IStream() - 0x10003c5a IStream::IStream() - 0x10003c9c IStream::IStream(IStream const&) - 0x10003cd8 IStream::IStream(IStream const&) - 0x10003d14 IStream::~IStream() - 0x10003d58 IStream::~IStream() - 0x10003d9c IStream::~IStream() - 0x10003de0 IStream::populate() - 0x10003e9a IStream::getChar() - 0x10003f92 IStream::get(WChar) - 0x100041d8 FileIStream::FileIStream(String const&, unsigned char, FSNode) - 0x1000427e FileIStream::FileIStream(String const&, unsigned char, FSNode) - 0x10004324 FileIStream::FileIStream(unsigned char, FSNode) - 0x10004374 FileIStream::FileIStream(unsigned char, FSNode) - 0x100043c4 FileIStream::~FileIStream() - 0x1000441a FileIStream::~FileIStream() - 0x10004470 FileIStream::~FileIStream() - 0x100044c6 FileIStream::appendFile(String const&) - 0x10004524 FileIStream::read() - 0x100046d6 FileOStream::FileOStream(String const&, unsigned char, unsigned char, FSNode) - 0x1000476c FileOStream::FileOStream(String const&, unsigned char, unsigned char, FSNode) - 0x10004802 FileOStream::~FileOStream() - 0x10004840 FileOStream::~FileOStream() - 0x1000487e FileOStream::~FileOStream() - 0x100048bc FileOStream::write(String const&) - 0x10004904 StringIStream::StringIStream(String const&) - 0x10004954 StringIStream::StringIStream(String const&) - 0x100049a4 StringIStream::StringIStream() - 0x100049ca StringIStream::StringIStream() - 0x100049f0 StringIStream::~StringIStream() - 0x10004a4a StringIStream::~StringIStream() - 0x10004aa4 StringIStream::~StringIStream() - 0x10004afe StringIStream::read() - 0x10004b88 StringIStream::append(String const&) - 0x10004be8 __cxa_pure_virtual - 0x10004bed __cxa_atexit - 0x10004bf7 memmove - 0x10004c1b __udivdi3 - 0x10004c61 __umoddi3 - 0x10004cb0 ShellApp::ShellApp(String const&, String const&) - 0x10004e60 ShellApp::ShellApp(String const&, String const&) - 0x10005010 ShellApp::~ShellApp() - 0x100050aa ShellApp::~ShellApp() - 0x10005144 ShellApp::~ShellApp() - 0x100051de ShellApp::init() - 0x100063bc ShellApp::getFlag(String) - 0x10006430 ShellApp::addFlag(WChar, String, String, int, String) - 0x1000653e ShellApp::sFlag(String) - 0x100065e4 ShellApp::iFlag(String) - 0x10006644 ShellApp::bFlag(String) - 0x100066a4 StreamApp::StreamApp(String const&, String const&) - 0x10006906 StreamApp::StreamApp(String const&, String const&) - 0x10006b68 StreamApp::~StreamApp() - 0x10006b98 StreamApp::~StreamApp() - 0x10006bc8 StreamApp::~StreamApp() - 0x10006bf8 StreamApp::init() - 0x100070b4 syscall(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) - 0x100070df threadFinishedSyscall(unsigned int) - 0x100070e9 breakPoint() - 0x100070ef putch(char) - 0x10007137 sleep(unsigned int) - 0x10007172 write_hex(unsigned int) - 0x100071b0 RessourceCaller::RessourceCaller(unsigned int, unsigned int) - 0x10007220 RessourceCaller::RessourceCaller(unsigned int, unsigned int) - 0x10007290 RessourceCaller::sCall(unsigned int, unsigned char, unsigned int, unsigned int, unsigned int, unsigned int) - 0x100072d6 RessourceCaller::doCall(unsigned char, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) - 0x10007338 start - 0x10007419 Mem::alloc(unsigned int) - 0x1000743d Mem::free(void*) - 0x10007459 Mem::mkXchgSpace(unsigned int) - .text 0x1000746c 0x311 Applets/rot13.o - 0x1000746c rot13::run() - -.text._ZN5WChareqEj - 0x1000777e 0x10 - .text._ZN5WChareqEj - 0x1000777e 0x10 ../../Library/Melon.o - 0x1000777e WChar::operator==(unsigned int) - -.text._ZNK5WCharcvjEv - 0x1000778e 0xa - .text._ZNK5WCharcvjEv - 0x1000778e 0xa ../../Library/Melon.o - 0x1000778e WChar::operator unsigned int() const - -.text._ZN6Thread3getEv - 0x10007798 0x5a - .text._ZN6Thread3getEv - 0x10007798 0x5a ../../Library/Melon.o - 0x10007798 Thread::get() - -.text._ZN6ThreadC1Ej - 0x100077f2 0x22 - .text._ZN6ThreadC1Ej - 0x100077f2 0x22 ../../Library/Melon.o - 0x100077f2 Thread::Thread(unsigned int) - -.text._ZN6Thread5sleepEj - 0x10007814 0x42 - .text._ZN6Thread5sleepEj - 0x10007814 0x42 ../../Library/Melon.o - 0x10007814 Thread::sleep(unsigned int) - -.text._ZN7Process3getEv - 0x10007856 0x5a - .text._ZN7Process3getEv - 0x10007856 0x5a ../../Library/Melon.o - 0x10007856 Process::get() - -.text._ZN7ProcessC1Ej - 0x100078b0 0x22 - .text._ZN7ProcessC1Ej - 0x100078b0 0x22 ../../Library/Melon.o - 0x100078b0 Process::Process(unsigned int) - -.text._ZN7Process10allocPagesEjj - 0x100078d2 0x41 - .text._ZN7Process10allocPagesEjj - 0x100078d2 0x41 ../../Library/Melon.o - 0x100078d2 Process::allocPages(unsigned int, unsigned int) - -.text._ZN7Process9freePagesEjj - 0x10007914 0x41 - .text._ZN7Process9freePagesEjj - 0x10007914 0x41 ../../Library/Melon.o - 0x10007914 Process::freePages(unsigned int, unsigned int) - -.text._ZnwjPv 0x10007955 0x8 - .text._ZnwjPv 0x10007955 0x8 ../../Library/Melon.o - 0x10007955 operator new(unsigned int, void*) - -.text._Znaj 0x1000795d 0x13 - .text._Znaj 0x1000795d 0x13 ../../Library/Melon.o - 0x1000795d operator new[](unsigned int) - -.text._ZdlPv 0x10007970 0x13 - .text._ZdlPv 0x10007970 0x13 ../../Library/Melon.o - 0x10007970 operator delete(void*) - -.text._ZdaPv 0x10007983 0x13 - .text._ZdaPv 0x10007983 0x13 ../../Library/Melon.o - 0x10007983 operator delete[](void*) - -.text._ZN5WChar6affectEPKch - 0x10007996 0xb0 - .text._ZN5WChar6affectEPKch - 0x10007996 0xb0 ../../Library/Melon.o - 0x10007996 WChar::affect(char const*, unsigned char) - -.text._ZN5WCharaSEj - 0x10007a46 0x10 - .text._ZN5WCharaSEj - 0x10007a46 0x10 ../../Library/Melon.o - 0x10007a46 WChar::operator=(unsigned int) - -.text._ZN6StringC1Ev - 0x10007a56 0x1c - .text._ZN6StringC1Ev - 0x10007a56 0x1c ../../Library/Melon.o - 0x10007a56 String::String() - -.text._ZN6StringC1ERKS_ - 0x10007a72 0x23 - .text._ZN6StringC1ERKS_ - 0x10007a72 0x23 ../../Library/Melon.o - 0x10007a72 String::String(String const&) - -.text._ZN6StringpLERKS_ - 0x10007a96 0x1d - .text._ZN6StringpLERKS_ - 0x10007a96 0x1d ../../Library/Melon.o - 0x10007a96 String::operator+=(String const&) - -.text._ZN6StringpLE5WChar - 0x10007ab4 0x1d - .text._ZN6StringpLE5WChar - 0x10007ab4 0x1d ../../Library/Melon.o - 0x10007ab4 String::operator+=(WChar) - -.text._ZN6StringD1Ev - 0x10007ad2 0x30 - .text._ZN6StringD1Ev - 0x10007ad2 0x30 ../../Library/Melon.o - 0x10007ad2 String::~String() - -.text._ZN6StringD0Ev - 0x10007b02 0x30 - .text._ZN6StringD0Ev - 0x10007b02 0x30 ../../Library/Melon.o - 0x10007b02 String::~String() - -.text._ZN11BasicStringI5WCharEC2Ev - 0x10007b32 0x22 - .text._ZN11BasicStringI5WCharEC2Ev - 0x10007b32 0x22 ../../Library/Melon.o - 0x10007b32 BasicString::BasicString() - -.text._ZN11BasicStringI5WCharED2Ev - 0x10007b54 0x3d - .text._ZN11BasicStringI5WCharED2Ev - 0x10007b54 0x3d ../../Library/Melon.o - 0x10007b54 BasicString::~BasicString() - -.text._ZN11BasicStringI5WCharED1Ev - 0x10007b92 0x3d - .text._ZN11BasicStringI5WCharED1Ev - 0x10007b92 0x3d ../../Library/Melon.o - 0x10007b92 BasicString::~BasicString() - -.text._ZN11BasicStringI5WCharED0Ev - 0x10007bd0 0x3d - .text._ZN11BasicStringI5WCharED0Ev - 0x10007bd0 0x3d ../../Library/Melon.o - 0x10007bd0 BasicString::~BasicString() - -.text._ZN11BasicStringI5WCharEC2ERKS1_ - 0x10007c0e 0x2d - .text._ZN11BasicStringI5WCharEC2ERKS1_ - 0x10007c0e 0x2d ../../Library/Melon.o - 0x10007c0e BasicString::BasicString(BasicString const&) - -.text._ZN11BasicStringI5WCharE6affectERKS1_ - 0x10007c3c 0xb8 - .text._ZN11BasicStringI5WCharE6affectERKS1_ - 0x10007c3c 0xb8 ../../Library/Melon.o - 0x10007c3c BasicString::affect(BasicString const&) - -.text._ZN11BasicStringI5WCharE6appendERKS1_ - 0x10007cf4 0x105 - .text._ZN11BasicStringI5WCharE6appendERKS1_ - 0x10007cf4 0x105 ../../Library/Melon.o - 0x10007cf4 BasicString::append(BasicString const&) - -.text._ZN11BasicStringI5WCharE6appendES0_ - 0x10007dfa 0xd2 - .text._ZN11BasicStringI5WCharE6appendES0_ - 0x10007dfa 0xd2 ../../Library/Melon.o - 0x10007dfa BasicString::append(WChar) - -.text._ZNK11BasicStringI5WCharEixEi - 0x10007ecc 0x13 - .text._ZNK11BasicStringI5WCharEixEi - 0x10007ecc 0x13 ../../Library/Melon.o - 0x10007ecc BasicString::operator[](int) const - -.text._ZN6VectorI6StringEC1Ev - 0x10007ee0 0x18 - .text._ZN6VectorI6StringEC1Ev - 0x10007ee0 0x18 ../../Library/Melon.o - 0x10007ee0 Vector::Vector() - -.text._ZN6VectorI6StringE4pushERKS0_ - 0x10007ef8 0xb8 - .text._ZN6VectorI6StringE4pushERKS0_ - 0x10007ef8 0xb8 ../../Library/Melon.o - 0x10007ef8 Vector::push(String const&) - -.text._ZNK6VectorI6StringE4backEv - 0x10007fb0 0x1f - .text._ZNK6VectorI6StringE4backEv - 0x10007fb0 0x1f ../../Library/Melon.o - 0x10007fb0 Vector::back() const - -.text._ZN15RessourceCaller5validEv - 0x10007fd0 0x10 - .text._ZN15RessourceCaller5validEv - 0x10007fd0 0x10 ../../Library/Melon.o - 0x10007fd0 RessourceCaller::valid() - -.text._ZN9ByteArrayC1Ev - 0x10007fe0 0x1c - .text._ZN9ByteArrayC1Ev - 0x10007fe0 0x1c ../../Library/Melon.o - 0x10007fe0 ByteArray::ByteArray() - -.text._ZN9ByteArrayC1ERK6Stringh - 0x10007ffc 0x3c - .text._ZN9ByteArrayC1ERK6Stringh - 0x10007ffc 0x3c ../../Library/Melon.o - 0x10007ffc ByteArray::ByteArray(String const&, unsigned char) - -.text._ZN9ByteArraycvPhEv - 0x10008038 0xb - .text._ZN9ByteArraycvPhEv - 0x10008038 0xb ../../Library/Melon.o - 0x10008038 ByteArray::operator unsigned char*() - -.text._ZN4File4readEjPh - 0x10008044 0x41 - .text._ZN4File4readEjPh - 0x10008044 0x41 ../../Library/Melon.o - 0x10008044 File::read(unsigned int, unsigned char*) - -.text._ZN4File5writeEjPh - 0x10008086 0x46 - .text._ZN4File5writeEjPh - 0x10008086 0x46 ../../Library/Melon.o - 0x10008086 File::write(unsigned int, unsigned char*) - -.text._ZN4File4readER9ByteArray - 0x100080cc 0x89 - .text._ZN4File4readER9ByteArray - 0x100080cc 0x89 ../../Library/Melon.o - 0x100080cc File::read(ByteArray&) - -.text._ZN4File5writeER9ByteArray - 0x10008156 0x51 - .text._ZN4File5writeER9ByteArray - 0x10008156 0x51 ../../Library/Melon.o - 0x10008156 File::write(ByteArray&) - -.text._ZN4File4seekEyh - 0x100081a8 0x77 - .text._ZN4File4seekEyh - 0x100081a8 0x77 ../../Library/Melon.o - 0x100081a8 File::seek(unsigned long long, unsigned char) - -.text._ZN9ByteArrayD1Ev - 0x10008220 0x30 - .text._ZN9ByteArrayD1Ev - 0x10008220 0x30 ../../Library/Melon.o - 0x10008220 ByteArray::~ByteArray() - -.text._ZN9ByteArrayD0Ev - 0x10008250 0x30 - .text._ZN9ByteArrayD0Ev - 0x10008250 0x30 ../../Library/Melon.o - 0x10008250 ByteArray::~ByteArray() - -.text._ZN11BasicStringIhEC2Ev - 0x10008280 0x22 - .text._ZN11BasicStringIhEC2Ev - 0x10008280 0x22 ../../Library/Melon.o - 0x10008280 BasicString::BasicString() - -.text._ZN11BasicStringIhED2Ev - 0x100082a2 0x3d - .text._ZN11BasicStringIhED2Ev - 0x100082a2 0x3d ../../Library/Melon.o - 0x100082a2 BasicString::~BasicString() - -.text._ZN11BasicStringIhED1Ev - 0x100082e0 0x3d - .text._ZN11BasicStringIhED1Ev - 0x100082e0 0x3d ../../Library/Melon.o - 0x100082e0 BasicString::~BasicString() - -.text._ZN11BasicStringIhED0Ev - 0x1000831e 0x3d - .text._ZN11BasicStringIhED0Ev - 0x1000831e 0x3d ../../Library/Melon.o - 0x1000831e BasicString::~BasicString() - -.text._ZNK11BasicStringIhE4sizeEv - 0x1000835c 0xb - .text._ZNK11BasicStringIhE4sizeEv - 0x1000835c 0xb ../../Library/Melon.o - 0x1000835c BasicString::size() const - -.text._ZNK11BasicStringIhEixEi - 0x10008368 0x11 - .text._ZNK11BasicStringIhEixEi - 0x10008368 0x11 ../../Library/Melon.o - 0x10008368 BasicString::operator[](int) const - -.text._ZN11BasicStringIhE5clearEv - 0x1000837a 0x34 - .text._ZN11BasicStringIhE5clearEv - 0x1000837a 0x34 ../../Library/Melon.o - 0x1000837a BasicString::clear() - -.text._ZN11BasicStringIhEpLEh - 0x100083ae 0x21 - .text._ZN11BasicStringIhEpLEh - 0x100083ae 0x21 ../../Library/Melon.o - 0x100083ae BasicString::operator+=(unsigned char) - -.text._ZN11BasicStringIhE6appendEh - 0x100083d0 0x9c - .text._ZN11BasicStringIhE6appendEh - 0x100083d0 0x9c ../../Library/Melon.o - 0x100083d0 BasicString::append(unsigned char) - -.text._ZN5WChar6encodeEh - 0x1000846c 0x7a - .text._ZN5WChar6encodeEh - 0x1000846c 0x7a ../../Library/Melon.o - 0x1000846c WChar::encode(unsigned char) - -.text._ZNK11BasicStringI5WCharE4sizeEv - 0x100084e6 0xb - .text._ZNK11BasicStringI5WCharE4sizeEv - 0x100084e6 0xb ../../Library/Melon.o - 0x100084e6 BasicString::size() const - -.text._Znwj 0x100084f1 0x13 - .text._Znwj 0x100084f1 0x13 ../../Library/Melon.o - 0x100084f1 operator new(unsigned int) - -.text._ZN6StringC1E5WCharj - 0x10008504 0x2a - .text._ZN6StringC1E5WCharj - 0x10008504 0x2a ../../Library/Melon.o - 0x10008504 String::String(WChar, unsigned int) - -.text._ZN7OStreamD1Ev - 0x1000852e 0x30 - .text._ZN7OStreamD1Ev - 0x1000852e 0x30 ../../Library/Melon.o - 0x1000852e OStream::~OStream() - -.text._ZN7OStreamD0Ev - 0x1000855e 0x30 - .text._ZN7OStreamD0Ev - 0x1000855e 0x30 ../../Library/Melon.o - 0x1000855e OStream::~OStream() - -.text._ZN11BasicStringI5WCharEC2ES0_j - 0x1000858e 0x34 - .text._ZN11BasicStringI5WCharEC2ES0_j - 0x1000858e 0x34 ../../Library/Melon.o - 0x1000858e BasicString::BasicString(WChar, unsigned int) - -.text._ZNK11BasicStringI5WCharE5emptyEv - 0x100085c2 0x10 - .text._ZNK11BasicStringI5WCharE5emptyEv - 0x100085c2 0x10 ../../Library/Melon.o - 0x100085c2 BasicString::empty() const - -.text._ZN10SimpleListI6StringEC1ERKS0_PS1_ - 0x100085d2 0x23 - .text._ZN10SimpleListI6StringEC1ERKS0_PS1_ - 0x100085d2 0x23 ../../Library/Melon.o - 0x100085d2 SimpleList::SimpleList(String const&, SimpleList*) - -.text._ZN10SimpleListI6StringE8addAtEndERKS0_ - 0x100085f6 0x94 - .text._ZN10SimpleListI6StringE8addAtEndERKS0_ - 0x100085f6 0x94 ../../Library/Melon.o - 0x100085f6 SimpleList::addAtEnd(String const&) - -.text._ZN10SimpleListI6StringE4nextEv - 0x1000868a 0xb - .text._ZN10SimpleListI6StringE4nextEv - 0x1000868a 0xb ../../Library/Melon.o - 0x1000868a SimpleList::next() - -.text._ZN10SimpleListI6StringE1vEv - 0x10008696 0x8 - .text._ZN10SimpleListI6StringE1vEv - 0x10008696 0x8 ../../Library/Melon.o - 0x10008696 SimpleList::v() - -.text._ZN10SimpleListI6StringED1Ev - 0x1000869e 0x3c - .text._ZN10SimpleListI6StringED1Ev - 0x1000869e 0x3c ../../Library/Melon.o - 0x1000869e SimpleList::~SimpleList() - -.text._ZN11BasicStringI5WCharE6affectES0_j - 0x100086da 0xb8 - .text._ZN11BasicStringI5WCharE6affectES0_j - 0x100086da 0xb8 ../../Library/Melon.o - 0x100086da BasicString::affect(WChar, unsigned int) - -.text._ZN10SimpleListI6StringE7delThisEv - 0x10008792 0x1f - .text._ZN10SimpleListI6StringE7delThisEv - 0x10008792 0x1f ../../Library/Melon.o - 0x10008792 SimpleList::delThis() - -.text._ZN7OStreamD2Ev - 0x100087b2 0x30 - .text._ZN7OStreamD2Ev - 0x100087b2 0x30 ../../Library/Melon.o - 0x100087b2 OStream::~OStream() - -.text._ZNK15RessourceCaller5resIdEv - 0x100087e2 0xa - .text._ZNK15RessourceCaller5resIdEv - 0x100087e2 0xa ../../Library/Melon.o - 0x100087e2 RessourceCaller::resId() const - -.text._ZN4FileC1E6Stringh6FSNode - 0x100087ec 0x5f - .text._ZN4FileC1E6Stringh6FSNode - 0x100087ec 0x5f ../../Library/Melon.o - 0x100087ec File::File(String, unsigned char, FSNode) - -.text._ZN4File5closeEv - 0x1000884c 0x43 - .text._ZN4File5closeEv - 0x1000884c 0x43 ../../Library/Melon.o - 0x1000884c File::close() - -.text._ZN4File3eofEv - 0x10008890 0x48 - .text._ZN4File3eofEv - 0x10008890 0x48 ../../Library/Melon.o - 0x10008890 File::eof() - -.text._Z5doDivyjPj - 0x100088d8 0x76 - .text._Z5doDivyjPj - 0x100088d8 0x76 ../../Library/Melon.o - 0x100088d8 doDiv(unsigned long long, unsigned int, unsigned int*) - -.text._ZN6StringaSERKS_ - 0x1000894e 0x1a - .text._ZN6StringaSERKS_ - 0x1000894e 0x1a ../../Library/Melon.o - 0x1000894e String::operator=(String const&) - -.text._ZNK6StringeqEPKc - 0x10008968 0x22 - .text._ZNK6StringeqEPKc - 0x10008968 0x22 ../../Library/Melon.o - 0x10008968 String::operator==(char const*) const - -.text._ZN6StringneEPKc - 0x1000898a 0x25 - .text._ZN6StringneEPKc - 0x1000898a 0x25 ../../Library/Melon.o - 0x1000898a String::operator!=(char const*) - -.text._ZNK6StringeqERKS_ - 0x100089b0 0x1a - .text._ZNK6StringeqERKS_ - 0x100089b0 0x1a ../../Library/Melon.o - 0x100089b0 String::operator==(String const&) const - -.text._ZN6StringpLEPKc - 0x100089ca 0x22 - .text._ZN6StringpLEPKc - 0x100089ca 0x22 ../../Library/Melon.o - 0x100089ca String::operator+=(char const*) - -.text._ZNK6StringplERKS_ - 0x100089ec 0x30 - .text._ZNK6StringplERKS_ - 0x100089ec 0x30 ../../Library/Melon.o - 0x100089ec String::operator+(String const&) const - -.text._ZNK6StringplEPKc - 0x10008a1c 0x38 - .text._ZNK6StringplEPKc - 0x10008a1c 0x38 ../../Library/Melon.o - 0x10008a1c String::operator+(char const*) const - -.text._ZN7OStreamlsERK6String - 0x10008a54 0x59 - .text._ZN7OStreamlsERK6String - 0x10008a54 0x59 ../../Library/Melon.o - 0x10008a54 OStream::operator<<(String const&) - -.text._ZN7OStreamlsEi - 0x10008aae 0x3d - .text._ZN7OStreamlsEi - 0x10008aae 0x3d ../../Library/Melon.o - 0x10008aae OStream::operator<<(int) - -.text._ZN15VirtualTerminalD1Ev - 0x10008aec 0x50 - .text._ZN15VirtualTerminalD1Ev - 0x10008aec 0x50 ../../Library/Melon.o - 0x10008aec non-virtual thunk to VirtualTerminal::~VirtualTerminal() - 0x10008af4 VirtualTerminal::~VirtualTerminal() - -.text._ZN15VirtualTerminalD0Ev - 0x10008b3c 0x50 - .text._ZN15VirtualTerminalD0Ev - 0x10008b3c 0x50 ../../Library/Melon.o - 0x10008b3c non-virtual thunk to VirtualTerminal::~VirtualTerminal() - 0x10008b44 VirtualTerminal::~VirtualTerminal() - -.text._ZN15VirtualTerminal5getInEv - 0x10008b8c 0x5e - .text._ZN15VirtualTerminal5getInEv - 0x10008b8c 0x5e ../../Library/Melon.o - 0x10008b8c VirtualTerminal::getIn() - -.text._ZN15VirtualTerminal6getOutEv - 0x10008bea 0x5e - .text._ZN15VirtualTerminal6getOutEv - 0x10008bea 0x5e ../../Library/Melon.o - 0x10008bea VirtualTerminal::getOut() - -.text._ZN15VirtualTerminalC1Ej - 0x10008c48 0x58 - .text._ZN15VirtualTerminalC1Ej - 0x10008c48 0x58 ../../Library/Melon.o - 0x10008c48 VirtualTerminal::VirtualTerminal(unsigned int) - -.text._ZN15VirtualTerminal5writeERK6String - 0x10008ca0 0x45 - .text._ZN15VirtualTerminal5writeERK6String - 0x10008ca0 0x45 ../../Library/Melon.o - 0x10008ca0 VirtualTerminal::write(String const&) - -.text._ZN15VirtualTerminal4readEv - 0x10008ce6 0x1a2 - .text._ZN15VirtualTerminal4readEv - 0x10008ce6 0x1a2 ../../Library/Melon.o - 0x10008ce6 non-virtual thunk to VirtualTerminal::read() - 0x10008cee VirtualTerminal::read() - -.text._ZN7Process4argcEv - 0x10008e88 0x43 - .text._ZN7Process4argcEv - 0x10008e88 0x43 ../../Library/Melon.o - 0x10008e88 Process::argc() - -.text._ZN7Process4argvEj - 0x10008ecc 0x66 - .text._ZN7Process4argvEj - 0x10008ecc 0x66 ../../Library/Melon.o - 0x10008ecc Process::argv(unsigned int) - -.text._ZN11ApplicationC2Ev - 0x10008f32 0x22 - .text._ZN11ApplicationC2Ev - 0x10008f32 0x22 ../../Library/Melon.o - 0x10008f32 Application::Application() - -.text._ZN11ApplicationD2Ev - 0x10008f54 0x25 - .text._ZN11ApplicationD2Ev - 0x10008f54 0x25 ../../Library/Melon.o - 0x10008f54 Application::~Application() - -.text._ZN11ApplicationD1Ev - 0x10008f7a 0x25 - .text._ZN11ApplicationD1Ev - 0x10008f7a 0x25 ../../Library/Melon.o - 0x10008f7a Application::~Application() - -.text._ZN11ApplicationD0Ev - 0x10008fa0 0x25 - .text._ZN11ApplicationD0Ev - 0x10008fa0 0x25 ../../Library/Melon.o - 0x10008fa0 Application::~Application() - -.text._ZN11Application4initEv - 0x10008fc6 0x5 - .text._ZN11Application4initEv - 0x10008fc6 0x5 ../../Library/Melon.o - 0x10008fc6 Application::init() - -.text._ZN11Application8doEventsEv - 0x10008fcc 0x5 - .text._ZN11Application8doEventsEv - 0x10008fcc 0x5 ../../Library/Melon.o - 0x10008fcc Application::doEvents() - -.text._ZN11Application4exitEj - 0x10008fd2 0x35 - .text._ZN11Application4exitEj - 0x10008fd2 0x35 ../../Library/Melon.o - 0x10008fd2 Application::exit(unsigned int) - -.text._ZN6flag_tC1Ev - 0x10009008 0x3d - .text._ZN6flag_tC1Ev - 0x10009008 0x3d ../../Library/Melon.o - 0x10009008 flag_t::flag_t() - -.text._ZN6flag_tD1Ev - 0x10009046 0x32 - .text._ZN6flag_tD1Ev - 0x10009046 0x32 ../../Library/Melon.o - 0x10009046 flag_t::~flag_t() - -.text._ZNK11BasicStringI5WCharE7compareERKS1_ - 0x10009078 0x84 - .text._ZNK11BasicStringI5WCharE7compareERKS1_ - 0x10009078 0x84 ../../Library/Melon.o - 0x10009078 BasicString::compare(BasicString const&) const - -.text._ZNK11BasicStringI5WCharE8containsERKS0_ - 0x100090fc 0x5a - .text._ZNK11BasicStringI5WCharE8containsERKS0_ - 0x100090fc 0x5a ../../Library/Melon.o - 0x100090fc BasicString::contains(WChar const&) const - -.text._ZN6VectorI6StringED1Ev - 0x10009156 0x7b - .text._ZN6VectorI6StringED1Ev - 0x10009156 0x7b ../../Library/Melon.o - 0x10009156 Vector::~Vector() - -.text._ZN6VectorI6flag_tEC1Ev - 0x100091d2 0x18 - .text._ZN6VectorI6flag_tEC1Ev - 0x100091d2 0x18 ../../Library/Melon.o - 0x100091d2 Vector::Vector() - -.text._ZN6VectorI6flag_tED1Ev - 0x100091ea 0x5b - .text._ZN6VectorI6flag_tED1Ev - 0x100091ea 0x5b ../../Library/Melon.o - 0x100091ea Vector::~Vector() - -.text._ZN6VectorI6StringE5clearEv - 0x10009246 0xa4 - .text._ZN6VectorI6StringE5clearEv - 0x10009246 0xa4 ../../Library/Melon.o - 0x10009246 Vector::clear() - -.text._ZNK6VectorI6flag_tE4sizeEv - 0x100092ea 0xb - .text._ZNK6VectorI6flag_tE4sizeEv - 0x100092ea 0xb ../../Library/Melon.o - 0x100092ea Vector::size() const - -.text._ZNK6VectorI6flag_tEixEj - 0x100092f6 0x13 - .text._ZNK6VectorI6flag_tEixEj - 0x100092f6 0x13 ../../Library/Melon.o - 0x100092f6 Vector::operator[](unsigned int) const - -.text._ZN6flag_tC1ERKS_ - 0x1000930a 0x7f - .text._ZN6flag_tC1ERKS_ - 0x1000930a 0x7f ../../Library/Melon.o - 0x1000930a flag_t::flag_t(flag_t const&) - -.text._ZN6VectorI6flag_tE4pushERKS0_ - 0x1000938a 0xa4 - .text._ZN6VectorI6flag_tE4pushERKS0_ - 0x1000938a 0xa4 ../../Library/Melon.o - 0x1000938a Vector::push(flag_t const&) - -.text._ZNK6VectorI6StringE5emptyEv - 0x1000942e 0x10 - .text._ZNK6VectorI6StringE5emptyEv - 0x1000942e 0x10 ../../Library/Melon.o - 0x1000942e Vector::empty() const - -.text._ZN6FSNodeC1Ej - 0x1000943e 0x22 - .text._ZN6FSNodeC1Ej - 0x1000943e 0x22 ../../Library/Melon.o - 0x1000943e FSNode::FSNode(unsigned int) - -.text._ZN2FS7cwdNodeEv - 0x10009460 0x54 - .text._ZN2FS7cwdNodeEv - 0x10009460 0x54 ../../Library/Melon.o - 0x10009460 FS::cwdNode() - -.text._ZNK6VectorI6StringE4sizeEv - 0x100094b4 0xb - .text._ZNK6VectorI6StringE4sizeEv - 0x100094b4 0xb ../../Library/Melon.o - 0x100094b4 Vector::size() const - -.text._ZNK6VectorI6StringEixEj - 0x100094c0 0x19 - .text._ZNK6VectorI6StringEixEj - 0x100094c0 0x19 ../../Library/Melon.o - 0x100094c0 Vector::operator[](unsigned int) const - -.iplt 0x100094dc 0x0 load address 0x100094d9 - .iplt 0x00000000 0x0 ../../Library/Melon.o - -.text._ZN5WCharpLEj - 0x100094da 0x17 - .text._ZN5WCharpLEj - 0x100094da 0x17 Applets/rot13.o - 0x100094da WChar::operator+=(unsigned int) - -.text._ZN5WCharmIEj - 0x100094f2 0x17 - .text._ZN5WCharmIEj - 0x100094f2 0x17 Applets/rot13.o - 0x100094f2 WChar::operator-=(unsigned int) - -.text._ZNK7IStream3eofEv - 0x1000950a 0x26 - .text._ZNK7IStream3eofEv - 0x1000950a 0x26 Applets/rot13.o - 0x1000950a IStream::eof() const - -.text._ZN5rot13C1Ev - 0x10009530 0x76 - .text._ZN5rot13C1Ev - 0x10009530 0x76 Applets/rot13.o - 0x10009530 rot13::rot13() - -.text._ZN5rot13D1Ev - 0x100095a6 0x30 - .text._ZN5rot13D1Ev - 0x100095a6 0x30 Applets/rot13.o - 0x100095a6 rot13::~rot13() - -.text._ZN5rot13D0Ev - 0x100095d6 0x30 - .text._ZN5rot13D0Ev - 0x100095d6 0x30 Applets/rot13.o - 0x100095d6 rot13::~rot13() - -.rodata 0x1000a000 0x397 - *(.rodata) - .rodata 0x1000a000 0x376 ../../Library/Melon.o - .rodata 0x1000a376 0x21 Applets/rot13.o - -.rodata._ZTV6String - 0x1000a398 0x10 - .rodata._ZTV6String - 0x1000a398 0x10 ../../Library/Melon.o - 0x1000a398 vtable for String - -.rodata._ZTV11BasicStringI5WCharE - 0x1000a3a8 0x10 - .rodata._ZTV11BasicStringI5WCharE - 0x1000a3a8 0x10 ../../Library/Melon.o - 0x1000a3a8 vtable for BasicString - -.rodata._ZTV9ByteArray - 0x1000a3b8 0x10 - .rodata._ZTV9ByteArray - 0x1000a3b8 0x10 ../../Library/Melon.o - 0x1000a3b8 vtable for ByteArray - -.rodata._ZTV11BasicStringIhE - 0x1000a3c8 0x10 - .rodata._ZTV11BasicStringIhE - 0x1000a3c8 0x10 ../../Library/Melon.o - 0x1000a3c8 vtable for BasicString - -.rodata._ZTV7OStream - 0x1000a3d8 0x14 - .rodata._ZTV7OStream - 0x1000a3d8 0x14 ../../Library/Melon.o - 0x1000a3d8 vtable for OStream - -.rodata._ZTV7IStream - 0x1000a3f0 0x14 - .rodata._ZTV7IStream - 0x1000a3f0 0x14 ../../Library/Melon.o - 0x1000a3f0 vtable for IStream - -.rodata._ZTV11FileOStream - 0x1000a408 0x14 - .rodata._ZTV11FileOStream - 0x1000a408 0x14 ../../Library/Melon.o - 0x1000a408 vtable for FileOStream - -.rodata._ZTV11FileIStream - 0x1000a420 0x14 - .rodata._ZTV11FileIStream - 0x1000a420 0x14 ../../Library/Melon.o - 0x1000a420 vtable for FileIStream - -.rodata._ZTV13StringIStream - 0x1000a438 0x14 - .rodata._ZTV13StringIStream - 0x1000a438 0x14 ../../Library/Melon.o - 0x1000a438 vtable for StringIStream - -.rodata._ZTV8ShellApp - 0x1000a450 0x1c - .rodata._ZTV8ShellApp - 0x1000a450 0x1c ../../Library/Melon.o - 0x1000a450 vtable for ShellApp - -.rodata._ZTV11Application - 0x1000a470 0x1c - .rodata._ZTV11Application - 0x1000a470 0x1c ../../Library/Melon.o - 0x1000a470 vtable for Application - -.rodata._ZTV15VirtualTerminal - 0x1000a4a0 0x2c - .rodata._ZTV15VirtualTerminal - 0x1000a4a0 0x2c ../../Library/Melon.o - 0x1000a4a0 vtable for VirtualTerminal - -.rodata._ZTV9StreamApp - 0x1000a4d0 0x1c - .rodata._ZTV9StreamApp - 0x1000a4d0 0x1c ../../Library/Melon.o - 0x1000a4d0 vtable for StreamApp - -.rodata._ZTV5rot13 - 0x1000a4f0 0x1c - .rodata._ZTV5rot13 - 0x1000a4f0 0x1c Applets/rot13.o - 0x1000a4f0 vtable for rot13 - -.rel.dyn 0x1000a50c 0x0 - .rel.iplt 0x00000000 0x0 ../../Library/Melon.o - .rel.text 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6Thread3getEv - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN7Process3getEv - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6StringC1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6StringC1ERKS_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6StringpLERKS_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6StringpLE5WChar - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6StringD1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6StringD0Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringI5WCharEC2Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringI5WCharED2Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringI5WCharED1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringI5WCharED0Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringI5WCharEC2ERKS1_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringI5WCharE6affectERKS1_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringI5WCharE6appendERKS1_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringI5WCharE6appendES0_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6VectorI6StringE4pushERKS0_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN9ByteArrayC1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN9ByteArrayC1ERK6Stringh - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN4File4readER9ByteArray - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN4File5writeER9ByteArray - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN9ByteArrayD1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN9ByteArrayD0Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringIhEC2Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringIhED2Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringIhED1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringIhED0Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringIhE5clearEv - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringIhEpLEh - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringIhE6appendEh - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6StringC1E5WCharj - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN7OStreamD1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN7OStreamD0Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringI5WCharEC2ES0_j - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN10SimpleListI6StringEC1ERKS0_PS1_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN10SimpleListI6StringE8addAtEndERKS0_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN10SimpleListI6StringED1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11BasicStringI5WCharE6affectES0_j - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN7OStreamD2Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN4FileC1E6Stringh6FSNode - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6StringaSERKS_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZNK6StringeqERKS_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN7OStreamlsERK6String - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN7OStreamlsEi - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN15VirtualTerminalD1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN15VirtualTerminalD0Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN15VirtualTerminal5getInEv - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN15VirtualTerminal6getOutEv - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN15VirtualTerminalC1Ej - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN15VirtualTerminal4readEv - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11ApplicationC2Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11ApplicationD2Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11ApplicationD1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11ApplicationD0Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN11Application4exitEj - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6flag_tC1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6flag_tD1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZNK11BasicStringI5WCharE7compareERKS1_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZNK11BasicStringI5WCharE8containsERKS0_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6VectorI6flag_tED1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6VectorI6StringE5clearEv - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6flag_tC1ERKS_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN6VectorI6flag_tE4pushERKS0_ - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN2FS7cwdNodeEv - 0x00000000 0x0 ../../Library/Melon.o - .rel.rodata._ZTV6String - 0x00000000 0x0 ../../Library/Melon.o - .rel.rodata._ZTV11BasicStringI5WCharE - 0x00000000 0x0 ../../Library/Melon.o - .rel.rodata._ZTV9ByteArray - 0x00000000 0x0 ../../Library/Melon.o - .rel.rodata._ZTV11BasicStringIhE - 0x00000000 0x0 ../../Library/Melon.o - .rel.rodata._ZTV7OStream - 0x00000000 0x0 ../../Library/Melon.o - .rel.rodata._ZTV8ShellApp - 0x00000000 0x0 ../../Library/Melon.o - .rel.rodata._ZTV11Application - 0x00000000 0x0 ../../Library/Melon.o - .rel.rodata._ZTV15VirtualTerminal - 0x00000000 0x0 ../../Library/Melon.o - .rel.rodata._ZTV9StreamApp - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN5rot13C1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.rodata._ZTV5rot13 - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN5rot13D1Ev - 0x00000000 0x0 ../../Library/Melon.o - .rel.text._ZN5rot13D0Ev - 0x00000000 0x0 ../../Library/Melon.o - -.data 0x1000b000 0x24 - 0x1000b000 start_ctors = . - *(.ctor*) - .ctors 0x1000b000 0x4 ../../Library/Melon.o - .ctors 0x1000b004 0x4 Applets/rot13.o - 0x1000b008 end_ctors = . - 0x1000b008 start_dtors = . - *(.dtor*) - 0x1000b008 end_dtors = . - *(.data) - .data 0x1000b008 0x18 ../../Library/Melon.o - 0x1000b008 Rand::m - 0x1000b00c Rand::a - 0x1000b010 Rand::b - 0x1000b018 Rand::current - .data 0x1000b020 0x4 Applets/rot13.o - 0x1000b020 app - -.igot.plt 0x1000b024 0x0 - .igot.plt 0x00000000 0x0 ../../Library/Melon.o - -.bss 0x1000b040 0x2b4 - 0x1000b040 sbss = . - *(COMMON) - *(.bss) - .bss 0x1000b040 0x208 ../../Library/Melon.o - 0x1000b040 WChar::CP437 - 0x1000b240 __dso_handle - 0x1000b244 heap - *fill* 0x1000b248 0x18 00 - .bss 0x1000b260 0x94 Applets/rot13.o - 0x1000b2f4 ebss = . - 0x1000b2f4 end = . - 0x1000b2f4 _end = . - 0x1000b2f4 __end = . -LOAD Applets/rot13.o -OUTPUT(Applets/rot13 elf32-i386) - -.note.GNU-stack - 0x00000000 0x0 - .note.GNU-stack - 0x00000000 0x0 ../../Library/Melon.o - .note.GNU-stack - 0x00000000 0x0 Applets/rot13.o - -.comment 0x00000000 0x27 - .comment 0x00000000 0x27 ../../Library/Melon.o - 0x2f8 (size before relaxing) - .comment 0x00000000 0x28 Applets/rot13.o -- cgit v1.2.3