gmrun-0.9.2/0000777000175000001440000000000007755656400006431 5gmrun-0.9.2/src/0000777000175000001440000000000007755656400007220 5gmrun-0.9.2/src/gtkcompletionline.h0000644000175000001440000000501207755652324013033 /***************************************************************************** * $Id: gtkcompletionline.h,v 1.12 2003/11/16 10:43:32 andreas99 Exp $ * Copyright (C) 2000, Mishoo * Author: Mihai Bazon Email: mishoo@fenrir.infoiasi.ro * * Distributed under the terms of the GNU General Public License. You are * free to use/modify/distribute this program as long as you comply to the * terms of the GNU General Public License, version 2 or above, at your * option, and provided that this copyright notice remains intact. *****************************************************************************/ #ifndef __GTKCOMPLETIONLINE_H__ #define __GTKCOMPLETIONLINE_H__ #include #include #include "history.h" extern "C++" { #define GTK_COMPLETION_LINE(obj) \ GTK_CHECK_CAST(obj, gtk_completion_line_get_type(), GtkCompletionLine) #define GTK_COMPLETION_LINE_CLASS(klass) \ GTK_CHECK_CLASS_CAST(klass, gtk_completion_line_get_type(), GtkCompletionLineClass) #define IS_GTK_COMPLETION_LINE(obj) \ GTK_CHECK_TYPE(obj, gtk_completion_line_get_type()) typedef struct _GtkCompletionLine GtkCompletionLine; typedef struct _GtkCompletionLineClass GtkCompletionLineClass; enum GCL_SEARCH_MODE { GCL_SEARCH_OFF = 0, GCL_SEARCH_REW = 1, GCL_SEARCH_FWD = 2, GCL_SEARCH_BEG = 3 }; struct _GtkCompletionLine { GtkEntry parent; GtkWidget *win_compl; GtkWidget *list_compl; int list_compl_items_where; int list_compl_nr_rows; int pos_in_text; GList *cmpl; GList *where; HistoryFile *hist; GCL_SEARCH_MODE hist_search_mode; std::string *hist_word; int first_key; int tabtimeout; int show_dot_files; }; struct _GtkCompletionLineClass { GtkEntryClass parent_class; /* add your CLASS members here */ void (* unique)(GtkCompletionLine *cl); void (* notunique)(GtkCompletionLine *cl); void (* incomplete)(GtkCompletionLine *cl); void (* runwithterm)(GtkCompletionLine *cl); void (* search_mode)(GtkCompletionLine *cl); void (* search_letter)(GtkCompletionLine *cl); void (* search_not_found)(GtkCompletionLine *cl); void (* ext_handler)(GtkCompletionLine *cl); void (* cancel)(GtkCompletionLine *cl); }; guint gtk_completion_line_get_type(void); GtkWidget *gtk_completion_line_new(); void gtk_completion_line_last_history_item(GtkCompletionLine*); } #endif /* __GTKCOMPLETIONLINE_H__ */ // Local Variables: *** // mode: c++ *** // c-basic-offset: 2 *** // End: *** gmrun-0.9.2/src/ci_string.h0000644000175000001440000000172007300510443011244 // $Id: ci_string.h,v 1.2 2001/05/16 14:39:31 mishoo Exp $ // This is a very nice class, probably because it's not coded by me ;=]~ // Provide a case-insensitive std::string-like class. #ifndef __CI_STRING_H__ #define __CI_STRING_H__ #include #include struct ci_char_traits : public std::char_traits { static bool eq( char c1, char c2 ) { return ::tolower(c1) == ::tolower(c2); } static bool ne( char c1, char c2 ) { return ::tolower(c1) != ::tolower(c2); } static bool lt( char c1, char c2 ) { return ::tolower(c1) < ::tolower(c2); } static int compare( const char* s1, const char* s2, size_t n ) { return ::strncasecmp( s1, s2, n ); } static const char* find( const char* s, int n, char a ) { while ( n-- > 0 && ::tolower(*s) != ::tolower(a) ) ++s; return s; } }; typedef std::basic_string ci_string; #endif // __CI_STRING_H__ gmrun-0.9.2/src/main.cc0000644000175000001440000004131707755653613010400 /***************************************************************************** * $Id: main.cc,v 1.26 2003/11/16 10:55:07 andreas99 Exp $ * Copyright (C) 2000, Mishoo * Author: Mihai Bazon Email: mishoo@fenrir.infoiasi.ro * * Distributed under the terms of the GNU General Public License. You are * free to use/modify/distribute this program as long as you comply to the * terms of the GNU General Public License, version 2 or above, at your * option, and provided that this copyright notice remains intact. *****************************************************************************/ #include #include #include #include #include #include #include #include #include using namespace std; #ifdef MTRACE #include #endif #include #include #include "gtkcompletionline.h" #include "prefs.h" // defined in gtkcompletionline.cc int get_words(GtkCompletionLine *object, vector& words); string quote_string(const string& str); struct gigi { GtkWidget *w1; GtkWidget *w2; }; /// BEGIN: TIMEOUT MANAGEMENT static gint search_off_timeout(struct gigi *g); static guint g_search_off_timeout_id = 0; static void remove_search_off_timeout() { if (g_search_off_timeout_id) { gtk_timeout_remove(g_search_off_timeout_id); g_search_off_timeout_id = 0; } } static void add_search_off_timeout(guint32 timeout, struct gigi *g, GtkFunction func = 0) { remove_search_off_timeout(); if (!func) func = GtkFunction(search_off_timeout); g_search_off_timeout_id = gtk_timeout_add(timeout, func, g); } /// END: TIMEOUT MANAGEMENT GtkStyle* style_normal(GtkWidget *w) { static GtkStyle *style; if (!style) { style = gtk_style_copy(gtk_widget_get_style(w)); style->fg[GTK_STATE_NORMAL] = (GdkColor){0, 0x0000, 0x0000, 0x0000}; gtk_style_ref(style); } return style; } GtkStyle* style_notfound(GtkWidget *w) { static GtkStyle *style; if (!style) { style = gtk_style_copy(gtk_widget_get_style(w)); style->fg[GTK_STATE_NORMAL] = (GdkColor){0, 0xFFFF, 0x0000, 0x0000}; gtk_style_ref(style); } return style; } GtkStyle* style_notunique(GtkWidget *w) { static GtkStyle *style; if (!style) { style = gtk_style_copy(gtk_widget_get_style(w)); style->fg[GTK_STATE_NORMAL] = (GdkColor){0, 0x0000, 0x0000, 0xFFFF}; gtk_style_ref(style); } return style; } GtkStyle* style_unique(GtkWidget *w) { static GtkStyle *style; if (!style) { style = gtk_style_copy(gtk_widget_get_style(w)); style->fg[GTK_STATE_NORMAL] = (GdkColor){0, 0x0000, 0xFFFF, 0x0000}; gtk_style_ref(style); } return style; } static void run_with_system(const std::string& command, struct gigi* g) { string cmd(command); cmd += '&'; int ret = system(cmd.c_str()); #ifdef DEBUG cerr << "System exit code: " << ret << endl; #endif if (ret != -1) gtk_main_quit(); else { string error("ERROR: "); error += strerror(errno); #ifdef DEBUG cerr << error << endl; #endif gtk_label_set_text(GTK_LABEL(g->w1), error.c_str()); gtk_widget_set_style(g->w1, style_notfound(g->w1)); add_search_off_timeout(2000, g); } } #ifdef USE_SYSTEM // this version uses the "system" libc function to execute commands. static void run_the_command(const std::string& command, struct gigi* g) { run_with_system(command, g); } #else // a more elaborate function to avoid system.. though I think that most will // prefer the above one. I don't even remember why I coded this... but let it // be there. static void run_the_command(const std::string& command, struct gigi* g) { string prog; std::vector argv; string cmd = command + ' '; istringstream iss(cmd); #ifdef DEBUG cerr << cmd << endl; #endif char what_quote = '"'; enum TYPE_CONTEXT { CT_NORMAL = 0, CT_QUOTE, CT_ESCAPE }; TYPE_CONTEXT context = CT_NORMAL; TYPE_CONTEXT save_context = CT_NORMAL; string tmp; char c; while (!iss.eof()) { c = (char)iss.get(); if (iss.eof()) { break; } switch (c) { case '\\': if (context != CT_ESCAPE) { save_context = context; context = CT_ESCAPE; } else { goto ordinary; } break; case '\'': case '"': if (context == CT_ESCAPE) { goto ordinary; } else { if (context == CT_QUOTE) { if (what_quote == c) { context = CT_NORMAL; } else { goto ordinary; } } else { context = CT_QUOTE; what_quote = c; } } break; case ' ': if (context == CT_ESCAPE || context == CT_QUOTE) { goto ordinary; } else if (!tmp.empty()) { if (prog.empty()) { prog = tmp; } char *p = (char*)malloc(tmp.length() + 1); memcpy(p, tmp.c_str(), tmp.length() + 1); argv.push_back(p); tmp.clear(); } break; ordinary: default: if (context == CT_ESCAPE) { context = save_context; tmp += c; } else if (context == CT_QUOTE) { tmp += c; } else if (c != ' ') { tmp += c; } } } argv.push_back(NULL); #ifdef DEBUG for (vector::iterator i = argv.begin(); i != argv.end(); ++i) { if (*i) { cerr << "'" << *i << "'" << endl; } } #endif execvp(prog.c_str(), (char**)&(*argv.begin())); string error("ERROR: "); error += strerror(errno); #ifdef DEBUG cerr << error << endl; #endif gtk_label_set_text(GTK_LABEL(g->w1), error.c_str()); gtk_widget_set_style(g->w1, style_notfound(g->w1)); add_search_off_timeout(2000, g); } #endif static void on_ext_handler(GtkCompletionLine *cl, const char* ext, struct gigi* g) { string cmd; if (ext && configuration.get_ext_handler(ext, cmd)) { string str("Handler: "); size_t pos = cmd.find_first_of(" \t"); if (pos == string::npos) str += cmd; else str += cmd.substr(0, pos); gtk_label_set_text(GTK_LABEL(g->w2), str.c_str()); gtk_widget_show(g->w2); // gtk_timeout_add(1000, GtkFunction(search_off_timeout), g); } else { search_off_timeout(g); } } static void on_compline_runwithterm(GtkCompletionLine *cl, struct gigi* g) { string command(g_locale_from_utf8 (gtk_entry_get_text(GTK_ENTRY(cl)), -1, NULL, NULL, NULL)); string tmp; string term; string::size_type i; i = command.find_first_not_of(" \t"); if (i != string::npos) { if (!configuration.get_string("TermExec", term)) { term = "xterm -e"; } tmp = term; tmp += " '"; tmp += command + "'"; } else { if (!configuration.get_string("Terminal", term)) { tmp = "xterm"; } else { tmp = term; } } #ifdef DEBUG cerr << tmp << endl; #endif cl->hist->append(command.c_str()); cl->hist->sync_the_file(); run_with_system(tmp.c_str(), g); } static gint search_off_timeout(struct gigi *g) { gtk_label_set_text(GTK_LABEL(g->w1), "Run program:"); gtk_widget_set_style(g->w1, style_normal(g->w1)); gtk_widget_hide(g->w2); return FALSE; } static void on_compline_unique(GtkCompletionLine *cl, struct gigi *g) { gtk_label_set_text(GTK_LABEL(g->w1), "unique"); gtk_widget_set_style(g->w1, style_unique(g->w1)); add_search_off_timeout(1000, g); } static void on_compline_notunique(GtkCompletionLine *cl, struct gigi *g) { gtk_label_set_text(GTK_LABEL(g->w1), "not unique"); gtk_widget_set_style(g->w1, style_notunique(g->w1)); add_search_off_timeout(1000, g); } static void on_compline_incomplete(GtkCompletionLine *cl, struct gigi *g) { gtk_label_set_text(GTK_LABEL(g->w1), "not found"); gtk_widget_set_style(g->w1, style_notfound(g->w1)); add_search_off_timeout(1000, g); } static void on_search_mode(GtkCompletionLine *cl, struct gigi *g) { if (cl->hist_search_mode != GCL_SEARCH_OFF) { gtk_widget_show(g->w2); gtk_label_set_text(GTK_LABEL(g->w1), "Search:"); gtk_label_set_text(GTK_LABEL(g->w2), cl->hist_word->c_str()); } else { gtk_widget_hide(g->w2); gtk_label_set_text(GTK_LABEL(g->w1), "Search OFF"); add_search_off_timeout(1000, g); } } static void on_search_letter(GtkCompletionLine *cl, GtkWidget *label) { gtk_label_set_text(GTK_LABEL(label), cl->hist_word->c_str()); } static gint search_fail_timeout(struct gigi *g) { gtk_label_set_text(GTK_LABEL(g->w1), "Search:"); gtk_widget_set_style(g->w2, style_notunique(g->w2)); return FALSE; } static void on_search_not_found(GtkCompletionLine *cl, struct gigi *g) { gtk_label_set_text(GTK_LABEL(g->w1), "Not Found!"); gtk_widget_set_style(g->w2, style_notfound(g->w2)); add_search_off_timeout(1000, g, GtkFunction(search_fail_timeout)); } static bool url_check(GtkCompletionLine *cl, struct gigi *g) { string text(g_locale_from_utf8 (gtk_entry_get_text(GTK_ENTRY(cl)), -1, NULL, NULL, NULL)); string::size_type i; string::size_type sp; sp = text.find_first_not_of(" \t"); if (sp == string::npos) return true; text = text.substr(sp); sp = text.find_first_of(" \t"); i = text.find(":"); if (i != string::npos && i < sp) { // URL entered... string url(text.substr(i + 1)); string url_type(text.substr(0, i)); string url_handler; if (configuration.get_string(string("URL_") + url_type, url_handler)) { string::size_type j = 0; do { j = url_handler.find("%s", j); if (j != string::npos) { url_handler.replace(j, 2, url); } } while (j != string::npos); j = 0; do { j = url_handler.find("%u", j); if (j != string::npos) { url_handler.replace(j, 2, text); } } while (j != string::npos); cl->hist->append(text.c_str()); cl->hist->sync_the_file(); run_the_command(url_handler.c_str(), g); return true; } else { gtk_label_set_text(GTK_LABEL(g->w1), (string("No URL handler for [") + url_type + "]").c_str()); gtk_widget_set_style(g->w1, style_notfound(g->w1)); add_search_off_timeout(1000, g); return true; } } return false; } static bool ext_check(GtkCompletionLine *cl, struct gigi *g) { vector words; get_words(cl, words); vector::const_iterator i = words.begin(), i_end = words.end(); while (i != i_end) { const string& w = quote_string(*i++); if (w[0] == '/') { // absolute path, check for extension size_t pos = w.rfind('.'); if (pos != string::npos) { // we have extension string ext = w.substr(pos + 1); string ext_handler; if (configuration.get_ext_handler(ext, ext_handler)) { // we have the handler pos = ext_handler.find("%s"); if (pos != string::npos) ext_handler.replace(pos, 2, w); cl->hist->append(w.c_str()); cl->hist->sync_the_file(); run_the_command(ext_handler.c_str(), g); return true; } } } // FIXME: for now we check only one entry break; } return false; } static void on_compline_activated(GtkCompletionLine *cl, struct gigi *g) { if (url_check(cl, g)) return; if (ext_check(cl, g)) return; string command = g_locale_from_utf8 (gtk_entry_get_text(GTK_ENTRY(cl)), -1, NULL, NULL, NULL); string::size_type i; i = command.find_first_not_of(" \t"); if (i != string::npos) { string::size_type j = command.find_first_of(" \t", i); string progname = command.substr(i, j - i); list term_progs; if (configuration.get_string_list("AlwaysInTerm", term_progs)) { #ifdef DEBUG cerr << "---" << std::endl; std::copy(term_progs.begin(), term_progs.end(), std::ostream_iterator(cerr, "\n")); cerr << "---" << std::endl; #endif list::const_iterator w = std::find(term_progs.begin(), term_progs.end(), progname); if (w != term_progs.end()) { on_compline_runwithterm(cl, g); return; } } cl->hist->append(command.c_str()); cl->hist->sync_the_file(); run_the_command(command, g); } } int main(int argc, char **argv) { GtkWidget *win; GtkWidget *compline; GtkWidget *label_search; struct gigi g; #ifdef MTRACE mtrace(); #endif gtk_init(&argc, &argv); win = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_realize(win); gdk_window_set_decorations(win->window, GDK_DECOR_BORDER); gtk_widget_set_name(win, "Msh_Run_Window"); gtk_window_set_title(GTK_WINDOW(win), "Execute program feat. completion"); gtk_window_set_policy(GTK_WINDOW(win), FALSE, FALSE, TRUE); // gtk_window_set_position(GTK_WINDOW(win), GTK_WIN_POS_CENTER); gtk_container_set_border_width(GTK_CONTAINER(win), 4); gtk_signal_connect(GTK_OBJECT(win), "destroy", GTK_SIGNAL_FUNC(gtk_main_quit), NULL); GtkWidget *hbox = gtk_vbox_new(FALSE, 2); gtk_widget_show(hbox); gtk_container_add(GTK_CONTAINER(win), hbox); GtkWidget *hhbox = gtk_hbox_new(FALSE, 2); gtk_widget_show(hhbox); gtk_box_pack_start(GTK_BOX(hbox), hhbox, FALSE, FALSE, 0); GtkWidget *label = gtk_label_new("Run program:"); gtk_widget_show(label); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 1.0); gtk_misc_set_padding(GTK_MISC(label), 10, 0); gtk_box_pack_start(GTK_BOX(hhbox), label, FALSE, FALSE, 0); label_search = gtk_label_new(""); gtk_widget_show(label_search); gtk_misc_set_alignment(GTK_MISC(label_search), 1.0, 0.5); gtk_misc_set_padding(GTK_MISC(label_search), 10, 0); gtk_box_pack_start(GTK_BOX(hhbox), label_search, TRUE, TRUE, 0); compline = gtk_completion_line_new(); gtk_widget_set_name(compline, "Msh_Run_Compline"); int prefs_width; if (!configuration.get_int("Width", prefs_width)) prefs_width = 500; // don't show files starting with "." by default if (!configuration.get_int("ShowDotFiles", GTK_COMPLETION_LINE(compline)->show_dot_files)) GTK_COMPLETION_LINE(compline)->show_dot_files = 0; { int tmp; if (configuration.get_int("TabTimeout", tmp)) ((GtkCompletionLine*)compline)->tabtimeout = tmp; } g.w1 = label; g.w2 = label_search; gtk_widget_set_usize(compline, prefs_width, -2); gtk_signal_connect(GTK_OBJECT(compline), "cancel", GTK_SIGNAL_FUNC(gtk_main_quit), NULL); gtk_signal_connect(GTK_OBJECT(compline), "activate", GTK_SIGNAL_FUNC(on_compline_activated), &g); gtk_signal_connect(GTK_OBJECT(compline), "runwithterm", GTK_SIGNAL_FUNC(on_compline_runwithterm), &g); gtk_signal_connect(GTK_OBJECT(compline), "unique", GTK_SIGNAL_FUNC(on_compline_unique), &g); gtk_signal_connect(GTK_OBJECT(compline), "notunique", GTK_SIGNAL_FUNC(on_compline_notunique), &g); gtk_signal_connect(GTK_OBJECT(compline), "incomplete", GTK_SIGNAL_FUNC(on_compline_incomplete), &g); gtk_signal_connect(GTK_OBJECT(compline), "search_mode", GTK_SIGNAL_FUNC(on_search_mode), &g); gtk_signal_connect(GTK_OBJECT(compline), "search_not_found", GTK_SIGNAL_FUNC(on_search_not_found), &g); gtk_signal_connect(GTK_OBJECT(compline), "search_letter", GTK_SIGNAL_FUNC(on_search_letter), label_search); gtk_signal_connect(GTK_OBJECT(compline), "ext_handler", GTK_SIGNAL_FUNC(on_ext_handler), &g); gtk_widget_show(compline); int shows_last_history_item; if (!configuration.get_int("ShowLast", shows_last_history_item)) { shows_last_history_item = 0; } if (shows_last_history_item) { gtk_completion_line_last_history_item(GTK_COMPLETION_LINE(compline)); } gtk_box_pack_start(GTK_BOX(hbox), compline, TRUE, TRUE, 0); int prefs_top = 80; int prefs_left = 100; configuration.get_int("Top", prefs_top); configuration.get_int("Left", prefs_left); // parse commandline options gboolean geo_parsed; char geo_option[30] = ""; char *geoptr; poptContext context; int option; geoptr = geo_option; struct poptOption options[] = { { "geometry", 'g', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, &geoptr, 0, "This option specifies the initial " "size and location of the window.", NULL }, POPT_AUTOHELP { NULL, '\0', 0, NULL, 0 } }; context = poptGetContext("popt1", argc, (const char**) argv, options, 0); option = poptGetNextOpt (context); if (strcmp (geoptr, "")) { geo_parsed = gtk_window_parse_geometry (GTK_WINDOW (win), geoptr); } else { gtk_widget_set_uposition(win, prefs_left, prefs_top); } gtk_widget_show(win); gtk_window_set_focus(GTK_WINDOW(win), compline); gtk_main(); } // Local Variables: *** // mode: c++ *** // c-basic-offset: 2 *** // End: *** gmrun-0.9.2/src/gtkcompletionline.cc0000644000175000001440000007523607755653613013212 /***************************************************************************** * $Id: gtkcompletionline.cc,v 1.33 2003/11/16 10:55:07 andreas99 Exp $ * Copyright (C) 2000, Mishoo * Author: Mihai Bazon Email: mishoo@fenrir.infoiasi.ro * * Distributed under the terms of the GNU General Public License. You are * free to use/modify/distribute this program as long as you comply to the * terms of the GNU General Public License, version 2 or above, at your * option, and provided that this copyright notice remains intact. *****************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #include "gtkcompletionline.h" static int on_row_selected_handler = 0; static int on_key_press_handler = 0; /* GLOBALS */ /* signals */ enum { UNIQUE, NOTUNIQUE, INCOMPLETE, RUNWITHTERM, SEARCH_MODE, SEARCH_LETTER, SEARCH_NOT_FOUND, EXT_HANDLER, CANCEL, LAST_SIGNAL }; #define GEN_COMPLETION_OK 1 #define GEN_CANT_COMPLETE 2 #define GEN_NOT_UNIQUE 3 static guint gtk_completion_line_signals[LAST_SIGNAL]; typedef set StrSet; typedef vector StrList; static StrSet path; static StrSet execs; static StrSet dirlist; static string prefix; static int g_show_dot_files; /* callbacks */ static void gtk_completion_line_class_init(GtkCompletionLineClass *klass); static void gtk_completion_line_init(GtkCompletionLine *object); static gboolean on_key_press(GtkCompletionLine *cl, GdkEventKey *event, gpointer data); /* get_type */ guint gtk_completion_line_get_type(void) { static guint type = 0; if (type == 0) { GtkTypeInfo type_info = { "GtkCompletionLine", sizeof(GtkCompletionLine), sizeof(GtkCompletionLineClass), (GtkClassInitFunc)gtk_completion_line_class_init, (GtkObjectInitFunc)gtk_completion_line_init, /*(GtkArgSetFunc)*/NULL /* reserved */, /*(GtkArgGetFunc)*/NULL /* reserved */ }; type = gtk_type_unique(gtk_entry_get_type(), &type_info); } return type; } /* class_init */ static void gtk_completion_line_class_init(GtkCompletionLineClass *klass) { GtkObjectClass *object_class; object_class = (GtkObjectClass*)klass; gtk_completion_line_signals[UNIQUE] = gtk_signal_new("unique", GTK_RUN_FIRST, G_TYPE_FROM_CLASS(object_class), GTK_SIGNAL_OFFSET(GtkCompletionLineClass, unique), gtk_signal_default_marshaller, GTK_TYPE_NONE, 0); gtk_completion_line_signals[NOTUNIQUE] = gtk_signal_new("notunique", GTK_RUN_FIRST, G_TYPE_FROM_CLASS(object_class), GTK_SIGNAL_OFFSET(GtkCompletionLineClass, notunique), gtk_signal_default_marshaller, GTK_TYPE_NONE, 0); gtk_completion_line_signals[INCOMPLETE] = gtk_signal_new("incomplete", GTK_RUN_FIRST, G_TYPE_FROM_CLASS(object_class), GTK_SIGNAL_OFFSET(GtkCompletionLineClass, incomplete), gtk_signal_default_marshaller, GTK_TYPE_NONE, 0); gtk_completion_line_signals[RUNWITHTERM] = gtk_signal_new("runwithterm", GTK_RUN_FIRST, G_TYPE_FROM_CLASS(object_class), GTK_SIGNAL_OFFSET(GtkCompletionLineClass, runwithterm), gtk_signal_default_marshaller, GTK_TYPE_NONE, 0); gtk_completion_line_signals[SEARCH_MODE] = gtk_signal_new("search_mode", GTK_RUN_FIRST, G_TYPE_FROM_CLASS(object_class), GTK_SIGNAL_OFFSET(GtkCompletionLineClass, search_mode), gtk_signal_default_marshaller, GTK_TYPE_NONE, 0); gtk_completion_line_signals[SEARCH_NOT_FOUND] = gtk_signal_new("search_not_found", GTK_RUN_FIRST, G_TYPE_FROM_CLASS(object_class), GTK_SIGNAL_OFFSET(GtkCompletionLineClass, search_not_found), gtk_signal_default_marshaller, GTK_TYPE_NONE, 0); gtk_completion_line_signals[SEARCH_LETTER] = gtk_signal_new("search_letter", GTK_RUN_FIRST, G_TYPE_FROM_CLASS(object_class), GTK_SIGNAL_OFFSET(GtkCompletionLineClass, search_letter), gtk_signal_default_marshaller, GTK_TYPE_NONE, 0); gtk_completion_line_signals[EXT_HANDLER] = gtk_signal_new("ext_handler", GTK_RUN_FIRST, G_TYPE_FROM_CLASS(object_class), GTK_SIGNAL_OFFSET(GtkCompletionLineClass, ext_handler), gtk_marshal_NONE__POINTER, GTK_TYPE_NONE, 1, GTK_TYPE_POINTER); gtk_completion_line_signals[CANCEL] = gtk_signal_new("cancel", GTK_RUN_FIRST, G_TYPE_FROM_CLASS(object_class), GTK_SIGNAL_OFFSET(GtkCompletionLineClass, ext_handler), gtk_marshal_NONE__POINTER, GTK_TYPE_NONE, 1, GTK_TYPE_POINTER); //gtk_object_class_add_signals(object_class, // gtk_completion_line_signals, LAST_SIGNAL); klass->unique = NULL; klass->notunique = NULL; klass->incomplete = NULL; klass->runwithterm = NULL; klass->search_mode = NULL; klass->search_letter = NULL; klass->search_not_found = NULL; klass->ext_handler = NULL; klass->cancel = NULL; } /* init */ static void gtk_completion_line_init(GtkCompletionLine *object) { /* Add object initialization / creation stuff here */ object->where = NULL; object->cmpl = NULL; object->win_compl = NULL; object->list_compl = NULL; object->hist_search_mode = GCL_SEARCH_OFF; object->hist_word = new string; object->tabtimeout = 0; object->show_dot_files = 0; on_key_press_handler = gtk_signal_connect(GTK_OBJECT(object), "key_press_event", GTK_SIGNAL_FUNC(on_key_press), NULL); gtk_signal_connect(GTK_OBJECT(object), "key_release_event", GTK_SIGNAL_FUNC(on_key_press), NULL); object->hist = new HistoryFile(); object->first_key = 1; } void gtk_completion_line_last_history_item(GtkCompletionLine* object) { const char *last_item = object->hist->last_item(); if (last_item) { object->hist->set_default(""); const char* txt = object->hist->prev(); gtk_entry_set_text(GTK_ENTRY(object), g_locale_to_utf8 (txt, -1, NULL, NULL, NULL)); gtk_entry_select_region(GTK_ENTRY(object), 0, strlen(txt)); } } string quote_string(const string& str) { string res; const char* i = str.c_str(); while (*i) { char c = *i++; switch (c) { case ' ': res += '\\'; default: res += c; } } return res; } static void get_token(istream& is, string& s) { s.clear(); bool escaped = false; while (!is.eof()) { char c = is.get(); if (is.eof()) break; if (escaped) { s += c; escaped = false; } else if (c == '\\') { // s += c; escaped = true; } else if (::isspace(c)) { while (::isspace(c) && !is.eof()) c = is.get(); if (!is.eof()) is.unget(); break; } else { s += c; } } } int get_words(GtkCompletionLine *object, vector& words) { string content(gtk_entry_get_text(GTK_ENTRY(object))); int pos_in_text = gtk_editable_get_position(GTK_EDITABLE(object)); int pos = 0; { string::iterator i = content.begin() + pos_in_text; if (i != content.end()) content.insert(i, ' '); } istringstream ss(content); while (!ss.eof()) { string s; // ss >> s; get_token(ss, s); words.push_back(s); if (ss.eof()) break; if (ss.tellg() < pos_in_text && ss.tellg() >= 0) ++pos; } return pos; } int set_words(GtkCompletionLine *object, const vector& words, int pos = -1) { ostringstream ss; if (pos == -1) pos = words.size() - 1; int where = 0; vector::const_iterator i = words.begin(), i_end = words.end(); while (i != i_end) { ss << quote_string(*i++); if (i != i_end) ss << ' '; if (!pos && !where) where = ss.tellp(); else --pos; } ss << ends; if (words.size() == 1) { const string& s = words.back(); size_t pos = s.rfind('.'); if (pos != string::npos) gtk_signal_emit_by_name( GTK_OBJECT(object), "ext_handler", s.substr(pos + 1).c_str()); else gtk_signal_emit_by_name(GTK_OBJECT(object), "ext_handler", NULL); } gtk_entry_set_text(GTK_ENTRY(object), g_locale_to_utf8 (ss.str().c_str(), -1, NULL, NULL, NULL)); gtk_editable_set_position(GTK_EDITABLE(object), where); return where; } static void generate_path() { char *path_cstr = (char*)getenv("PATH"); istringstream path_ss(path_cstr); string tmp; path.clear(); while (!path_ss.eof()) { tmp = ""; do { char c; c = path_ss.get(); if (c == ':' || path_ss.eof()) break; else tmp += c; } while (true); if (tmp.length() != 0) path.insert(tmp); } } static int select_executables_only(const struct dirent* dent) { int len = strlen(dent->d_name); int lenp = prefix.length(); if (dent->d_name[0] == '.') { if (!g_show_dot_files) return 0; if (dent->d_name[1] == '\0') return 0; if ((dent->d_name[1] == '.') && (dent->d_name[2] == '\0')) return 0; } if (dent->d_name[len - 1] == '~') return 0; if (lenp == 0) return 1; if (lenp > len) return 0; if (strncmp(dent->d_name, prefix.c_str(), lenp) == 0) return 1; return 0; } int my_alphasort(const void* va, const void* vb) { const struct dirent** a = (const struct dirent**)va; const struct dirent** b = (const struct dirent**)vb; const char* s1 = (*a)->d_name; const char* s2 = (*b)->d_name; int l1 = strlen(s1); int l2 = strlen(s2); int result = strcmp(s1, s2); if (result == 0) return 0; if (l1 < l2) { int res2 = strncmp(s1, s2, l1); if (res2 == 0) return -1; } else { int res2 = strncmp(s1, s2, l2); if (res2 == 0) return 1; } return result; } static void generate_execs() { execs.clear(); for (StrSet::iterator i = path.begin(); i != path.end(); i++) { struct dirent **eps; int n = scandir(i->c_str(), &eps, select_executables_only, my_alphasort); if (n >= 0) { for (int j = 0; j < n; j++) { execs.insert(eps[j]->d_name); free(eps[j]); } free(eps); } } } static int generate_completion_from_execs(GtkCompletionLine *object) { g_list_foreach(object->cmpl, (GFunc)g_string_free, NULL); g_list_free(object->cmpl); object->cmpl = NULL; for (StrSet::const_iterator i = execs.begin(); i != execs.end(); i++) { GString *the_fucking_gstring = g_string_new(i->c_str()); object->cmpl = g_list_append(object->cmpl, the_fucking_gstring); } return 0; } static string get_common_part(const char *p1, const char *p2) { string ret; while (*p1 == *p2 && *p1 != '\0' && *p2 != '\0') { ret += *p1; p1++; p2++; } return ret; } static int complete_common(GtkCompletionLine *object) { GList *l; GList *ls = object->cmpl; vector words; int pos = get_words(object, words); words[pos] = ((GString*)ls->data)->str; ls = g_list_next(ls); while (ls != NULL) { words[pos] = get_common_part(words[pos].c_str(), ((GString*)ls->data)->str); ls = g_list_next(ls); } set_words(object, words, pos); ls = object->cmpl; l = ls; /* if (words[pos] == ((GString*)(l->data))->str) { ls = g_list_remove_link(ls, l); ls = g_list_append(ls, l->data); g_list_free_1(l); object->cmpl = ls; } */ return 0; } static int generate_dirlist(const char *what) { char *str = strdup(what); char *p = str + 1; char *filename = str; string dest("/"); int n; while (*p != '\0') { dest += *p; if (*p == '/') { DIR* dir = opendir(dest.c_str()); if (!dir) goto dirty; closedir(dir); filename = p; } ++p; } *filename = '\0'; filename++; dest = str; dest += '/'; dirlist.clear(); struct dirent **eps; prefix = filename; n = scandir(dest.c_str(), &eps, select_executables_only, my_alphasort); if (n >= 0) { for (int j = 0; j < n; j++) { { string foo(dest); foo += eps[j]->d_name; struct stat filestatus; stat(foo.c_str(), &filestatus); if (S_ISDIR(filestatus.st_mode)) foo += '/'; dirlist.insert(foo); } free(eps[j]); } free(eps); } free(str); return GEN_COMPLETION_OK; dirty: free(str); return GEN_CANT_COMPLETE; } static int generate_completion_from_dirlist(GtkCompletionLine *object) { g_list_foreach(object->cmpl, (GFunc)g_string_free, NULL); g_list_free(object->cmpl); object->cmpl = NULL; for (StrSet::const_iterator i = dirlist.begin(); i != dirlist.end(); i++) { GString *the_fucking_gstring = g_string_new(i->c_str()); object->cmpl = g_list_append(object->cmpl, the_fucking_gstring); } return 0; } static int parse_tilda(GtkCompletionLine *object) { string text = gtk_entry_get_text(GTK_ENTRY(object)); gint where = (gint)text.find("~"); if (where != string::npos) { if ((where > 0) && (text[where - 1] != ' ')) return 0; if (where < text.size() - 1 && text[where + 1] != '/') { // FIXME: Parse another user's home } else { string home = g_get_home_dir(); size_t i = home.length() - 1; while ((i >= 0) && (home[i] == '/')) home.erase(i--); gtk_editable_insert_text(GTK_EDITABLE(object), home.c_str(), home.length(), &where); gtk_editable_delete_text(GTK_EDITABLE(object), where, where + 1); } } return 0; } static void complete_from_list(GtkCompletionLine *object) { parse_tilda(object); vector words; int pos = get_words(object, words); prefix = words[pos]; if (object->win_compl != NULL) { object->where = (GList*)gtk_clist_get_row_data( GTK_CLIST(object->list_compl), object->list_compl_items_where); words[pos] = ((GString*)object->where->data)->str; int current_pos = set_words(object, words, pos); gtk_entry_select_region(GTK_ENTRY(object), object->pos_in_text, current_pos); int &item = object->list_compl_items_where; gtk_clist_select_row(GTK_CLIST(object->list_compl), item, 0); gtk_clist_moveto(GTK_CLIST(object->list_compl), item, 0, 0.5, 0.0); } else { words[pos] = ((GString*)object->where->data)->str; object->pos_in_text = gtk_editable_get_position(GTK_EDITABLE(object)); int current_pos = set_words(object, words, pos); gtk_entry_select_region(GTK_ENTRY(object), object->pos_in_text, current_pos); object->where = g_list_next(object->where); } } static void on_row_selected(GtkWidget *ls, gint row, gint col, GdkEvent *ev, gpointer data) { GtkCompletionLine *cl = GTK_COMPLETION_LINE(data); cl->list_compl_items_where = row; gtk_signal_handler_block(GTK_OBJECT(cl->list_compl), on_row_selected_handler); complete_from_list(cl); gtk_signal_handler_unblock(GTK_OBJECT(cl->list_compl), on_row_selected_handler); } /* static void select_appropiate(GtkCompletionLine *object) { for (int i = 0; i < object->list_compl_nr_rows; ++i) { char *text; gtk_clist_get_text(GTK_CLIST(object->list_compl), i, 0, &text); if (strncmp(prefix.c_str(), text, prefix.length())) { gtk_signal_handler_block(GTK_OBJECT(object->list_compl), on_row_selected_handler); gtk_clist_select_row(GTK_CLIST(object->list_compl), i, 0); object->list_compl_items_where = i; gtk_signal_handler_unblock(GTK_OBJECT(object->list_compl), on_row_selected_handler); break; } } } static void get_prefix(GtkCompletionLine *object) { parse_tilda(object); vector words; int pos = get_words(object, words); prefix = words[pos]; } */ static int complete_line(GtkCompletionLine *object) { parse_tilda(object); vector words; int pos = get_words(object, words); prefix = words[pos]; g_show_dot_files = object->show_dot_files; if (prefix[0] != '/') { if (object->where == NULL) { generate_path(); generate_execs(); generate_completion_from_execs(object); object->where = NULL; } } else if (object->where == NULL) { generate_dirlist(prefix.c_str()); generate_completion_from_dirlist(object); object->where = NULL; } if (object->cmpl != NULL) { complete_common(object); object->where = object->cmpl; } // FUCK C! C++ Rules! if (object->where != NULL) { if (object->win_compl != NULL) { int &item = object->list_compl_items_where; ++item; if (item >= object->list_compl_nr_rows) item = object->list_compl_nr_rows - 1; } complete_from_list(object); } else if (object->cmpl != NULL) { complete_common(object); object->where = object->cmpl; } GList *ls = object->cmpl; if (g_list_length(ls) == 1) { gtk_signal_emit_by_name(GTK_OBJECT(object), "unique"); return GEN_COMPLETION_OK; } else if (g_list_length(ls) == 0 || ls == NULL) { gtk_signal_emit_by_name(GTK_OBJECT(object), "incomplete"); return GEN_CANT_COMPLETE; } else if (g_list_length(ls) > 1) { gtk_signal_emit_by_name(GTK_OBJECT(object), "notunique"); vector words; int pos = get_words(object, words); if (words[pos] == ((GString*)ls->data)->str) { if (object->win_compl == NULL) { object->win_compl = gtk_window_new(GTK_WINDOW_POPUP); gtk_widget_set_name(object->win_compl, "Msh_Run_Window"); /*gtk_window_set_position(GTK_WINDOW(object->win_compl), GTK_WIN_POS_MOUSE);*/ gtk_window_set_policy(GTK_WINDOW(object->win_compl), FALSE, FALSE, TRUE); object->list_compl = gtk_clist_new(1); on_row_selected_handler = gtk_signal_connect(GTK_OBJECT(object->list_compl), "select_row", GTK_SIGNAL_FUNC(on_row_selected), object); gtk_signal_handler_block(GTK_OBJECT(object->list_compl), on_row_selected_handler); GList *p = ls; object->list_compl_nr_rows = 0; while (p) { char *tmp[2]; tmp[0] = ((GString*)p->data)->str; tmp[1] = NULL; int row = gtk_clist_append(GTK_CLIST(object->list_compl), tmp); gtk_clist_set_row_data(GTK_CLIST(object->list_compl), row, p); object->list_compl_nr_rows++; p = g_list_next(p); } GtkWidget *scroll = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll), GTK_SHADOW_OUT); gtk_widget_show(scroll); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scroll), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_set_border_width(GTK_CONTAINER(object->list_compl), 2); gtk_container_add(GTK_CONTAINER (scroll), object->list_compl); object->list_compl_items_where = 0; gtk_widget_show(object->list_compl); int w = gtk_clist_optimal_column_width(GTK_CLIST(object->list_compl), 0); gtk_widget_set_usize(scroll, w + 40, 150); gtk_container_add(GTK_CONTAINER(object->win_compl), scroll); GdkWindow *top = gtk_widget_get_parent_window(GTK_WIDGET(object)); int x, y; gdk_window_get_position(top, &x, &y); x += GTK_WIDGET(object)->allocation.x; y += GTK_WIDGET(object)->allocation.y + GTK_WIDGET(object)->allocation.height; // gtk_widget_popup(object->win_compl, x, y); gtk_window_move(GTK_WINDOW(object->win_compl), x, y); gtk_widget_show(object->win_compl); gtk_clist_select_row(GTK_CLIST(object->list_compl), object->list_compl_items_where, 0); gtk_signal_handler_unblock(GTK_OBJECT(object->list_compl), on_row_selected_handler); } return GEN_COMPLETION_OK; } return GEN_NOT_UNIQUE; } return GEN_COMPLETION_OK; } GtkWidget * gtk_completion_line_new() { return GTK_WIDGET(gtk_type_new(gtk_completion_line_get_type())); } static void up_history(GtkCompletionLine* cl) { cl->hist->set_default(gtk_entry_get_text(GTK_ENTRY(cl))); gtk_entry_set_text(GTK_ENTRY(cl), g_locale_to_utf8 (cl->hist->prev(), -1, NULL, NULL, NULL)); } static void down_history(GtkCompletionLine* cl) { cl->hist->set_default(gtk_entry_get_text(GTK_ENTRY(cl))); gtk_entry_set_text(GTK_ENTRY(cl), g_locale_to_utf8 (cl->hist->next(), -1, NULL, NULL, NULL)); } static int search_back_history(GtkCompletionLine* cl, bool avance, bool begin) { if (!cl->hist_word->empty()) { const char * histext; if (avance) { histext = cl->hist->prev_to_first(); if (histext == NULL) { gtk_signal_emit_by_name(GTK_OBJECT(cl), "search_not_found"); return 0; } } else { histext = gtk_entry_get_text(GTK_ENTRY(cl)); } while (true) { string s = histext; string::size_type i; i = s.find(*cl->hist_word); if (i != string::npos && !(begin && i != 0)) { const char *tmp = gtk_entry_get_text(GTK_ENTRY(cl)); if (!(avance && strcmp(tmp, histext) == 0)) { gtk_entry_set_text(GTK_ENTRY(cl), g_locale_to_utf8 (histext, -1, NULL, NULL, NULL)); gtk_entry_select_region(GTK_ENTRY(cl), i, i + cl->hist_word->length()); gtk_signal_emit_by_name(GTK_OBJECT(cl), "search_letter"); return 1; } } histext = cl->hist->prev_to_first(); if (histext == NULL) { gtk_signal_emit_by_name(GTK_OBJECT(cl), "search_not_found"); break; } } } else { gtk_entry_select_region(GTK_ENTRY(cl), 0, 0); gtk_signal_emit_by_name(GTK_OBJECT(cl), "search_letter"); } return 0; } static int search_forward_history(GtkCompletionLine* cl, bool avance, bool begin) { if (!cl->hist_word->empty()) { const char * histext; if (avance) { histext = cl->hist->next_to_last(); if (histext == NULL) { gtk_signal_emit_by_name(GTK_OBJECT(cl), "search_not_found"); return 0; } } else { histext = gtk_entry_get_text(GTK_ENTRY(cl)); } while (true) { string s = histext; string::size_type i; i = s.find(*cl->hist_word); if (i != string::npos && !(begin && i != 0)) { const char *tmp = gtk_entry_get_text(GTK_ENTRY(cl)); if (!(avance && strcmp(tmp, histext) == 0)) { gtk_entry_set_text(GTK_ENTRY(cl), g_locale_to_utf8 (histext, -1, NULL, NULL, NULL)); gtk_entry_select_region(GTK_ENTRY(cl), i, i + cl->hist_word->length()); gtk_signal_emit_by_name(GTK_OBJECT(cl), "search_letter"); return 1; } } histext = cl->hist->next_to_last(); if (histext == NULL) { gtk_signal_emit_by_name(GTK_OBJECT(cl), "search_not_found"); break; } } } else { gtk_entry_select_region(GTK_ENTRY(cl), 0, 0); gtk_signal_emit_by_name(GTK_OBJECT(cl), "search_letter"); } return 0; } static int search_history(GtkCompletionLine* cl, bool avance, bool begin) { switch (cl->hist_search_mode) { case GCL_SEARCH_REW: case GCL_SEARCH_BEG: return search_back_history(cl, avance, begin); case GCL_SEARCH_FWD: return search_forward_history(cl, avance, begin); default: return -1; } } /* static int inverse_search_history(GtkCompletionLine* cl, bool avance, bool begin) { switch (cl->hist_search_mode) { case GCL_SEARCH_FWD: return search_back_history(cl, avance, begin); case GCL_SEARCH_REW: case GCL_SEARCH_BEG: return search_forward_history(cl, avance, begin); default: return -1; } } */ static void search_off(GtkCompletionLine* cl) { int pos = gtk_editable_get_position(GTK_EDITABLE(cl)); gtk_entry_select_region(GTK_ENTRY(cl), pos, pos); cl->hist_search_mode = GCL_SEARCH_OFF; gtk_signal_emit_by_name(GTK_OBJECT(cl), "search_mode"); cl->hist->reset_position(); } #define STOP_PRESS \ (gtk_signal_emit_stop_by_name(GTK_OBJECT(cl), "key_press_event")) #define MODE_BEG \ (cl->hist_search_mode == GCL_SEARCH_BEG) #define MODE_REW \ (cl->hist_search_mode == GCL_SEARCH_REW) #define MODE_FWD \ (cl->hist_search_mode == GCL_SEARCH_FWD) #define MODE_SRC \ (cl->hist_search_mode != GCL_SEARCH_OFF) static gint tab_pressed(GtkCompletionLine* cl) { if (MODE_SRC) search_off(cl); complete_line(cl); return FALSE; } static void clear_selection(GtkCompletionLine* cl) { int pos = gtk_editable_get_position(GTK_EDITABLE(cl)); gtk_editable_select_region(GTK_EDITABLE(cl), pos, pos); } static gboolean on_key_press(GtkCompletionLine *cl, GdkEventKey *event, gpointer data) { static gint tt_id = -1; switch (event->type) { case GDK_KEY_PRESS: switch (event->keyval) { case GDK_Control_R: case GDK_Control_L: case GDK_Shift_R: case GDK_Shift_L: case GDK_Alt_R: case GDK_Alt_L: break; case GDK_Tab: if (tt_id != -1) { gtk_timeout_remove(tt_id); tt_id = -1; } tab_pressed(cl); STOP_PRESS; return TRUE; case GDK_Up: if (cl->win_compl != NULL) { int &item = cl->list_compl_items_where; item--; if (item < 0) { item = 0; } else { complete_from_list(cl); } } else { up_history(cl); } if (MODE_SRC) { search_off(cl); } STOP_PRESS; return TRUE; case GDK_space: { cl->first_key = 0; bool search = MODE_SRC; if (search) search_off(cl); if (cl->win_compl != NULL) { gtk_widget_destroy(cl->win_compl); cl->win_compl = NULL; if (!search) { int pos = gtk_editable_get_position(GTK_EDITABLE(cl)); gtk_entry_select_region(GTK_ENTRY(cl), pos, pos); } } } return FALSE; case GDK_Down: if (cl->win_compl != NULL) { int &item = cl->list_compl_items_where; item++; if (item >= cl->list_compl_nr_rows) { item = cl->list_compl_nr_rows - 1; } else { complete_from_list(cl); } } else { down_history(cl); } if (MODE_SRC) { search_off(cl); } STOP_PRESS; return TRUE; case GDK_Return: if (cl->win_compl != NULL) { gtk_widget_destroy(cl->win_compl); cl->win_compl = NULL; } if (event->state & GDK_CONTROL_MASK) { gtk_signal_emit_by_name(GTK_OBJECT(cl), "runwithterm"); } else { gtk_signal_emit_by_name(GTK_OBJECT(cl), "activate"); } STOP_PRESS; return TRUE; case GDK_exclam: if (!MODE_BEG) { if (!MODE_SRC) gtk_editable_delete_selection(GTK_EDITABLE(cl)); const char *tmp = gtk_entry_get_text(GTK_ENTRY(cl)); if (!(*tmp == '\0' || cl->first_key)) goto ordinary; cl->hist_search_mode = GCL_SEARCH_BEG; cl->hist_word->clear(); gtk_signal_emit_by_name(GTK_OBJECT(cl), "search_mode"); STOP_PRESS; return true; } else goto ordinary; case GDK_R: case GDK_r: if (event->state & GDK_CONTROL_MASK) { if (MODE_SRC) { search_back_history(cl, true, MODE_BEG); } else { cl->hist_search_mode = GCL_SEARCH_REW; cl->hist_word->clear(); cl->hist->reset_position(); gtk_signal_emit_by_name(GTK_OBJECT(cl), "search_mode"); } STOP_PRESS; return TRUE; } else goto ordinary; case GDK_S: case GDK_s: if (event->state & GDK_CONTROL_MASK) { if (MODE_SRC) { search_forward_history(cl, true, MODE_BEG); } else { cl->hist_search_mode = GCL_SEARCH_FWD; cl->hist_word->clear(); cl->hist->reset_position(); gtk_signal_emit_by_name(GTK_OBJECT(cl), "search_mode"); } STOP_PRESS; return TRUE; } else goto ordinary; case GDK_BackSpace: if (MODE_SRC) { if (!cl->hist_word->empty()) { cl->hist_word->erase(cl->hist_word->length() - 1); gtk_signal_emit_by_name(GTK_OBJECT(cl), "search_letter"); } STOP_PRESS; return TRUE; } return FALSE; case GDK_Home: case GDK_End: clear_selection(cl); goto ordinary; case GDK_Escape: if (MODE_SRC) { search_off(cl); } else if (cl->win_compl != NULL) { gtk_widget_destroy(cl->win_compl); cl->win_compl = NULL; } else { // user cancelled gtk_signal_emit_by_name(GTK_OBJECT(cl), "cancel"); } STOP_PRESS; return TRUE; case GDK_G: case GDK_g: if (event->state & GDK_CONTROL_MASK) { search_off(cl); if (MODE_SRC) STOP_PRESS; return TRUE; } else goto ordinary; case GDK_E: case GDK_e: if (event->state & GDK_CONTROL_MASK) { search_off(cl); if (MODE_SRC) clear_selection(cl); } goto ordinary; ordinary: default: cl->first_key = 0; if (cl->win_compl != NULL) { gtk_widget_destroy(cl->win_compl); cl->win_compl = NULL; } cl->where = NULL; if (MODE_SRC) { if (event->length > 0) { *cl->hist_word += event->string; if (search_history(cl, false, MODE_BEG) <= 0) cl->hist_word->erase(cl->hist_word->length() - 1); STOP_PRESS; return TRUE; } else search_off(cl); } if (cl->tabtimeout != 0) { if (tt_id != -1) { gtk_timeout_remove(tt_id); tt_id = -1; } if (::isprint(*event->string)) tt_id = gtk_timeout_add(cl->tabtimeout, GtkFunction(tab_pressed), cl); } break; } break; default: break; } return FALSE; } #undef STOP_PRESS #undef MODE_BEG #undef MODE_REW #undef MODE_FWD #undef MODE_SRC // Local Variables: *** // mode: c++ *** // c-basic-offset: 2 *** // End: *** gmrun-0.9.2/src/history.h0000644000175000001440000000325707527446543011017 /***************************************************************************** * $Id: history.h,v 1.11 2002/08/17 13:19:31 mishoo Exp $ * Copyright (C) 2000, Mishoo * Author: Mihai Bazon Email: mishoo@fenrir.infoiasi.ro * * Distributed under the terms of the GNU General Public License. You are * free to use/modify/distribute this program as long as you comply to the * terms of the GNU General Public License, version 2 or above, at your * option, and provided that this copyright notice remains intact. *****************************************************************************/ #ifndef __HISTORY_H__ #define __HISTORY_H__ #include #include using namespace std; class HistoryFile { protected: int m_file_entries; string m_filename; string m_default; bool m_default_set; int m_current; typedef vector StrArray; StrArray history; public: HistoryFile(); ~HistoryFile(); void append(const char *entry); void set_default(const char *defstr); void clear_default(); void reset_position(); const char * operator [] (size_t index); const char * prev(); const char * next(); const char * prev_to_first(); const char * next_to_last(); void sync_the_file(); inline const char* last_item() { return history.empty() ? 0 : history.back().c_str(); } inline const char* first_item() { return history.empty() ? 0 : history.front().c_str(); } protected: void read_the_file(); private: struct DumpString { DumpString(std::ostream& o) : _out(o) {} void operator()(std::string& str) { _out << str << endl; } private: std::ostream& _out; }; }; #endif // __HISTORY_H__ gmrun-0.9.2/src/history.cc0000644000175000001440000000645107527446543011154 /***************************************************************************** * $Id: history.cc,v 1.10 2002/08/17 13:19:31 mishoo Exp $ * Copyright (C) 2000, Mishoo * Author: Mihai Bazon Email: mishoo@fenrir.infoiasi.ro * * Distributed under the terms of the GNU General Public License. You are * free to use/modify/distribute this program as long as you comply to the * terms of the GNU General Public License, version 2 or above, at your * option, and provided that this copyright notice remains intact. *****************************************************************************/ #include #include #include #include #include #include using namespace std; #include "history.h" #include "prefs.h" HistoryFile::HistoryFile() { m_file_entries = 0; m_filename = g_get_home_dir(); m_filename += "/.gmrun_history"; m_current = 0; m_default_set = false; read_the_file(); } HistoryFile::~HistoryFile() {} void HistoryFile::read_the_file() { const char *filename = m_filename.c_str(); ifstream f(filename); if (!f) return; while (!f.eof()) { char line_text[256]; string line_str; f.getline(line_text, sizeof(line_text)); if (*line_text) { line_str = line_text; history.push_back(line_str); } } m_file_entries = history.size(); m_current = m_file_entries; } void HistoryFile::sync_the_file() { const char *filename = m_filename.c_str(); int HIST_MAX_SIZE; if (!configuration.get_int("History", HIST_MAX_SIZE)) HIST_MAX_SIZE = 20; ofstream f(filename, ios::out); int start = 0; if (history.size() > (size_t)HIST_MAX_SIZE) start = history.size() - HIST_MAX_SIZE; for (size_t i = start; i < history.size(); i++) if (history[i].length() != 0) f << history[i] << endl; f.flush(); } void HistoryFile::append(const char *entry) { std::string ent = std::string(entry); if (!history.empty()) { StrArray::reverse_iterator i; #ifdef DEBUG for_each(history.begin(), history.end(), DumpString(cerr)); #endif i = find(history.rbegin(), history.rend(), ent); if (i != history.rend()) { #ifdef DEBUG cerr << "erasing "<< ent << endl; #endif history.erase(remove(history.begin(), history.end(), ent)); } } history.push_back(ent); } void HistoryFile::set_default(const char *defstr) { if (!m_default_set) { m_default = defstr; m_default_set = true; } } const char * HistoryFile::operator [] (size_t index) { if (index < 0 || index >= history.size()) { return m_default.c_str(); } return history[index].c_str(); } const char * HistoryFile::prev() { const char *ret = (*this)[--m_current]; if (m_current < 0) m_current = history.size(); return ret; } const char * HistoryFile::next() { const char *ret = (*this)[++m_current]; if (m_current >= history.size()) m_current = -1; return ret; } const char * HistoryFile::prev_to_first() { if (m_current > 0) { return (*this)[--m_current]; } else { return NULL; } } const char * HistoryFile::next_to_last() { if (m_current < history.size()) { return (*this)[++m_current]; } else { return NULL; } } void HistoryFile::clear_default() { m_default_set = false; } void HistoryFile::reset_position() { m_current = m_file_entries; } gmrun-0.9.2/src/Makefile.am0000644000175000001440000000051107477464346011174 ## Process this file with automake to produce Makefile.in INCLUDES = \ @GTK_CFLAGS@ @STLPORT_CXXFLAGS@ bin_PROGRAMS = gmrun gmrun_SOURCES = \ gtkcompletionline.cc gtkcompletionline.h \ history.cc history.h \ main.cc main.h \ prefs.cc prefs.h ci_string.h # gmrun_LDFLAGS = -s gmrun_LDADD = @GTK_LIBS@ @STLPORT_LDFLAGS@ gmrun-0.9.2/src/Makefile.in0000644000175000001440000002004107755656400011176 # Makefile.in generated automatically by automake 1.4-p6 from Makefile.am # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include DESTDIR = pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : CC = @CC@ CXX = @CXX@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ MAKEINFO = @MAKEINFO@ PACKAGE = @PACKAGE@ PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ PKG_CONFIG = @PKG_CONFIG@ PREFIX = @PREFIX@ STLPORT_CXXFLAGS = @STLPORT_CXXFLAGS@ STLPORT_INCDIR = @STLPORT_INCDIR@ STLPORT_INCLUDES = @STLPORT_INCLUDES@ STLPORT_LDFLAGS = @STLPORT_LDFLAGS@ STLPORT_LIBDIR = @STLPORT_LIBDIR@ VERSION = @VERSION@ INCLUDES = @GTK_CFLAGS@ @STLPORT_CXXFLAGS@ bin_PROGRAMS = gmrun gmrun_SOURCES = gtkcompletionline.cc gtkcompletionline.h history.cc history.h main.cc main.h prefs.cc prefs.h ci_string.h # gmrun_LDFLAGS = -s gmrun_LDADD = @GTK_LIBS@ @STLPORT_LDFLAGS@ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = PROGRAMS = $(bin_PROGRAMS) DEFS = @DEFS@ -I. -I$(srcdir) -I.. CPPFLAGS = @CPPFLAGS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ gmrun_OBJECTS = gtkcompletionline.o history.o main.o prefs.o gmrun_DEPENDENCIES = gmrun_LDFLAGS = CXXFLAGS = @CXXFLAGS@ CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ CFLAGS = @CFLAGS@ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ DIST_COMMON = Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = tar GZIP_ENV = --best SOURCES = $(gmrun_SOURCES) OBJECTS = $(gmrun_OBJECTS) all: all-redirect .SUFFIXES: .SUFFIXES: .S .c .cc .o .s $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status mostlyclean-binPROGRAMS: clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) distclean-binPROGRAMS: maintainer-clean-binPROGRAMS: install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ if test -f $$p; then \ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) list='$(bin_PROGRAMS)'; for p in $$list; do \ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ done .c.o: $(COMPILE) -c $< .s.o: $(COMPILE) -c $< .S.o: $(COMPILE) -c $< mostlyclean-compile: -rm -f *.o core *.core clean-compile: distclean-compile: -rm -f *.tab.c maintainer-clean-compile: gmrun: $(gmrun_OBJECTS) $(gmrun_DEPENDENCIES) @rm -f gmrun $(CXXLINK) $(gmrun_LDFLAGS) $(gmrun_OBJECTS) $(gmrun_LDADD) $(LIBS) .cc.o: $(CXXCOMPILE) -c $< tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ here=`pwd` && cd $(srcdir) \ && mkid -f$$here/ID $$unique $(LISP) TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) mostlyclean-tags: clean-tags: distclean-tags: -rm -f TAGS ID maintainer-clean-tags: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) subdir = src distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done gtkcompletionline.o: gtkcompletionline.cc gtkcompletionline.h history.h history.o: history.cc history.h prefs.h ci_string.h main.o: main.cc gtkcompletionline.h history.h prefs.h ci_string.h prefs.o: prefs.cc prefs.h ci_string.h ../config.h info-am: info: info-am dvi-am: dvi: dvi-am check-am: all-am check: check-am installcheck-am: installcheck: installcheck-am install-exec-am: install-binPROGRAMS install-exec: install-exec-am install-data-am: install-data: install-data-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-am uninstall-am: uninstall-binPROGRAMS uninstall: uninstall-am all-am: Makefile $(PROGRAMS) all-redirect: all-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: $(mkinstalldirs) $(DESTDIR)$(bindir) mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \ mostlyclean-tags mostlyclean-generic mostlyclean: mostlyclean-am clean-am: clean-binPROGRAMS clean-compile clean-tags clean-generic \ mostlyclean-am clean: clean-am distclean-am: distclean-binPROGRAMS distclean-compile distclean-tags \ distclean-generic clean-am distclean: distclean-am maintainer-clean-am: maintainer-clean-binPROGRAMS \ maintainer-clean-compile maintainer-clean-tags \ maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-am .PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \ maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \ mostlyclean-compile distclean-compile clean-compile \ maintainer-clean-compile tags mostlyclean-tags distclean-tags \ clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ check-am installcheck-am installcheck install-exec-am install-exec \ install-data-am install-data install-am install uninstall-am uninstall \ all-redirect all-am all installdirs mostlyclean-generic \ distclean-generic clean-generic maintainer-clean-generic clean \ mostlyclean distclean maintainer-clean # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gmrun-0.9.2/src/main.h0000644000175000001440000000116007300510443010205 /***************************************************************************** * $Id: main.h,v 1.2 2001/05/16 14:39:31 mishoo Exp $ * Copyright (C) 2000, Mishoo * Author: Mihai Bazon Email: mishoo@fenrir.infoiasi.ro * * Distributed under the terms of the GNU General Public License. You are * free to use/modify/distribute this program as long as you comply to the * terms of the GNU General Public License, version 2 or above, at your * option, and provided that this copyright notice remains intact. *****************************************************************************/ gmrun-0.9.2/src/prefs.cc0000644000175000001440000000761107527154166010566 /***************************************************************************** * $Id: prefs.cc,v 1.9 2002/08/16 10:48:22 mishoo Exp $ * Copyright (C) 2000, Mishoo * Author: Mihai Bazon Email: mishoo@fenrir.infoiasi.ro * * Distributed under the terms of the GNU General Public License. You are * free to use/modify/distribute this program as long as you comply to the * terms of the GNU General Public License, version 2 or above, at your * option, and provided that this copyright notice remains intact. *****************************************************************************/ #include #include #include #include #define GMRUNRC "gmrunrc" using std::ifstream; using std::getline; using std::string; using std::list; #include "prefs.h" #include "config.h" Prefs configuration; Prefs::Prefs() { string file_name = PACKAGE_DATA_DIR"/"; file_name += GMRUNRC; init(file_name); file_name = getenv("HOME"); if (!file_name.empty()) { string::iterator i = file_name.end() - 1; if (*i == '/') file_name.erase(i); file_name += "/."; file_name += GMRUNRC; init(file_name); } } Prefs::~Prefs() {} bool Prefs::get_string(const string& key, string& val) const { CONFIG::const_iterator i; i = vals_.find(ci_string(key.c_str())); if (i != vals_.end()) { val = process(i->second); return true; } else { return false; } } bool Prefs::get_ext_handler(const std::string& ext, std::string& val) const { CONFIG::const_iterator i; i = exts_.find(ci_string(ext.c_str())); if (i != exts_.end()) { val = process(i->second); return true; } else { return false; } } bool Prefs::get_int(const std::string& key, int& val) const { string sval; if (get_string(key, sval)) { int ret; if (sscanf(sval.c_str(), "%d", &ret) == 1) { val = ret; return true; } else { return false; } } else { return false; } } bool Prefs::init(const string& file_name) { ifstream f(file_name.c_str()); if (!f.good() || f.eof()) return false; while (f.good() && !f.eof()) { string line; char key[0x100]; char val[0x100]; getline(f, line); if (f.eof()) break; string::size_type i = line.find_first_not_of(" \t"); if (i == string::npos) continue; if (line[i] == '#') continue; sscanf(line.c_str(), "%255[a-zA-Z_0-9:,;] = %255[^\n]", key, val); if (strncmp(key, "EXT:", 4) == 0) { string k(key + 4); size_t i = 0; while (i != string::npos) { string ext; size_t j = k.find(',', i); if (j != string::npos) { ext = k.substr(i, j - i); i = j + 1; } else { ext = k.substr(i); i = string::npos; } if (ext.length() > 0) { #ifdef DEBUG std::cerr << "Extension: " << ext << " - " << val << std::endl; #endif exts_[ext.c_str()] = val; } } } else { vals_[key] = val; } #ifdef DEBUG std::cerr << "Key: " << key << ", val: " << vals_[key] << std::endl; #endif } return true; } string Prefs::process(const std::string& cmd) const { string::size_type i = cmd.find("${"); string::size_type j = cmd.find("}", i); if (i == string::npos || j == string::npos) { return cmd; } string val; if (!get_string(cmd.substr(i + 2, j - i - 2), val)) return cmd; string ret(cmd); ret.replace(i, j - i + 1, val); return process(ret); } bool Prefs::get_string_list(const string& key, list& val) const { string sval; if (get_string(key, sval)) { const char *q, *p = sval.c_str(); for (q = sval.c_str(); *q; ++q) { if (::isspace(*q)) { string s(p, q - p); val.push_back(s); while (*q && ::isspace(*q)) ++q; p = q; } } if (p != q) { string s(p, q - p); val.push_back(s); } return (val.size() > 0); } return false; } gmrun-0.9.2/src/prefs.h0000644000175000001440000000250007527152072010412 /***************************************************************************** * $Id: prefs.h,v 1.6 2002/08/16 10:30:18 mishoo Exp $ * Copyright (C) 2000, Mishoo * Author: Mihai Bazon Email: mishoo@fenrir.infoiasi.ro * * Distributed under the terms of the GNU General Public License. You are * free to use/modify/distribute this program as long as you comply to the * terms of the GNU General Public License, version 2 or above, at your * option, and provided that this copyright notice remains intact. *****************************************************************************/ #ifndef __PREFS_H__ #define __PREFS_H__ #include "ci_string.h" #include #include class Prefs { public: typedef std::map CONFIG; typedef std::pair PAIR; private: CONFIG vals_; CONFIG exts_; bool init(const std::string& file_name); string process(const std::string& cmd) const; public: Prefs(); ~Prefs(); bool get_string(const std::string& key, std::string& val) const; bool get_int(const std::string& key, int& val) const; bool get_string_list(const std::string& ket, std::list& val) const; bool get_ext_handler(const std::string& ext, std::string& val) const; }; extern Prefs configuration; #endif /* __PREFS_H__ */ gmrun-0.9.2/NEWS0000644000175000001440000000467007755656102007052 -*- text -*- 0.9.2 (Son, Nov 16 2003) - UTF-8 support (only tested with german). Please report problems with other languages to - New little feature: you could place gmrun with the -geometry parameter 0.8.1 (Sat, Aug 17 2002) - bug fix release: - major bug fixed: you could not edit a .doc file with soffice if you had an extension handler for .doc set as "AbiWord %s" :) Analogue for other extensions. - smoother key handling (mainly the END/C-E, HOME/C-A keys now work correctly and also clear the selection). - others: elimined most compiler warnings (I just noticed them..:), some code cleanup (mainly reindentation). 0.8.0 (Fri, Aug 16 2002, it's been a long time) - New feature: extension handlers. This allows us to type directly the file, and gmrun will select your preferred application handler based of the configuration in ~/.gmrunrc or $prefis/share/gmrun/gmrunrc - New feature: TAB simulation. You can set a timeout for this in the config file, and gmrun will automatically issue a TAB press after that milliseconds after the last keypress.. I've tried to handle this the smart way, but it could still be buggy so by default is disabled (TabTimeout variable in config file, set it to some non-zero value to enable). - New "feature": you can select the old way of running commands using the "system" libc function. This has the great advantage that allows you to combine commands using shell operators. To enable it specify "--enable-system" at configure time. - Bug fix: white-space characters inside file names now (hopefully) behave correcly. They are backslash-ed :) like in bash. - Bug fix: '!' character now enters search mode even if all the field is selected. Thanks to Michal Politowski for noticing this and also for fixing it :) actually I never regarded it as a bug, but it was.. :) - Another patch from Michal Politowski lets two configuration files to work together. More specifically, if $prefix/share/gmrun/gmrunrc exists it will be loaded, and then it will try $HOME/.gmrunrc, but the latter does not override completely the settings from the global file. So you can provide clean defaults in the global file, and each user will customize it's own file by editing only those properties that he doesn't like.. which is kind of normal, after all :) gmrun-0.9.2/aclocal.m40000644000175000001440000003371207755654157010222 dnl aclocal.m4 generated automatically by aclocal 1.4-p6 dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl This program is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A dnl PARTICULAR PURPOSE. # # $Id: acinclude.m4,v 1.1 2002/06/05 19:39:18 sonofkojak Exp $ # # # STLPort definitions # AC_DEFUN(AC_PATH_STLPORT_INC, [ AC_REQUIRE_CPP() AC_MSG_CHECKING(for stlport headers) ac_stlport_includes="no" ac_enable_stlport="yes" AC_ARG_ENABLE(stlport, [ --enable-stlport do we need stlport ], [ ac_enable_stlport="$enableval" ]) if test "$ac_enable_stlport" = "no"; then AC_SUBST(STLPORT_INCDIR) AC_SUBST(STLPORT_CXXFLAGS) have_stlport_inc="no" else AC_ARG_WITH(stlport-includes, [ --with-stlport-includes where stlport headers are located], [ ac_stlport_includes="$withval"]) AC_CACHE_VAL(ac_cv_header_stlport_includes, [ dnl did user give --with-stlport-includes? if test "$ac_stlport_includes" = "no"; then stlport_include_dirs="\ $LIBCONFIGDIR/include/stlport \ /usr/include/stlport \ /usr/local/include/stlport \ /usr/local/include/ /usr/local/stlport/include" for dir in $stlport_include_dirs; do if test -r "$dir/algorithm"; then ac_stlport_includes=$dir break fi done fi dnl caching ac_cv_header_stlport_includes=$ac_stlport_includes ]) if test "$ac_cv_header_stlport_includes" = "no"; then have_stlport_inc="no" STLPORT_INCDIR="" STLPORT_CXXFLAGS="" else have_stlport_inc="yes" STLPORT_INCDIR="$ac_cv_header_stlport_includes" STLPORT_CXXFLAGS="-I$STLPORT_INCDIR" fi AC_SUBST(STLPORT_INCDIR) AC_SUBST(STLPORT_CXXFLAGS) fi AC_MSG_RESULT([$ac_cv_header_stlport_includes]) ]) AC_DEFUN(AC_PATH_STLPORT_LIB, [ AC_REQUIRE_CPP() AC_MSG_CHECKING(for stlport libraries) ac_stlport_lib="no" ac_enable_stlport="yes" AC_ARG_ENABLE(stlport, [ --enable-stlport do we need stlport ], [ ac_enable_stlport="$enableval" ]) if test "$ac_enable_stlport" = "no"; then AC_SUBST(STLPORT_INCDIR) AC_SUBST(STLPORT_INCLUDES) have_stlport_inc="no" else AC_ARG_WITH(stlport-lib, [ --with-stlport-lib where stlport library is located], [ ac_stlport_lib="$withval"]) AC_CACHE_VAL(ac_cv_lib_stlport_lib, [ dnl did user give --with-stlport-lib? if test "$ac_stlport_lib" = "no"; then stlport_lib_dirs="\ $STLPORTDIR/lib \ /usr/lib \ /usr/local/lib \ /usr/local/tiit/lib" for dir in $stlport_lib_dirs; do if test -r "$dir/libstlport_gcc.so"; then ac_stlport_lib=$dir break fi done fi dnl caching ac_cv_lib_stlport_lib=$ac_stlport_lib ]) if test "$ac_cv_lib_stlport_lib" = "no"; then have_stlport_lib="no" STLPORT_LIBDIR="" STLPORT_LDFLAGS="" else have_stlport_lib="yes" STLPORT_LIBDIR="$ac_cv_lib_stlport_lib" STLPORT_LDFLAGS="-L$STLPORT_LIBDIR -lstlport_gcc -lpthread" fi AC_SUBST(STLPORT_LIBDIR) AC_SUBST(STLPORT_LDFLAGS) fi AC_MSG_RESULT([$ac_cv_lib_stlport_lib]) ]) # Do all the work for Automake. This macro actually does too much -- # some checks are only needed if your package does certain things. # But this isn't really a big deal. # serial 1 dnl Usage: dnl AM_INIT_AUTOMAKE(package,version, [no-define]) AC_DEFUN([AM_INIT_AUTOMAKE], [AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL]) PACKAGE=[$1] AC_SUBST(PACKAGE) VERSION=[$2] AC_SUBST(VERSION) dnl test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi ifelse([$3],, AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) AC_REQUIRE([AM_SANITY_CHECK]) AC_REQUIRE([AC_ARG_PROGRAM]) dnl FIXME This is truly gross. missing_dir=`cd $ac_aux_dir && pwd` AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir) AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir) AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) AC_REQUIRE([AC_PROG_MAKE_SET])]) # Copyright 2002 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"]) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.4-p6])]) # # Check to make sure that the build environment is sane. # AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftestfile # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` if test "[$]*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftestfile` fi if test "[$]*" != "X $srcdir/configure conftestfile" \ && test "[$]*" != "X conftestfile $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "[$]2" = conftestfile ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi rm -f conftest* AC_MSG_RESULT(yes)]) dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) dnl The program must properly implement --version. AC_DEFUN([AM_MISSING_PROG], [AC_MSG_CHECKING(for working $2) # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if ($2 --version) < /dev/null > /dev/null 2>&1; then $1=$2 AC_MSG_RESULT(found) else $1="$3/missing $2" AC_MSG_RESULT(missing) fi AC_SUBST($1)]) # Like AC_CONFIG_HEADER, but automatically create stamp file. AC_DEFUN([AM_CONFIG_HEADER], [AC_PREREQ([2.12]) AC_CONFIG_HEADER([$1]) dnl When config.status generates a header, we must update the stamp-h file. dnl This file resides in the same directory as the config header dnl that is generated. We must strip everything past the first ":", dnl and everything past the last "/". AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>, <>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>, <>; do case " <<$>>CONFIG_HEADERS " in *" <<$>>am_file "*<<)>> echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx ;; esac am_indx=`expr "<<$>>am_indx" + 1` done<<>>dnl>>) changequote([,]))]) # isc-posix.m4 serial 2 (gettext-0.11.2) dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. # This file is not needed with autoconf-2.53 and newer. Remove it in 2005. # This test replaces the one in autoconf. # Currently this macro should have the same name as the autoconf macro # because gettext's gettext.m4 (distributed in the automake package) # still uses it. Otherwise, the use in gettext.m4 makes autoheader # give these diagnostics: # configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX # configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX undefine([AC_ISC_POSIX]) AC_DEFUN([AC_ISC_POSIX], [ dnl This test replaces the obsolescent AC_ISC_POSIX kludge. AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) ] ) # serial 1 # @defmac AC_PROG_CC_STDC # @maindex PROG_CC_STDC # @ovindex CC # If the C compiler in not in ANSI C mode by default, try to add an option # to output variable @code{CC} to make it so. This macro tries various # options that select ANSI C on some system or another. It considers the # compiler to be in ANSI C mode if it handles function prototypes correctly. # # If you use this macro, you should check after calling it whether the C # compiler has been set to accept ANSI C; if not, the shell variable # @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source # code in ANSI C, you can make an un-ANSIfied copy of it by using the # program @code{ansi2knr}, which comes with Ghostscript. # @end defmac AC_DEFUN([AM_PROG_CC_STDC], [AC_REQUIRE([AC_PROG_CC]) AC_BEFORE([$0], [AC_C_INLINE]) AC_BEFORE([$0], [AC_C_CONST]) dnl Force this before AC_PROG_CPP. Some cpp's, eg on HPUX, require dnl a magic option to avoid problems with ANSI preprocessor commands dnl like #elif. dnl FIXME: can't do this because then AC_AIX won't work due to a dnl circular dependency. dnl AC_BEFORE([$0], [AC_PROG_CPP]) AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C) AC_CACHE_VAL(am_cv_prog_cc_stdc, [am_cv_prog_cc_stdc=no ac_save_CC="$CC" # Don't try gcc -ansi; that turns off useful extensions and # breaks some systems' header files. # AIX -qlanglvl=ansi # Ultrix and OSF/1 -std1 # HP-UX -Aa -D_HPUX_SOURCE # SVR4 -Xc -D__EXTENSIONS__ for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" AC_TRY_COMPILE( [#include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; ], [ return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ], [am_cv_prog_cc_stdc="$ac_arg"; break]) done CC="$ac_save_CC" ]) if test -z "$am_cv_prog_cc_stdc"; then AC_MSG_RESULT([none needed]) else AC_MSG_RESULT($am_cv_prog_cc_stdc) fi case "x$am_cv_prog_cc_stdc" in x|xno) ;; *) CC="$CC $am_cv_prog_cc_stdc" ;; esac ]) dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not) dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page dnl also defines GSTUFF_PKG_ERRORS on error AC_DEFUN(PKG_CHECK_MODULES, [ succeeded=no if test -z "$PKG_CONFIG"; then AC_PATH_PROG(PKG_CONFIG, pkg-config, no) fi if test "$PKG_CONFIG" = "no" ; then echo "*** The pkg-config script could not be found. Make sure it is" echo "*** in your path, or set the PKG_CONFIG environment variable" echo "*** to the full path to pkg-config." echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." else PKG_CONFIG_MIN_VERSION=0.9.0 if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then AC_MSG_CHECKING(for $2) if $PKG_CONFIG --exists "$2" ; then AC_MSG_RESULT(yes) succeeded=yes AC_MSG_CHECKING($1_CFLAGS) $1_CFLAGS=`$PKG_CONFIG --cflags "$2"` AC_MSG_RESULT($$1_CFLAGS) AC_MSG_CHECKING($1_LIBS) $1_LIBS=`$PKG_CONFIG --libs "$2"` AC_MSG_RESULT($$1_LIBS) else $1_CFLAGS="" $1_LIBS="" ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` ifelse([$4], ,echo $$1_PKG_ERRORS,) fi AC_SUBST($1_CFLAGS) AC_SUBST($1_LIBS) else echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." echo "*** See http://www.freedesktop.org/software/pkgconfig" fi fi if test $succeeded = yes; then ifelse([$3], , :, [$3]) else ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4]) fi ]) gmrun-0.9.2/README0000644000175000001440000002012107755655620007224 gmrun 0.9.2 http://students.infoiasi.ro/~mishoo/site/gmrun.epl ------------ --------------------------------------------------- Short GtkEntry for file autocompletion + main.cc that does the needed stuff for running programs. This is intended as a replacement to grun or gnome-run, which (sorry) sucks. The idea comes from the KDE Window Manager (ALT-F2 in KDE). Though, GNOME is better :) Copyright (c) 2000-2003 Mihai Bazon Author: Mihai Bazon . send postcards to: Mihai Bazon, str. Republicii, nr. 350, sc. E, ap. 9, cod 6500 VASLUI - VASLUI Romania This program falls under the GNU General Public License version 2 or above. Features --------- * Tilda completion (~/ <==> $HOME/) * Completion works for separate words (e.g. you can type em which turns to emacs, type a SPACE, and write the file you want to open using completion). * I added history capability (limited to 20 entries, change history.cc for more, #define HIST_MAX_SIZE). History is maintained in the file " ~/.gmrun_history ". CHANGED (since 0.5.3, I think..) -- new config file parameter: History. * CTRL-Enter runs the command in a terminal. CTRL-Enter without any command starts a new terminal. * New configuration file: ~/.gmrunrc or /usr/local/share/gmrun/gmrunrc. Check one of them, configuration is very simple. From that file you can change window position and width, history size, terminal, URL handlers, etc. * You can use CTRL-R / CTRL-S to search through history, much like in bash or Emacs. Also, pressing "!" as the first character enters some special search mode, finding those history entries that begin with the entered text. * URL handlers (added in 0.6.0). Nice feature, allowing you to enter lines like "http://www.google.com" to start your favorite browser on www.google.com. The URL-s are configurable from the configuration file, in a simple manner (I hope..). * Extension handlers (added in 0.8.0). Basically you can run, for instance, a ".txt" file, assuming that you have configured a handler for it in the configuration file. The default handler for ".txt" files is, of course, Emacs. But you can easily change that, you... you VIM user! * UTF-8 support (added in 0.9.2) Requirements ------------- * A good C++ compiler (that is, g++ 3.0 or later). It did originally compile with g++ 2.95, but not anymore ;-] -- though that's easy to fix. * GTK-2. gmrun upto and including 0.8.1 were for GTK-1.x series, version 0.9.0 requires GTK-2. For code critics ----------------- This program is written in 2 hours. The code might seem a little weird, but it works, and that's what I'm interested in. Code completion is written in C++, although GTK+ is written in standard C. Should you think this is a problem, feel free to rewrite the code in C (it could be at least 4 times bigger). It uses some static data (I know, I'm a too lasy programmer to think about something better); this means that if you're having *two or more* GtkCompletionLine-s in a program, you're looking for trouble. The static data will be *shared* between them, and completion might not work correctly. However, I don't know for sure, and I'm not going to test this. Having all that said, you should know that I'm not actually a bad programmer ;-] The problem being too simple for huge code complications, I preferred the easy way of doing different kind of things. It works quite fine, so "don't expect tons of C code for completion" (quoted from some sources in mini-commander applet of GNOME). Compilation, installation -------------------------- Use the configure script: $ ./configure $ make $ make install After this the executable goes usually in /usr/local/bin, make sure this is in your path. Put this in your .sawmillrc: (require 'sawmill-defaults) (bind-keys global-keymap "S-C-M-RET" '(system "gmrun &")) Note that if you're using sawfish you have other ways to customize your keyboard, through the control panel. For another window managers you gonna have to find a way to bind this program to a key combination; otherwise it wouldn't be much help... (I coded it exactly to get rid of the mouse-time-wasting-walking). E.g. for IceWM (my favorite, at this time) you edit ~/.icewm/preferences and add a line like: KeySysRun="Alt+Ctrl+Shift+Enter" Tips and tricks (hope that doesn't sound MS-ish...) ---------------------------------------------------- 1. Everything that doesn't start with "/" or "~" gets completed from $PATH environment var. More exactly, all files from $PATH directories are subjects to completion (even if they are NOT executables; this is a bug, but I'm afraid I'm not willing to fix it). Pressing TAB once when no text is entered opens the completion window, which will contain ALL files under $PATH. 2. For instance you use TAB to complete from "nets" to "netscape-navigator". A small window appears, allowing you to select from: - netscape - netscape-communicator - netscape-navigator - netstat That is because all these executables have the same prefix, "nets". You type TAB twice to get to the third element ("netscape-navigator"). Now, if you want to add a parameter such as "-url http://blah.blah.org" you can press SPACE (the list disappears, and a SPACE is inserted after the netscape-navigator). 3. If you accidentally pressed TAB more than you wanted (in that small window, described above) you can use UP / DOWN arrows to select the right completion. 4. - ESC closes the completion window, leaving the selected text in the entry. - HOME / END - the same, but clears the selection. - SPACE - the same, but clears the selection and appends one space. - Pressing ENTER (anytime) runs the command that is written in the entry. - Pressing CTRL+Enter (anytime) runs the command in a terminal (check your configuration file). But if the entry is empty (no text is present, or only whitespaces) then a fresh terminal will be started. 5. Suppose you use CTRL-R to search backwards through history. If, accidentally, you skipped the line that you're interested in, you can use CTRL-S to search forward. This is more awesome than in bash :) It basically acts like a filter on history, for which you use CTRL-R instead of UP arrow, and CTRL-S instead of DOWN arrow. The same if you search something with "!": only lines that BEGIN with the entered text are matching, but you can reverse the search order using CTRL-R / CTRL-S. Very flexible approach. Bugs ----- * It gets pretty slow... Maybe I should consider writting it in ANSI-C, but.... maybe not. * Writting this README took me more time than writting the program. * As I mentioned before, the code is written in C++, although GTK+ is a C library. This is not actually a bug; I like C++ because programs become clearer and easier to maintain, not to mention the source file size is smaller. So, if anyone cares to port this to standard C, feel free to do it, but I fear the code should be rewritten (almost) from scratch. * Documentation is inexistent (except this file) (however, it would be quite useless). Should you have any problems mail me a detailed description; please put the text "ignore_me" in the subject line, for easy message filtering. :) (just kidding... I would gladely help if I can). * Actually I worked more than 2 hours. Anyway, the completion code took about 2-3 h to design and implement. Disclaimer ----------- * The Short Way: NO WARRANTIES OF ANY KIND. USE IT AT YOUR OWN RISK. * The Right Way: Please read the GNU General Public License. This program falls under its terms. (: END OF TERMS AND CONDITIONS :) gmrun-0.9.2/configure0000755000175000001440000022527307755654157010276 #! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated automatically using autoconf version 2.13 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # Defaults: ac_help= ac_default_prefix=/usr/local # Any additions from configure.in: ac_help="$ac_help --enable-debug=[no/yes] Debugging information == no <--> optimization == yes" ac_help="$ac_help --enable-system=[yes/no] Use "system" libc function to run commands " ac_help="$ac_help --enable-mtrace=[no/yes] Trace memory (de)allocation calls to detect memory leaks " ac_help="$ac_help --enable-stlport do we need stlport " ac_help="$ac_help --with-stlport-lib where stlport library is located" ac_help="$ac_help --enable-stlport do we need stlport " ac_help="$ac_help --with-stlport-includes where stlport headers are located" # Initialize some variables set by options. # The variables have the same names as the options, with # dashes changed to underlines. build=NONE cache_file=./config.cache exec_prefix=NONE host=NONE no_create= nonopt=NONE no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= target=NONE verbose= x_includes=NONE x_libraries=NONE bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' # Initialize some other variables. subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. ac_max_here_lines=12 ac_prev= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi case "$ac_option" in -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; *) ac_optarg= ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case "$ac_option" in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir="$ac_optarg" ;; -build | --build | --buil | --bui | --bu) ac_prev=build ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build="$ac_optarg" ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file="$ac_optarg" ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir="$ac_optarg" ;; -disable-* | --disable-*) ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` # Reject names that are not valid shell variable names. if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } fi ac_feature=`echo $ac_feature| sed 's/-/_/g'` eval "enable_${ac_feature}=no" ;; -enable-* | --enable-*) ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` # Reject names that are not valid shell variable names. if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } fi ac_feature=`echo $ac_feature| sed 's/-/_/g'` case "$ac_option" in *=*) ;; *) ac_optarg=yes ;; esac eval "enable_${ac_feature}='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix="$ac_optarg" ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he) # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat << EOF Usage: configure [options] [host] Options: [defaults in brackets after descriptions] Configuration: --cache-file=FILE cache test results in FILE --help print this message --no-create do not create output files --quiet, --silent do not print \`checking...' messages --version print the version of autoconf that created configure Directory and file names: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [same as prefix] --bindir=DIR user executables in DIR [EPREFIX/bin] --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] --libexecdir=DIR program executables in DIR [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data in DIR [PREFIX/share] --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data in DIR [PREFIX/com] --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] --libdir=DIR object code libraries in DIR [EPREFIX/lib] --includedir=DIR C header files in DIR [PREFIX/include] --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] --infodir=DIR info documentation in DIR [PREFIX/info] --mandir=DIR man documentation in DIR [PREFIX/man] --srcdir=DIR find the sources in DIR [configure dir or ..] --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names EOF cat << EOF Host type: --build=BUILD configure for building on BUILD [BUILD=HOST] --host=HOST configure for HOST [guessed] --target=TARGET configure for TARGET [TARGET=HOST] Features and packages: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --x-includes=DIR X include files are in DIR --x-libraries=DIR X library files are in DIR EOF if test -n "$ac_help"; then echo "--enable and --with options recognized:$ac_help" fi exit 0 ;; -host | --host | --hos | --ho) ac_prev=host ;; -host=* | --host=* | --hos=* | --ho=*) host="$ac_optarg" ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir="$ac_optarg" ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir="$ac_optarg" ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir="$ac_optarg" ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir="$ac_optarg" ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir="$ac_optarg" ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir="$ac_optarg" ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir="$ac_optarg" ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix="$ac_optarg" ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix="$ac_optarg" ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix="$ac_optarg" ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name="$ac_optarg" ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir="$ac_optarg" ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir="$ac_optarg" ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site="$ac_optarg" ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir="$ac_optarg" ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir="$ac_optarg" ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target="$ac_optarg" ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers) echo "configure generated by autoconf version 2.13" exit 0 ;; -with-* | --with-*) ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` # Reject names that are not valid shell variable names. if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } fi ac_package=`echo $ac_package| sed 's/-/_/g'` case "$ac_option" in *=*) ;; *) ac_optarg=yes ;; esac eval "with_${ac_package}='$ac_optarg'" ;; -without-* | --without-*) ac_package=`echo $ac_option|sed -e 's/-*without-//'` # Reject names that are not valid shell variable names. if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } fi ac_package=`echo $ac_package| sed 's/-/_/g'` eval "with_${ac_package}=no" ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes="$ac_optarg" ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries="$ac_optarg" ;; -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } ;; *) if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then echo "configure: warning: $ac_option: invalid host type" 1>&2 fi if test "x$nonopt" != xNONE; then { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } fi nonopt="$ac_option" ;; esac done if test -n "$ac_prev"; then { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } fi trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 # File descriptor usage: # 0 standard input # 1 file creation # 2 errors and warnings # 3 some systems may open it to /dev/tty # 4 used on the Kubota Titan # 6 checking for... messages and results # 5 compiler messages saved in config.log if test "$silent" = yes; then exec 6>/dev/null else exec 6>&1 fi exec 5>./config.log echo "\ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. " 1>&5 # Strip out --no-create and --no-recursion so they do not pile up. # Also quote any args containing shell metacharacters. ac_configure_args= for ac_arg do case "$ac_arg" in -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c) ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) ac_configure_args="$ac_configure_args '$ac_arg'" ;; *) ac_configure_args="$ac_configure_args $ac_arg" ;; esac done # NLS nuisances. # Only set these to C if already set. These must not be set unconditionally # because not all systems understand e.g. LANG=C (notably SCO). # Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! # Non-C LC_CTYPE values break the ctype check. if test "${LANG+set}" = set; then LANG=C; export LANG; fi if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo > confdefs.h # A filename unique to this package, relative to the directory that # configure is in, which we can look for to find out if srcdir is correct. ac_unique_file=configure.in # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ac_prog=$0 ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } else { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } fi fi srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then echo "loading site script $ac_site_file" . "$ac_site_file" fi done if test -r "$cache_file"; then echo "loading cache $cache_file" . $cache_file else echo "creating cache $cache_file" > $cache_file fi ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross ac_exeext= ac_objext=o if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then ac_n= ac_c=' ' ac_t=' ' else ac_n=-n ac_c= ac_t= fi else ac_n= ac_c='\c' ac_t= fi ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break fi done if test -z "$ac_aux_dir"; then { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } fi ac_config_guess=$ac_aux_dir/config.guess ac_config_sub=$ac_aux_dir/config.sub ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. am__api_version="1.4" # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 echo "configure:571: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" for ac_dir in $PATH; do # Account for people who put trailing slashes in PATH elements. case "$ac_dir/" in /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do if test -f $ac_dir/$ac_prog; then if test $ac_prog = install && grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : else ac_cv_path_install="$ac_dir/$ac_prog -c" break 2 fi fi done ;; esac done IFS="$ac_save_IFS" fi if test "${ac_cv_path_install+set}" = set; then INSTALL="$ac_cv_path_install" else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL="$ac_install_sh" fi fi echo "$ac_t""$INSTALL" 1>&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 echo "configure:624: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftestfile` fi if test "$*" != "X $srcdir/configure conftestfile" \ && test "$*" != "X conftestfile $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { echo "configure: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" 1>&2; exit 1; } fi test "$2" = conftestfile ) then # Ok. : else { echo "configure: error: newly created file is older than distributed files! Check your system clock" 1>&2; exit 1; } fi rm -f conftest* echo "$ac_t""yes" 1>&6 if test "$program_transform_name" = s,x,x,; then program_transform_name= else # Double any \ or $. echo might interpret backslashes. cat <<\EOF_SED > conftestsed s,\\,\\\\,g; s,\$,$$,g EOF_SED program_transform_name="`echo $program_transform_name|sed -f conftestsed`" rm -f conftestsed fi test "$program_prefix" != NONE && program_transform_name="s,^,${program_prefix},; $program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" # sed with no file args requires a program. test "$program_transform_name" = "" && program_transform_name="s,x,x," echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 echo "configure:681: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftestmake <<\EOF all: @echo 'ac_maketemp="${MAKE}"' EOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftestmake fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$ac_t""yes" 1>&6 SET_MAKE= else echo "$ac_t""no" 1>&6 SET_MAKE="MAKE=${MAKE-make}" fi PACKAGE=gmrun VERSION=0.9.2 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } fi cat >> confdefs.h <> confdefs.h <&6 echo "configure:727: checking for working aclocal-${am__api_version}" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (aclocal-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then ACLOCAL=aclocal-${am__api_version} echo "$ac_t""found" 1>&6 else ACLOCAL="$missing_dir/missing aclocal-${am__api_version}" echo "$ac_t""missing" 1>&6 fi echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 echo "configure:740: checking for working autoconf" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (autoconf --version) < /dev/null > /dev/null 2>&1; then AUTOCONF=autoconf echo "$ac_t""found" 1>&6 else AUTOCONF="$missing_dir/missing autoconf" echo "$ac_t""missing" 1>&6 fi echo $ac_n "checking for working automake-${am__api_version}""... $ac_c" 1>&6 echo "configure:753: checking for working automake-${am__api_version}" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (automake-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then AUTOMAKE=automake-${am__api_version} echo "$ac_t""found" 1>&6 else AUTOMAKE="$missing_dir/missing automake-${am__api_version}" echo "$ac_t""missing" 1>&6 fi echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 echo "configure:766: checking for working autoheader" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (autoheader --version) < /dev/null > /dev/null 2>&1; then AUTOHEADER=autoheader echo "$ac_t""found" 1>&6 else AUTOHEADER="$missing_dir/missing autoheader" echo "$ac_t""missing" 1>&6 fi echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 echo "configure:779: checking for working makeinfo" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (makeinfo --version) < /dev/null > /dev/null 2>&1; then MAKEINFO=makeinfo echo "$ac_t""found" 1>&6 else MAKEINFO="$missing_dir/missing makeinfo" echo "$ac_t""missing" 1>&6 fi # Check whether --enable-debug or --disable-debug was given. if test "${enable_debug+set}" = set; then enableval="$enable_debug" : else enable_debug=no fi if ! test "x$enable_debug" != "xyes"; then CFLAGS="-g3 -O0 -DDEBUG" CXXFLAGS="-g3 -O0 -DDEBUG" fi # Check whether --enable-system or --disable-system was given. if test "${enable_system+set}" = set; then enableval="$enable_system" : else enable_system=no fi if ! test "x$enable_system" != "xyes"; then CFLAGS="$CFLAGS -DUSE_SYSTEM" CXXFLAGS="$CXXFLAGS -DUSE_SYSTEM" fi # Check whether --enable-mtrace or --disable-mtrace was given. if test "${enable_mtrace+set}" = set; then enableval="$enable_mtrace" : else enable_mtrace=no fi if ! test "x$enable_mtrace" != "xyes"; then CFLAGS="$CFLAGS -DMTRACE" CXXFLAGS="$CXXFLAGS -DMTRACE" fi echo $ac_n "checking for strerror in -lcposix""... $ac_c" 1>&6 echo "configure:840: checking for strerror in -lcposix" >&5 ac_lib_var=`echo cposix'_'strerror | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-lcposix $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 LIBS="$LIBS -lcposix" else echo "$ac_t""no" 1>&6 fi # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo "configure:884: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_CC="gcc" break fi done IFS="$ac_save_ifs" fi fi CC="$ac_cv_prog_CC" if test -n "$CC"; then echo "$ac_t""$CC" 1>&6 else echo "$ac_t""no" 1>&6 fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo "configure:914: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_prog_rejected=no ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" break fi done IFS="$ac_save_ifs" if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# -gt 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift set dummy "$ac_dir/$ac_word" "$@" shift ac_cv_prog_CC="$@" fi fi fi fi CC="$ac_cv_prog_CC" if test -n "$CC"; then echo "$ac_t""$CC" 1>&6 else echo "$ac_t""no" 1>&6 fi if test -z "$CC"; then case "`uname -s`" in *win32* | *WIN32*) # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo "configure:965: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_CC="cl" break fi done IFS="$ac_save_ifs" fi fi CC="$ac_cv_prog_CC" if test -n "$CC"; then echo "$ac_t""$CC" 1>&6 else echo "$ac_t""no" 1>&6 fi ;; esac fi test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 echo "configure:997: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF #line 1008 "configure" #include "confdefs.h" main(){return(0);} EOF if { (eval echo configure:1013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then ac_cv_prog_cc_cross=no else ac_cv_prog_cc_cross=yes fi else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_prog_cc_works=no fi rm -fr conftest* ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 echo "configure:1039: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 echo "configure:1044: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no fi fi echo "$ac_t""$ac_cv_prog_gcc" 1>&6 if test $ac_cv_prog_gcc = yes; then GCC=yes else GCC= fi ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 echo "configure:1072: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then ac_cv_prog_cc_g=yes else ac_cv_prog_cc_g=no fi rm -f conftest* fi echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 if test "$ac_test_CFLAGS" = set; then CFLAGS="$ac_save_CFLAGS" elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6 echo "configure:1107: checking for ${CC-cc} option to accept ANSI C" >&5 if eval "test \"`echo '$''{'am_cv_prog_cc_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else am_cv_prog_cc_stdc=no ac_save_CC="$CC" # Don't try gcc -ansi; that turns off useful extensions and # breaks some systems' header files. # AIX -qlanglvl=ansi # Ultrix and OSF/1 -std1 # HP-UX -Aa -D_HPUX_SOURCE # SVR4 -Xc -D__EXTENSIONS__ for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" cat > conftest.$ac_ext < #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main() { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } EOF if { (eval echo configure:1160: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* am_cv_prog_cc_stdc="$ac_arg"; break else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest* done CC="$ac_save_CC" fi if test -z "$am_cv_prog_cc_stdc"; then echo "$ac_t""none needed" 1>&6 else echo "$ac_t""$am_cv_prog_cc_stdc" 1>&6 fi case "x$am_cv_prog_cc_stdc" in x|xno) ;; *) CC="$CC $am_cv_prog_cc_stdc" ;; esac ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 echo "configure:1188: checking for $ac_hdr that defines DIR" >&5 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_hdr> int main() { DIR *dirp = 0; ; return 0; } EOF if { (eval echo configure:1201: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_dirent_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` cat >> confdefs.h <&6 fi done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 echo "configure:1226: checking for opendir in -ldir" >&5 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-ldir $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 LIBS="$LIBS -ldir" else echo "$ac_t""no" 1>&6 fi else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 echo "configure:1267: checking for opendir in -lx" >&5 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-lx $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 LIBS="$LIBS -lx" else echo "$ac_t""no" 1>&6 fi fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 echo "configure:1309: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else # This must be in double quotes, not single quotes, because CPP may get # substituted into the Makefile and "${CC-cc}" will confuse make. CPP="${CC-cc} -E" # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1330: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1347: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1364: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* CPP=/lib/cpp fi rm -f conftest* fi rm -f conftest* fi rm -f conftest* ac_cv_prog_CPP="$CPP" fi CPP="$ac_cv_prog_CPP" else ac_cv_prog_CPP="$CPP" fi echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 echo "configure:1389: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include #include #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1402: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* ac_cv_header_stdc=yes else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* ac_cv_header_stdc=no fi rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | egrep "memchr" >/dev/null 2>&1; then : else rm -rf conftest* ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | egrep "free" >/dev/null 2>&1; then : else rm -rf conftest* ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') #define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF if { (eval echo configure:1469: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -fr conftest* ac_cv_header_stdc=no fi rm -fr conftest* fi fi fi echo "$ac_t""$ac_cv_header_stdc" 1>&6 if test $ac_cv_header_stdc = yes; then cat >> confdefs.h <<\EOF #define STDC_HEADERS 1 EOF fi for ac_prog in $CCC c++ g++ gcc CC cxx cc++ cl do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo "configure:1497: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_CXX="$ac_prog" break fi done IFS="$ac_save_ifs" fi fi CXX="$ac_cv_prog_CXX" if test -n "$CXX"; then echo "$ac_t""$CXX" 1>&6 else echo "$ac_t""no" 1>&6 fi test -n "$CXX" && break done test -n "$CXX" || CXX="gcc" echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 echo "configure:1529: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext << EOF #line 1540 "configure" #include "confdefs.h" int main(){return(0);} EOF if { (eval echo configure:1545: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cxx_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then ac_cv_prog_cxx_cross=no else ac_cv_prog_cxx_cross=yes fi else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_prog_cxx_works=no fi rm -fr conftest* ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross echo "$ac_t""$ac_cv_prog_cxx_works" 1>&6 if test $ac_cv_prog_cxx_works = no; then { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 echo "configure:1571: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 cross_compiling=$ac_cv_prog_cxx_cross echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 echo "configure:1576: checking whether we are using GNU C++" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.C <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gxx=yes else ac_cv_prog_gxx=no fi fi echo "$ac_t""$ac_cv_prog_gxx" 1>&6 if test $ac_cv_prog_gxx = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS="${CXXFLAGS+set}" ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 echo "configure:1604: checking whether ${CXX-g++} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else echo 'void f(){}' > conftest.cc if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then ac_cv_prog_cxx_g=yes else ac_cv_prog_cxx_g=no fi rm -f conftest* fi echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6 if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS="$ac_save_CXXFLAGS" elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi echo $ac_n "checking for stlport libraries""... $ac_c" 1>&6 echo "configure:1638: checking for stlport libraries" >&5 ac_stlport_lib="no" ac_enable_stlport="yes" # Check whether --enable-stlport or --disable-stlport was given. if test "${enable_stlport+set}" = set; then enableval="$enable_stlport" ac_enable_stlport="$enableval" fi if test "$ac_enable_stlport" = "no"; then have_stlport_inc="no" else # Check whether --with-stlport-lib or --without-stlport-lib was given. if test "${with_stlport_lib+set}" = set; then withval="$with_stlport_lib" ac_stlport_lib="$withval" fi if eval "test \"`echo '$''{'ac_cv_lib_stlport_lib'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test "$ac_stlport_lib" = "no"; then stlport_lib_dirs="\ $STLPORTDIR/lib \ /usr/lib \ /usr/local/lib \ /usr/local/tiit/lib" for dir in $stlport_lib_dirs; do if test -r "$dir/libstlport_gcc.so"; then ac_stlport_lib=$dir break fi done fi ac_cv_lib_stlport_lib=$ac_stlport_lib fi if test "$ac_cv_lib_stlport_lib" = "no"; then have_stlport_lib="no" STLPORT_LIBDIR="" STLPORT_LDFLAGS="" else have_stlport_lib="yes" STLPORT_LIBDIR="$ac_cv_lib_stlport_lib" STLPORT_LDFLAGS="-L$STLPORT_LIBDIR -lstlport_gcc -lpthread" fi fi echo "$ac_t""$ac_cv_lib_stlport_lib" 1>&6 echo $ac_n "checking for stlport headers""... $ac_c" 1>&6 echo "configure:1710: checking for stlport headers" >&5 ac_stlport_includes="no" ac_enable_stlport="yes" # Check whether --enable-stlport or --disable-stlport was given. if test "${enable_stlport+set}" = set; then enableval="$enable_stlport" ac_enable_stlport="$enableval" fi if test "$ac_enable_stlport" = "no"; then have_stlport_inc="no" else # Check whether --with-stlport-includes or --without-stlport-includes was given. if test "${with_stlport_includes+set}" = set; then withval="$with_stlport_includes" ac_stlport_includes="$withval" fi if eval "test \"`echo '$''{'ac_cv_header_stlport_includes'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test "$ac_stlport_includes" = "no"; then stlport_include_dirs="\ $LIBCONFIGDIR/include/stlport \ /usr/include/stlport \ /usr/local/include/stlport \ /usr/local/include/ /usr/local/stlport/include" for dir in $stlport_include_dirs; do if test -r "$dir/algorithm"; then ac_stlport_includes=$dir break fi done fi ac_cv_header_stlport_includes=$ac_stlport_includes fi if test "$ac_cv_header_stlport_includes" = "no"; then have_stlport_inc="no" STLPORT_INCDIR="" STLPORT_CXXFLAGS="" else have_stlport_inc="yes" STLPORT_INCDIR="$ac_cv_header_stlport_includes" STLPORT_CXXFLAGS="-I$STLPORT_INCDIR" fi fi echo "$ac_t""$ac_cv_header_stlport_includes" 1>&6 echo $ac_n "checking for poptGetContext""... $ac_c" 1>&6 echo "configure:1783: checking for poptGetContext" >&5 if eval "test \"`echo '$''{'ac_cv_func_poptGetContext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char poptGetContext(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_poptGetContext) || defined (__stub___poptGetContext) choke me #else poptGetContext(); #endif ; return 0; } EOF if { (eval echo configure:1811: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_poptGetContext=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_func_poptGetContext=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_func_'poptGetContext`\" = yes"; then echo "$ac_t""yes" 1>&6 : else echo "$ac_t""no" 1>&6 echo $ac_n "checking for poptGetContext in -lpopt""... $ac_c" 1>&6 echo "configure:1829: checking for poptGetContext in -lpopt" >&5 ac_lib_var=`echo popt'_'poptGetContext | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-lpopt $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 LIBS="${LIBS} -lpopt" else echo "$ac_t""no" 1>&6 echo "*** You need to get libpopt ***";exit fi fi succeeded=no if test -z "$PKG_CONFIG"; then # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo "configure:1881: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else case "$PKG_CONFIG" in /*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; ?:/*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a dos path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word" break fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi PKG_CONFIG="$ac_cv_path_PKG_CONFIG" if test -n "$PKG_CONFIG"; then echo "$ac_t""$PKG_CONFIG" 1>&6 else echo "$ac_t""no" 1>&6 fi fi if test "$PKG_CONFIG" = "no" ; then echo "*** The pkg-config script could not be found. Make sure it is" echo "*** in your path, or set the PKG_CONFIG environment variable" echo "*** to the full path to pkg-config." echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." else PKG_CONFIG_MIN_VERSION=0.9.0 if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then echo $ac_n "checking for glib-2.0 >= 2.0.4 gobject-2.0 >= 2.0.4 gthread-2.0 >= 2.0.4""... $ac_c" 1>&6 echo "configure:1927: checking for glib-2.0 >= 2.0.4 gobject-2.0 >= 2.0.4 gthread-2.0 >= 2.0.4" >&5 if $PKG_CONFIG --exists "glib-2.0 >= 2.0.4 gobject-2.0 >= 2.0.4 gthread-2.0 >= 2.0.4" ; then echo "$ac_t""yes" 1>&6 succeeded=yes echo $ac_n "checking GLIB_CFLAGS""... $ac_c" 1>&6 echo "configure:1938: checking GLIB_CFLAGS" >&5 GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.0.4 gobject-2.0 >= 2.0.4 gthread-2.0 >= 2.0.4"` echo "$ac_t""$GLIB_CFLAGS" 1>&6 echo $ac_n "checking GLIB_LIBS""... $ac_c" 1>&6 echo "configure:1945: checking GLIB_LIBS" >&5 GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.0.4 gobject-2.0 >= 2.0.4 gthread-2.0 >= 2.0.4"` echo "$ac_t""$GLIB_LIBS" 1>&6 else GLIB_CFLAGS="" GLIB_LIBS="" ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. GLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glib-2.0 >= 2.0.4 gobject-2.0 >= 2.0.4 gthread-2.0 >= 2.0.4"` echo $GLIB_PKG_ERRORS fi else echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." echo "*** See http://www.freedesktop.org/software/pkgconfig" fi fi if test $succeeded = yes; then : else { echo "configure: error: Library requirements (glib-2.0 >= 2.0.4 gobject-2.0 >= 2.0.4 gthread-2.0 >= 2.0.4) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." 1>&2; exit 1; } fi succeeded=no if test -z "$PKG_CONFIG"; then # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo "configure:1987: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else case "$PKG_CONFIG" in /*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; ?:/*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a dos path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word" break fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi PKG_CONFIG="$ac_cv_path_PKG_CONFIG" if test -n "$PKG_CONFIG"; then echo "$ac_t""$PKG_CONFIG" 1>&6 else echo "$ac_t""no" 1>&6 fi fi if test "$PKG_CONFIG" = "no" ; then echo "*** The pkg-config script could not be found. Make sure it is" echo "*** in your path, or set the PKG_CONFIG environment variable" echo "*** to the full path to pkg-config." echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." else PKG_CONFIG_MIN_VERSION=0.9.0 if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then echo $ac_n "checking for gtk+-2.0 >= 2.0.5""... $ac_c" 1>&6 echo "configure:2031: checking for gtk+-2.0 >= 2.0.5" >&5 if $PKG_CONFIG --exists "gtk+-2.0 >= 2.0.5" ; then echo "$ac_t""yes" 1>&6 succeeded=yes echo $ac_n "checking GTK_CFLAGS""... $ac_c" 1>&6 echo "configure:2038: checking GTK_CFLAGS" >&5 GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.0.5"` echo "$ac_t""$GTK_CFLAGS" 1>&6 echo $ac_n "checking GTK_LIBS""... $ac_c" 1>&6 echo "configure:2043: checking GTK_LIBS" >&5 GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.0.5"` echo "$ac_t""$GTK_LIBS" 1>&6 else GTK_CFLAGS="" GTK_LIBS="" ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0 >= 2.0.5"` echo $GTK_PKG_ERRORS fi else echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." echo "*** See http://www.freedesktop.org/software/pkgconfig" fi fi if test $succeeded = yes; then : else { echo "configure: error: Library requirements (gtk+-2.0 >= 2.0.5) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." 1>&2; exit 1; } fi if test "x${datadir}" = 'x${prefix}/share'; then if test "x${prefix}" = "xNONE"; then prefix=/usr/local cat >> confdefs.h <> confdefs.h <> confdefs.h <> confdefs.h < confcache <<\EOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs. It is not useful on other systems. # If it contains results you don't want to keep, you may remove or edit it. # # By default, configure uses ./config.cache as the cache file, # creating it if it does not exist already. You can give configure # the --cache-file=FILE option to use a different cache file; that is # what configure does when it calls configure scripts in # subdirectories, so they share the cache. # Giving --cache-file=/dev/null disables caching, for debugging configure. # config.status only pays attention to the cache file if you give it the # --recheck option to rerun configure. # EOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote substitution # turns \\\\ into \\, and sed turns \\ into \). sed -n \ -e "s/'/'\\\\''/g" \ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' ;; esac >> confcache if cmp -s $cache_file confcache; then : else if test -w $cache_file; then echo "updating cache $cache_file" cat confcache > $cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Any assignment to VPATH causes Sun make to only execute # the first set of double-colon rules, so remove it if not needed. # If there is a colon in the path, we need to keep it. if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' fi trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 DEFS=-DHAVE_CONFIG_H # Without the "./", some shells look in PATH for config.status. : ${CONFIG_STATUS=./config.status} echo creating $CONFIG_STATUS rm -f $CONFIG_STATUS cat > $CONFIG_STATUS </dev/null | sed 1q`: # # $0 $ac_configure_args # # Compiler output produced by configure, useful for debugging # configure, is in ./config.log if it exists. ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" for ac_option do case "\$ac_option" in -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; -version | --version | --versio | --versi | --vers | --ver | --ve | --v) echo "$CONFIG_STATUS generated by autoconf version 2.13" exit 0 ;; -help | --help | --hel | --he | --h) echo "\$ac_cs_usage"; exit 0 ;; *) echo "\$ac_cs_usage"; exit 1 ;; esac done ac_given_srcdir=$srcdir ac_given_INSTALL="$INSTALL" trap 'rm -fr `echo " Makefile src/Makefile config/Makefile gmrun.spec config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 EOF cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF $ac_vpsub $extrasub s%@SHELL@%$SHELL%g s%@CFLAGS@%$CFLAGS%g s%@CPPFLAGS@%$CPPFLAGS%g s%@CXXFLAGS@%$CXXFLAGS%g s%@FFLAGS@%$FFLAGS%g s%@DEFS@%$DEFS%g s%@LDFLAGS@%$LDFLAGS%g s%@LIBS@%$LIBS%g s%@exec_prefix@%$exec_prefix%g s%@prefix@%$prefix%g s%@program_transform_name@%$program_transform_name%g s%@bindir@%$bindir%g s%@sbindir@%$sbindir%g s%@libexecdir@%$libexecdir%g s%@datadir@%$datadir%g s%@sysconfdir@%$sysconfdir%g s%@sharedstatedir@%$sharedstatedir%g s%@localstatedir@%$localstatedir%g s%@libdir@%$libdir%g s%@includedir@%$includedir%g s%@oldincludedir@%$oldincludedir%g s%@infodir@%$infodir%g s%@mandir@%$mandir%g s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g s%@INSTALL_DATA@%$INSTALL_DATA%g s%@PACKAGE@%$PACKAGE%g s%@VERSION@%$VERSION%g s%@ACLOCAL@%$ACLOCAL%g s%@AUTOCONF@%$AUTOCONF%g s%@AUTOMAKE@%$AUTOMAKE%g s%@AUTOHEADER@%$AUTOHEADER%g s%@MAKEINFO@%$MAKEINFO%g s%@SET_MAKE@%$SET_MAKE%g s%@CC@%$CC%g s%@CPP@%$CPP%g s%@CXX@%$CXX%g s%@STLPORT_INCDIR@%$STLPORT_INCDIR%g s%@STLPORT_INCLUDES@%$STLPORT_INCLUDES%g s%@STLPORT_LIBDIR@%$STLPORT_LIBDIR%g s%@STLPORT_LDFLAGS@%$STLPORT_LDFLAGS%g s%@STLPORT_CXXFLAGS@%$STLPORT_CXXFLAGS%g s%@PKG_CONFIG@%$PKG_CONFIG%g s%@GLIB_CFLAGS@%$GLIB_CFLAGS%g s%@GLIB_LIBS@%$GLIB_LIBS%g s%@GTK_CFLAGS@%$GTK_CFLAGS%g s%@GTK_LIBS@%$GTK_LIBS%g s%@PACKAGE_DATA_DIR@%$PACKAGE_DATA_DIR%g s%@PREFIX@%$PREFIX%g CEOF EOF cat >> $CONFIG_STATUS <<\EOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. ac_file=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_cmds # Line after last line for current file. ac_more_lines=: ac_sed_cmds="" while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file else sed "${ac_end}q" conftest.subs > conftest.s$ac_file fi if test ! -s conftest.s$ac_file; then ac_more_lines=false rm -f conftest.s$ac_file else if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f conftest.s$ac_file" else ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" fi ac_file=`expr $ac_file + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_cmds` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi EOF cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case "$ac_file" in *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; *) ac_file_in="${ac_file}.in" ;; esac # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. # Remove last slash and all that follows it. Not all systems have dirname. ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then # The file is in a subdirectory. test ! -d "$ac_dir" && mkdir "$ac_dir" ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" # A "../" for each directory in $ac_dir_suffix. ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` else ac_dir_suffix= ac_dots= fi case "$ac_given_srcdir" in .) srcdir=. if test -z "$ac_dots"; then top_srcdir=. else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; *) # Relative path. srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" top_srcdir="$ac_dots$ac_given_srcdir" ;; esac case "$ac_given_INSTALL" in [/$]*) INSTALL="$ac_given_INSTALL" ;; *) INSTALL="$ac_dots$ac_given_INSTALL" ;; esac echo creating "$ac_file" rm -f "$ac_file" configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." case "$ac_file" in *Makefile*) ac_comsub="1i\\ # $configure_input" ;; *) ac_comsub= ;; esac ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` sed -e "$ac_comsub s%@configure_input@%$configure_input%g s%@srcdir@%$srcdir%g s%@top_srcdir@%$top_srcdir%g s%@INSTALL@%$INSTALL%g " $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file fi; done rm -f conftest.s* # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where # NAME is the cpp macro being defined and VALUE is the value it is being given. # # ac_d sets the value in "#define NAME VALUE" lines. ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)' ac_dB='\([ ][ ]*\)[^ ]*%\1#\2' ac_dC='\3' ac_dD='%g' # ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE". ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_uB='\([ ]\)%\1#\2define\3' ac_uC=' ' ac_uD='\4%g' # ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_eB='$%\1#\2define\3' ac_eC=' ' ac_eD='%g' if test "${CONFIG_HEADERS+set}" != set; then EOF cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF fi for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case "$ac_file" in *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; *) ac_file_in="${ac_file}.in" ;; esac echo creating $ac_file rm -f conftest.frag conftest.in conftest.out ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` cat $ac_file_inputs > conftest.in EOF # Transform confdefs.h into a sed script conftest.vals that substitutes # the proper values into config.h.in to produce config.h. And first: # Protect against being on the right side of a sed subst in config.status. # Protect against being in an unquoted here document in config.status. rm -f conftest.vals cat > conftest.hdr <<\EOF s/[\\&%]/\\&/g s%[\\$`]%\\&%g s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp s%ac_d%ac_u%gp s%ac_u%ac_e%gp EOF sed -n -f conftest.hdr confdefs.h > conftest.vals rm -f conftest.hdr # This sed command replaces #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. cat >> conftest.vals <<\EOF s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */% EOF # Break up conftest.vals because some shells have a limit on # the size of here documents, and old seds have small limits too. rm -f conftest.tail while : do ac_lines=`grep -c . conftest.vals` # grep -c gives empty output for an empty file on some AIX systems. if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi # Write a limited-size here document to conftest.frag. echo ' cat > conftest.frag <> $CONFIG_STATUS sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS echo 'CEOF sed -f conftest.frag conftest.in > conftest.out rm -f conftest.in mv conftest.out conftest.in ' >> $CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail rm -f conftest.vals mv conftest.tail conftest.vals done rm -f conftest.vals cat >> $CONFIG_STATUS <<\EOF rm -f conftest.frag conftest.h echo "/* $ac_file. Generated automatically by configure. */" > conftest.h cat conftest.in >> conftest.h rm -f conftest.in if cmp -s $ac_file conftest.h 2>/dev/null; then echo "$ac_file is unchanged" rm -f conftest.h else # Remove last slash and all that follows it. Not all systems have dirname. ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then # The file is in a subdirectory. test ! -d "$ac_dir" && mkdir "$ac_dir" fi rm -f $ac_file mv conftest.h $ac_file fi fi; done EOF cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h exit 0 EOF chmod +x $CONFIG_STATUS rm -fr confdefs* $ac_clean_files test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 gmrun-0.9.2/configure.in0000644000175000001440000000475707755654146010700 dnl Process this file with autoconf to produce a configure script. AC_INIT(configure.in) AM_INIT_AUTOMAKE(gmrun, 0.9.2) AM_CONFIG_HEADER(config.h) AC_ARG_ENABLE(debug, [ --enable-debug=[no/yes] Debugging information == no <--> optimization == yes],, enable_debug=no) if [ ! test "x$enable_debug" != "xyes"]; then CFLAGS="-g3 -O0 -DDEBUG" CXXFLAGS="-g3 -O0 -DDEBUG" fi AC_ARG_ENABLE(system, [ --enable-system=[yes/no] Use "system" libc function to run commands ],, enable_system=no) if [ ! test "x$enable_system" != "xyes"]; then CFLAGS="$CFLAGS -DUSE_SYSTEM" CXXFLAGS="$CXXFLAGS -DUSE_SYSTEM" fi AC_ARG_ENABLE(mtrace, [ --enable-mtrace=[no/yes] Trace memory (de)allocation calls to detect memory leaks ],, enable_mtrace=no) if [ ! test "x$enable_mtrace" != "xyes"]; then CFLAGS="$CFLAGS -DMTRACE" CXXFLAGS="$CXXFLAGS -DMTRACE" fi AC_ISC_POSIX AC_PROG_CC AM_PROG_CC_STDC AC_HEADER_DIRENT AC_HEADER_STDC AC_PROG_CXX AC_PATH_STLPORT_LIB AC_PATH_STLPORT_INC AC_CHECK_FUNC( poptGetContext, , AC_CHECK_LIB(popt, poptGetContext, LIBS="${LIBS} -lpopt", echo "*** You need to get libpopt ***";exit ) ) PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.0.4 gobject-2.0 >= 2.0.4 gthread-2.0 >= 2.0.4) AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_LIBS) PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.0.5) AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) dnl Set PACKAGE_DATA_DIR in config.h. if test "x${datadir}" = 'x${prefix}/share'; then if test "x${prefix}" = "xNONE"; then prefix=/usr/local AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${ac_default_prefix}/share/${PACKAGE}") PACKAGE_DATA_DIR="${ac_default_prefix}/share/${PACKAGE}" else AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${prefix}/share/${PACKAGE}") PACKAGE_DATA_DIR="${prefix}/share/${PACKAGE}" fi else AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${datadir}/${PACKAGE}") PACKAGE_DATA_DIR="${datadir}/${PACKAGE}" fi AC_SUBST(PACKAGE_DATA_DIR) PREFIX=${prefix} AC_SUBST(PREFIX) dnl Set PACKAGE_SOURCE_DIR in config.h. packagesrcdir=`cd $srcdir && pwd` AC_DEFINE_UNQUOTED(PACKAGE_SOURCE_DIR, "${packagesrcdir}") dnl Use -Wall if we have gcc. changequote(,)dnl if test "x$GCC" = "xyes"; then case " $CFLAGS " in *[\ \ ]-Wall[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wall" ;; esac fi changequote([,])dnl AC_OUTPUT([ Makefile src/Makefile config/Makefile gmrun.spec ]) gmrun-0.9.2/install-sh0000755000175000001440000001273607245412713010351 #!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 gmrun-0.9.2/missing0000755000175000001440000002403607755652335007754 #! /bin/sh # Common stub for a few missing GNU programs while installing. # Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing 0.4 - GNU automake" ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; aclocal*) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. You can get \`$1Help2man' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then # We have makeinfo, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; tar) shift if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 fi # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequirements for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 gmrun-0.9.2/config/0000777000175000001440000000000007755656400007676 5gmrun-0.9.2/config/Makefile.am0000644000175000001440000000020207300673177011634 # $Id: Makefile.am,v 1.2 2001/05/17 06:58:07 mishoo Exp $ myrcdir = @PACKAGE_DATA_DIR@ myrc_DATA = gmrunrc EXTRA_DIST = gmrunrc gmrun-0.9.2/config/Makefile.in0000644000175000001440000001242507755656400011663 # Makefile.in generated automatically by automake 1.4-p6 from Makefile.am # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. # $Id: Makefile.am,v 1.2 2001/05/17 06:58:07 mishoo Exp $ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include DESTDIR = pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : CC = @CC@ CXX = @CXX@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ MAKEINFO = @MAKEINFO@ PACKAGE = @PACKAGE@ PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ PKG_CONFIG = @PKG_CONFIG@ PREFIX = @PREFIX@ STLPORT_CXXFLAGS = @STLPORT_CXXFLAGS@ STLPORT_INCDIR = @STLPORT_INCDIR@ STLPORT_INCLUDES = @STLPORT_INCLUDES@ STLPORT_LDFLAGS = @STLPORT_LDFLAGS@ STLPORT_LIBDIR = @STLPORT_LIBDIR@ VERSION = @VERSION@ myrcdir = @PACKAGE_DATA_DIR@ myrc_DATA = gmrunrc EXTRA_DIST = gmrunrc mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = DATA = $(myrc_DATA) DIST_COMMON = Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = tar GZIP_ENV = --best all: all-redirect .SUFFIXES: $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps config/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status install-myrcDATA: $(myrc_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(myrcdir) @list='$(myrc_DATA)'; for p in $$list; do \ if test -f $(srcdir)/$$p; then \ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(myrcdir)/$$p"; \ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(myrcdir)/$$p; \ else if test -f $$p; then \ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(myrcdir)/$$p"; \ $(INSTALL_DATA) $$p $(DESTDIR)$(myrcdir)/$$p; \ fi; fi; \ done uninstall-myrcDATA: @$(NORMAL_UNINSTALL) list='$(myrc_DATA)'; for p in $$list; do \ rm -f $(DESTDIR)$(myrcdir)/$$p; \ done tags: TAGS TAGS: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) subdir = config distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done info-am: info: info-am dvi-am: dvi: dvi-am check-am: all-am check: check-am installcheck-am: installcheck: installcheck-am install-exec-am: install-exec: install-exec-am install-data-am: install-myrcDATA install-data: install-data-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-am uninstall-am: uninstall-myrcDATA uninstall: uninstall-am all-am: Makefile $(DATA) all-redirect: all-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: $(mkinstalldirs) $(DESTDIR)$(myrcdir) mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: mostlyclean-am: mostlyclean-generic mostlyclean: mostlyclean-am clean-am: clean-generic mostlyclean-am clean: clean-am distclean-am: distclean-generic clean-am distclean: distclean-am maintainer-clean-am: maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-am .PHONY: uninstall-myrcDATA install-myrcDATA tags distdir info-am info \ dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ install-exec install-data-am install-data install-am install \ uninstall-am uninstall all-redirect all-am all installdirs \ mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gmrun-0.9.2/config/gmrunrc0000644000175000001440000000267507755652335011227 # gmrun configuration file # gmrun is (C) Mihai Bazon, # GPL v2.0 applies # Set terminal Terminal = gnome-terminal --start-factory-server --use-factory TermExec = ${Terminal} -e AlwaysInTerm = ssh telnet ftp lynx mc vi vim pine centericq perldoc man # Set window geometry (except height) Width = 400 Top = 100 Left = 200 # History size History = 256 # Shows last history line selected when invoked ShowLast = 1 # Show files starting with '.' # Default is 0 (off), set it to 1 if you want "hidden" files to show up # in the completion window ShowDotFiles = 0 # Timeout (in milliseconds) after which gmrun will simulate a TAB press # Set this to NULL if don't like this feature. TabTimeout = 0 # URL handlers # If the entered text is "http://www.google.com" then: # - %u gets replaced with the whole URL ("http://www.google.com") # - %s gets replaced with "//www.google.com". This is useful for URL-s # like "man:printf" --> %s will get replaced with "printf" URL_http = mozilla -remote "openURL(%u, new-window)" URL_mailto = mozilla -remote "mailto(%s)" URL_man = ${TermExec} 'man %s' URL_info = ${TermExec} 'info %s' URL_pd = ${TermExec} 'perldoc %s' URL_file = nautilus %s URL_readme = ${TermExec} 'less /usr/doc/%s/README' URL_info = ${TermExec} 'info %s' URL_sh = sh -c '%s' # extension handlers EXT:doc,rtf = AbiWord %s EXT:txt,cc,cpp,h,java,html,htm,epl,tex,latex,js,css,xml,xsl,am = emacs %s EXT:ps = gv %s EXT:pdf = xpdf %s gmrun-0.9.2/mkinstalldirs0000755000175000001440000000133007245412713011137 #! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.1.1.1 2001/02/23 07:48:27 mishoo Exp $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here gmrun-0.9.2/Makefile.am0000644000175000001440000000114607331274037010373 ## Process this file with automake to produce Makefile.in SUBDIRS = src config install-data-local: @$(NORMAL_INSTALL) if test -d $(srcdir)/pixmaps; then \ $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/pixmaps; \ for pixmap in $(srcdir)/pixmaps/*; do \ if test -f $$pixmap; then \ $(INSTALL_DATA) $$pixmap $(DESTDIR)$(pkgdatadir)/pixmaps; \ fi \ done \ fi dist-hook: if test -d pixmaps; then \ mkdir $(distdir)/pixmaps; \ for pixmap in pixmaps/*; do \ if test -f $$pixmap; then \ cp -p $$pixmap $(distdir)/pixmaps; \ fi \ done \ fi EXTRA_DIST = gmrun.spec.in gmrun-0.9.2/Makefile.in0000644000175000001440000002717207755656400010423 # Makefile.in generated automatically by automake 1.4-p6 from Makefile.am # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include DESTDIR = pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : CC = @CC@ CXX = @CXX@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ MAKEINFO = @MAKEINFO@ PACKAGE = @PACKAGE@ PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ PKG_CONFIG = @PKG_CONFIG@ PREFIX = @PREFIX@ STLPORT_CXXFLAGS = @STLPORT_CXXFLAGS@ STLPORT_INCDIR = @STLPORT_INCDIR@ STLPORT_INCLUDES = @STLPORT_INCLUDES@ STLPORT_LDFLAGS = @STLPORT_LDFLAGS@ STLPORT_LIBDIR = @STLPORT_LIBDIR@ VERSION = @VERSION@ SUBDIRS = src config EXTRA_DIST = gmrun.spec.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = gmrun.spec DIST_COMMON = README ./stamp-h.in AUTHORS COPYING ChangeLog INSTALL \ Makefile.am Makefile.in NEWS acconfig.h acinclude.m4 aclocal.m4 \ config.h.in configure configure.in gmrun.spec.in install-sh missing \ mkinstalldirs DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = tar GZIP_ENV = --best all: all-redirect .SUFFIXES: $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status $(ACLOCAL_M4): configure.in acinclude.m4 cd $(srcdir) && $(ACLOCAL) config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) cd $(srcdir) && $(AUTOCONF) config.h: stamp-h @if test ! -f $@; then \ rm -f stamp-h; \ $(MAKE) stamp-h; \ else :; fi stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES= CONFIG_HEADERS=config.h \ $(SHELL) ./config.status @echo timestamp > stamp-h 2> /dev/null $(srcdir)/config.h.in: $(srcdir)/stamp-h.in @if test ! -f $@; then \ rm -f $(srcdir)/stamp-h.in; \ $(MAKE) $(srcdir)/stamp-h.in; \ else :; fi $(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h cd $(top_srcdir) && $(AUTOHEADER) @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null mostlyclean-hdr: clean-hdr: distclean-hdr: -rm -f config.h maintainer-clean-hdr: gmrun.spec: $(top_builddir)/config.status gmrun.spec.in cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. @SET_MAKE@ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive info-recursive dvi-recursive: @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ rev="$$subdir $$rev"; \ test "$$subdir" != "." || dot_seen=yes; \ done; \ test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ here=`pwd` && cd $(srcdir) \ && mkid -f$$here/ID $$unique $(LISP) TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS) mostlyclean-tags: clean-tags: distclean-tags: -rm -f TAGS ID maintainer-clean-tags: distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist -rm -rf $(distdir) GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz mkdir $(distdir)/=build mkdir $(distdir)/=inst dc_install_base=`cd $(distdir)/=inst && pwd`; \ cd $(distdir)/=build \ && ../configure --srcdir=.. --prefix=$$dc_install_base \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) dist -rm -rf $(distdir) @banner="$(distdir).tar.gz is ready for distribution"; \ dashes=`echo "$$banner" | sed s/./=/g`; \ echo "$$dashes"; \ echo "$$banner"; \ echo "$$dashes" dist: distdir -chmod -R a+r $(distdir) GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) -rm -rf $(distdir) dist-all: distdir -chmod -R a+r $(distdir) GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) -rm -rf $(distdir) distdir: $(DISTFILES) -rm -rf $(distdir) mkdir $(distdir) -chmod 777 $(distdir) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ chmod 777 $(distdir)/$$subdir; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook info-am: info: info-recursive dvi-am: dvi: dvi-recursive check-am: all-am check: check-recursive installcheck-am: installcheck: installcheck-recursive all-recursive-am: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive install-exec-am: install-exec: install-exec-recursive install-data-am: install-data-local install-data: install-data-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-recursive uninstall-am: uninstall: uninstall-recursive all-am: Makefile config.h all-redirect: all-recursive-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: installdirs-recursive installdirs-am: mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic mostlyclean: mostlyclean-recursive clean-am: clean-hdr clean-tags clean-generic mostlyclean-am clean: clean-recursive distclean-am: distclean-hdr distclean-tags distclean-generic clean-am distclean: distclean-recursive -rm -f config.status maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \ maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-recursive -rm -f config.status .PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \ install-data-recursive uninstall-data-recursive install-exec-recursive \ uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ all-recursive check-recursive installcheck-recursive info-recursive \ dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \ install-exec-am install-exec install-data-local install-data-am \ install-data install-am install uninstall-am uninstall all-redirect \ all-am all installdirs-am installdirs mostlyclean-generic \ distclean-generic clean-generic maintainer-clean-generic clean \ mostlyclean distclean maintainer-clean install-data-local: @$(NORMAL_INSTALL) if test -d $(srcdir)/pixmaps; then \ $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/pixmaps; \ for pixmap in $(srcdir)/pixmaps/*; do \ if test -f $$pixmap; then \ $(INSTALL_DATA) $$pixmap $(DESTDIR)$(pkgdatadir)/pixmaps; \ fi \ done \ fi dist-hook: if test -d pixmaps; then \ mkdir $(distdir)/pixmaps; \ for pixmap in pixmaps/*; do \ if test -f $$pixmap; then \ cp -p $$pixmap $(distdir)/pixmaps; \ fi \ done \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gmrun-0.9.2/config.h.in0000644000175000001440000000134307755652653010377 /* config.h.in. Generated automatically from configure.in by autoheader. */ /* Define if you have the ANSI C header files. */ #undef STDC_HEADERS #undef ENABLE_NLS #undef HAVE_CATGETS #undef HAVE_GETTEXT #undef HAVE_LC_MESSAGES #undef HAVE_STPCPY #undef HAVE_LIBSM #undef PACKAGE_LOCALE_DIR #undef PACKAGE_DATA_DIR #undef PACKAGE_SOURCE_DIR /* Define if you have the header file. */ #undef HAVE_DIRENT_H /* Define if you have the header file. */ #undef HAVE_NDIR_H /* Define if you have the header file. */ #undef HAVE_SYS_DIR_H /* Define if you have the header file. */ #undef HAVE_SYS_NDIR_H /* Name of package */ #undef PACKAGE /* Version number of package */ #undef VERSION gmrun-0.9.2/acinclude.m40000644000175000001440000000542607477464346010554 # # $Id: acinclude.m4,v 1.1 2002/06/05 19:39:18 sonofkojak Exp $ # # # STLPort definitions # AC_DEFUN(AC_PATH_STLPORT_INC, [ AC_REQUIRE_CPP() AC_MSG_CHECKING(for stlport headers) ac_stlport_includes="no" ac_enable_stlport="yes" AC_ARG_ENABLE(stlport, [ --enable-stlport do we need stlport ], [ ac_enable_stlport="$enableval" ]) if test "$ac_enable_stlport" = "no"; then AC_SUBST(STLPORT_INCDIR) AC_SUBST(STLPORT_CXXFLAGS) have_stlport_inc="no" else AC_ARG_WITH(stlport-includes, [ --with-stlport-includes where stlport headers are located], [ ac_stlport_includes="$withval"]) AC_CACHE_VAL(ac_cv_header_stlport_includes, [ dnl did user give --with-stlport-includes? if test "$ac_stlport_includes" = "no"; then stlport_include_dirs="\ $LIBCONFIGDIR/include/stlport \ /usr/include/stlport \ /usr/local/include/stlport \ /usr/local/include/ /usr/local/stlport/include" for dir in $stlport_include_dirs; do if test -r "$dir/algorithm"; then ac_stlport_includes=$dir break fi done fi dnl caching ac_cv_header_stlport_includes=$ac_stlport_includes ]) if test "$ac_cv_header_stlport_includes" = "no"; then have_stlport_inc="no" STLPORT_INCDIR="" STLPORT_CXXFLAGS="" else have_stlport_inc="yes" STLPORT_INCDIR="$ac_cv_header_stlport_includes" STLPORT_CXXFLAGS="-I$STLPORT_INCDIR" fi AC_SUBST(STLPORT_INCDIR) AC_SUBST(STLPORT_CXXFLAGS) fi AC_MSG_RESULT([$ac_cv_header_stlport_includes]) ]) AC_DEFUN(AC_PATH_STLPORT_LIB, [ AC_REQUIRE_CPP() AC_MSG_CHECKING(for stlport libraries) ac_stlport_lib="no" ac_enable_stlport="yes" AC_ARG_ENABLE(stlport, [ --enable-stlport do we need stlport ], [ ac_enable_stlport="$enableval" ]) if test "$ac_enable_stlport" = "no"; then AC_SUBST(STLPORT_INCDIR) AC_SUBST(STLPORT_INCLUDES) have_stlport_inc="no" else AC_ARG_WITH(stlport-lib, [ --with-stlport-lib where stlport library is located], [ ac_stlport_lib="$withval"]) AC_CACHE_VAL(ac_cv_lib_stlport_lib, [ dnl did user give --with-stlport-lib? if test "$ac_stlport_lib" = "no"; then stlport_lib_dirs="\ $STLPORTDIR/lib \ /usr/lib \ /usr/local/lib \ /usr/local/tiit/lib" for dir in $stlport_lib_dirs; do if test -r "$dir/libstlport_gcc.so"; then ac_stlport_lib=$dir break fi done fi dnl caching ac_cv_lib_stlport_lib=$ac_stlport_lib ]) if test "$ac_cv_lib_stlport_lib" = "no"; then have_stlport_lib="no" STLPORT_LIBDIR="" STLPORT_LDFLAGS="" else have_stlport_lib="yes" STLPORT_LIBDIR="$ac_cv_lib_stlport_lib" STLPORT_LDFLAGS="-L$STLPORT_LIBDIR -lstlport_gcc -lpthread" fi AC_SUBST(STLPORT_LIBDIR) AC_SUBST(STLPORT_LDFLAGS) fi AC_MSG_RESULT([$ac_cv_lib_stlport_lib]) ]) gmrun-0.9.2/stamp-h.in0000644000175000001440000000001207755654162010242 timestamp gmrun-0.9.2/AUTHORS0000644000175000001440000000004107245412676007407 Mihai Bazon gmrun-0.9.2/INSTALL0000644000175000001440000001722707245412713007376 Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. gmrun-0.9.2/ChangeLog0000644000175000001440000000140007755653513010114 2003-11-16 AV * configure.in: added support for libpopt * src/gtkcompletionline.cc: added UTF-8 support for input and output * src/main.cc: added UTF-8 support for input and output and added an option to place gmrun (-geometry) 2002-06-05 EJ * src/history.cc (append): Previously, an item was not placed in the history when it was the last item. Now, if we find an entry, we move it to the end of the list. 2002-06-05 EJ * acinclude.m4: Added stlport detection code. When using an old version of g++/stdc++ you can get this code to compile only with the stlport. gcc-2.9[56] don't have a definition for char_traits. gmrun-0.9.2/acconfig.h0000644000175000001440000000030307245412702010250 #undef ENABLE_NLS #undef HAVE_CATGETS #undef HAVE_GETTEXT #undef HAVE_LC_MESSAGES #undef HAVE_STPCPY #undef HAVE_LIBSM #undef PACKAGE_LOCALE_DIR #undef PACKAGE_DATA_DIR #undef PACKAGE_SOURCE_DIR gmrun-0.9.2/COPYING0000644000175000001440000004311007245412713007366 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. gmrun-0.9.2/gmrun.spec.in0000644000175000001440000000720607755652335010766 %define prefix @PREFIX@ Name: @PACKAGE@ Version: @VERSION@ Release: 2 Summary: Small GTK based 'Run application' Group: X11/Utilities Source: %{name}-%{version}.tar.gz License: GPL Packager: Mihai Bazon BuildPrereq: gtk+ >= 2.0.6 BuildRoot: %{_tmppath}/%{name}-root %description Short GtkEntry for file autocompletion + main.cc that does the needed stuff for running programs. This is intended as a replacement to grun, which (sorry) sucks. The idea comes from the KDE Window Manager (ALT-F2 in KDE). Though, GNOME is better :) %prep %setup -q %build %configure %install rm -rf %{buildroot} make install-strip DESTDIR=%{buildroot} %clean rm -rf %{buildroot} %files %defattr(-,root,root) %{_bindir}/%{name} %doc AUTHORS COPYING INSTALL README NEWS ChangeLog %dir %{_datadir}/%{name} %{_datadir}/%{name}/* %changelog * Sun Aug 03 2003 Mihai Bazon 0.9-2 - fixed a parsing bug in the "run command" function * Sun Jun 22 2003 Marius FERARU 0.9-0.n0i - version 0.9 * Sat Jun 14 2003 Marius FERARU 0.8.1-1.n0i - rebuild on RHL9 * Sat Aug 17 2002 Mihai Bazon - Some bugs fixed, specifically the behavior of END/HOME keys (or C-E, C-A), and the major one: you could not run a file that has an extension handler with some other program than the extension handler :) * Fri Aug 16 2002 Mihai Bazon - Fixed bug: filenames can now contain white spaces (will be backslash-ed) - New feature: can specify application handler per file extension, so you can directly type the name of some .cpp file and emacs will show up :) see config file for details. - New feature: can automatically simulate a TAB press after some timeout. Check config file for details, key "TabTimeout" (0 to disable). - New feature: you can now always use "system" for running programs (specify --enable-system at configure). * Fri Oct 19 2001 Mihai Bazon - Fixed bug with sorting of completion list - Fixed bug with URL handling - New parameter: list of execs to be always run in terminal - New feature: last history line appears directly in edit line, selected * Wed Aug 01 2001 Mihai Bazon - Programs are now executed using execv. We don't use system anymore, thus avoiding forking another shell. - gmrun.spec gets now generated automagically, at ./configure. * Sun Jul 22 2001 Mihai Bazon - added "!" history backward search; like in bash, it finds the last command which begins with the entered text. - CTRL-R / CTRL-S don't show two identical consecutive records. * Thu Jul 19 2001 Mihai Bazon - added history search capabilities (CTRL-R / CTRL-S, like in bash / Emacs) - small bug fixes * Fri Jun 29 2001 Mihai Bazon - history size configurable from config file - window appears directly where it should (no more flicker) * Wed May 14 2001 Mihai Bazon - added default configuration file (goes to /usr/share/gmrun) * Wed May 07 2001 Marius Feraru - updated to version 0.5.3 and took over to 0.5.31 * Wed May 03 2001 Marius Feraru - updated to version 0.2.5 and took over to 0.2.51: * configuration file with 2 options for now: 'Terminal' and 'Width' * added some more (and hopefully more useful) documentation: README.hints, README.gmrunrc and README.icewm * Wed May 03 2001 Marius Feraru - updated to version 0.2.2: * Ctrl-Enter spawns a terminal * Wed May 02 2001 Marius Feraru - initial RPM build