- std::string begin(prefix.str());
-
- driver.program_ = $ CYProgram($ CYExpress($C3(ParseExpression(
- " function(object, prefix, word) {\n"
- " var names = [];\n"
- " var before = prefix.length;\n"
- " prefix += word;\n"
- " var entire = prefix.length;\n"
- " for (name in object)\n"
- " if (name.substring(0, entire) == prefix)\n"
- " names.push(name.substr(before));\n"
- " return names;\n"
- " }\n"
- ), expression, $S(begin.c_str()), $S(word))));
-
- driver.program_->Replace(context);
-
- std::ostringstream str;
- CYOutput out(str, options);
- out << *driver.program_;
-
- std::string code(str.str());
- CYUTF8String json(Run(pool, client_, code));
- // XXX: if this fails we should not try to parse it
-
- CYExpression *result(ParseExpression(json));
- if (result == NULL)
- return NULL;
-
- CYArray *array(dynamic_cast<CYArray *>(result));
-
- if (array == NULL) {
- *out_ << '\n';
- Output(false, json, out_);
- rl_forced_update_display();
- return NULL;
+// need char *, not const char *
+static char name_[] = "cycript";
+static char break_[] = " \t\n\"\\'`@><=;|&{(" ")}" ".:[]";
+
+class History {
+ private:
+ std::string histfile_;
+ size_t histlines_;
+
+ public:
+ History(std::string histfile) :
+ histfile_(histfile),
+ histlines_(0)
+ {
+ read_history(histfile_.c_str());