summaryrefslogtreecommitdiff
path: root/src/user/lib/fwik/io
diff options
context:
space:
mode:
Diffstat (limited to 'src/user/lib/fwik/io')
-rw-r--r--src/user/lib/fwik/io/Dir.cpp37
-rw-r--r--src/user/lib/fwik/io/IOStream.cpp19
-rw-r--r--src/user/lib/fwik/io/Node.cpp118
-rw-r--r--src/user/lib/fwik/io/Term.cpp62
4 files changed, 0 insertions, 236 deletions
diff --git a/src/user/lib/fwik/io/Dir.cpp b/src/user/lib/fwik/io/Dir.cpp
deleted file mode 100644
index cfcc77b..0000000
--- a/src/user/lib/fwik/io/Dir.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <IO/Dir.h>
-
-Dir::Dir(const Node &n) : Node(n) {
- _init();
-}
-
-Dir::Dir(FILE f) : Node(f) {
- _init();
- if (error == E_INVALID_TYPE) libc::close(fd);
-}
-
-Dir::Dir(const char* filename, int mode) : Node(filename, mode) {
- _init();
- if (error == E_INVALID_TYPE) libc::close(fd);
-}
-
-void Dir::_init() {
- if (error < 0) return;
- pos = 0;
- if ((info.type & FT_DIR) == 0) {
- error = E_INVALID_TYPE;
- }
-}
-
-Dir::~Dir() {
-}
-
-String Dir::read_ent() {
- char buf[256];
- int l = libc::read(fd, pos, 256, buf);
- if (l > 0) {
- pos++;
- return String(buf, l);
- } else {
- return "";
- }
-}
diff --git a/src/user/lib/fwik/io/IOStream.cpp b/src/user/lib/fwik/io/IOStream.cpp
deleted file mode 100644
index 9d13251..0000000
--- a/src/user/lib/fwik/io/IOStream.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-#include <IO/IOStream.h>
-
-void IOStream::print(const char* str) {
- if (term == 0) return;
- term->print(str);
-}
-
-void IOStream::printf(const char* fmt, ...) {
- if (term == 0) return;
- va_list ap;
- va_start(ap, fmt);
- term->vprintf(fmt, ap);
- va_end(ap);
-}
-
-String IOStream::readln() {
- if (term == 0) return "";
- return term->readln();
-}
diff --git a/src/user/lib/fwik/io/Node.cpp b/src/user/lib/fwik/io/Node.cpp
deleted file mode 100644
index 5585aa8..0000000
--- a/src/user/lib/fwik/io/Node.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-#include <IO/Node.h>
-
-Node::Node(FILE f) {
- fd = f;
- error = libc::statf(f, &info);
-}
-
-Node::Node(const char* filename, int mode) {
- fd = libc::open(filename, mode);
- if (fd < 0) {
- if (fd != E_NOT_FOUND) error = libc::stat(filename, &info);
- } else {
- int i = libc::statf(fd, &info);
- error = i;
- if (error < 0) libc::close(fd);
- }
-}
-
-Node::Node(FILE parent, const char* filename, int mode) {
- fd = libc::open_relative(parent, filename, mode);
- if (fd < 0) {
- if (fd != E_NOT_FOUND) error = libc::stat_relative(parent, filename, &info);
- } else {
- int i = libc::statf(fd, &info);
- error = i;
- if (error < 0) libc::close(fd);
- }
-}
-
-void Node::close() {
- if (error == 0) libc::close(fd);
- error = E_INVALID_FD;
-}
-
-////////
-
-static void simplify_path(char* p) {
- char *it = p;
- char *member = it;
- while (*it != 0) {
- if (*it == '/') {
- if (it == member && it != p) {
- // two consecutive slashes
- char *i = member;
- while (1) {
- i[0] = i[1];
- if (i[0] == 0) break;
- i++;
- }
- } else {
- *it = 0;
- if (libc::strcmp(member, ".") == 0) {
- char *i = member;
- while (1) {
- i[0] = i[2];
- if (i[0] == 0) break;
- i++;
- }
- } else if (libc::strcmp(member, "..") == 0) {
- *it = '/';
- char* start = member - 2;
- char* next = member + 3;
- while (start > p && *start != '/') {
- start--;
- }
- start++;
- it = member = start;
- while (1) {
- *start = *next;
- if (*start == 0) break;
- start++;
- next++;
- }
- } else {
- *it = '/';
- it++;
- member = it;
- }
- }
- } else {
- it++;
- }
- }
-}
-
-String path_cat(const String &a, const String &b, bool trailing_slash) {
- int len, la = a.size(), lb = b.size();
- if (b[0] == '/') {
- len = lb + 2;
- } else {
- len = la + lb + 3;
- }
- char buf[len];
- if (b[0] == '/') {
- libc::memcpy(buf, b.c_str(), lb);
- if (buf[lb-1] != '/') {
- buf[lb++] = '/';
- }
- buf[lb] = 0;
- } else {
- libc::memcpy(buf, a.c_str(), la);
- if (buf[la-1] != '/') {
- buf[la++] = '/';
- }
- libc::memcpy(buf + la, b.c_str(), lb);
- if (buf[la + lb - 1] != '/') {
- buf[la + lb] = '/';
- lb++;
- }
- buf[la + lb] = 0;
- }
- simplify_path(buf);
- if (!trailing_slash) {
- int l = libc::strlen(buf);
- if (buf[l-1] == '/') buf[l-1] = 0;
- }
- return String(buf);
-}
diff --git a/src/user/lib/fwik/io/Term.cpp b/src/user/lib/fwik/io/Term.cpp
deleted file mode 100644
index f8f686e..0000000
--- a/src/user/lib/fwik/io/Term.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-#include <IO/Term.h>
-
-Term::Term(const Node &n) : Node(n) {
- _init();
-}
-
-Term::Term(FILE f) : Node(f) {
- _init();
- if (error E_INVALID_TYPE) libc::close(fd);
-}
-
-Term::Term(const char* filename, int mode) : Node(filename, mode) {
- _init();
- if (error == E_INVALID_TYPE) libc::close(fd);
-}
-
-void Term::_init() {
- if (error < 0) return;
- if (info.type & FT_TERMINAL) {
- w = info.size >> 16;
- h = info.size & 0xFFFF;
- } else {
- error = E_INVALID_TYPE;
- }
- hist.str = 0;
- hist.max = 12;
-}
-
-Term::~Term() {
- if (hist.str != 0) {
- for (int i = 0; i < hist.max; i++) {
- if (hist.str[i] != 0) free(hist.str[i]);
- }
- free(hist.str);
- }
-}
-
-void Term::print(const char *s) {
- libc::fprint(fd, s);
-}
-
-void Term::printf(const char* fmt, ...) {
- va_list ap;
- va_start(ap, fmt);
- libc::vfprintf(fd, fmt, ap);
- va_end(ap);
-}
-
-void Term::vprintf(const char* fmt, va_list ap) {
- libc::vfprintf(fd, fmt, ap);
-}
-
-String Term::readln() {
- char *s = libc::freadln(fd);
- String ret(s);
- free(s);
- return ret;
-}
-
-String Term::readline() {
- return String(libc::freadline(fd, &hist));
-}