diff options
Diffstat (limited to 'src/drivers/Darwin')
| -rw-r--r-- | src/drivers/Darwin/Fl_Darwin_System_Driver.H | 3 | ||||
| -rw-r--r-- | src/drivers/Darwin/Fl_Darwin_System_Driver.cxx | 10 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/drivers/Darwin/Fl_Darwin_System_Driver.H b/src/drivers/Darwin/Fl_Darwin_System_Driver.H index 0bfce80d0..6cdd3b77f 100644 --- a/src/drivers/Darwin/Fl_Darwin_System_Driver.H +++ b/src/drivers/Darwin/Fl_Darwin_System_Driver.H @@ -44,6 +44,8 @@ class Fl_Darwin_System_Driver : public Fl_System_Driver { +private: + int run_program(const char *program, char **argv, char *msg, int msglen); public: Fl_Darwin_System_Driver(); virtual int single_arg(const char *arg); @@ -71,6 +73,7 @@ public: virtual int filename_list(const char *d, dirent ***list, int (*sort)(struct dirent **, struct dirent **) ); virtual const char *getpwnam(const char *login); virtual int need_menu_handle_part2() {return 1;} + virtual int open_uri(const char *uri, char *msg, int msglen); }; #endif // FL_DARWIN_SYSTEM_DRIVER_H diff --git a/src/drivers/Darwin/Fl_Darwin_System_Driver.cxx b/src/drivers/Darwin/Fl_Darwin_System_Driver.cxx index 2584a21c7..c8c8c0c32 100644 --- a/src/drivers/Darwin/Fl_Darwin_System_Driver.cxx +++ b/src/drivers/Darwin/Fl_Darwin_System_Driver.cxx @@ -143,6 +143,16 @@ const char *Fl_Darwin_System_Driver::getpwnam(const char *login) { return pwd ? pwd->pw_dir : NULL; } +int Fl_Darwin_System_Driver::open_uri(const char *uri, char *msg, int msglen) +{ + char *argv[3]; // Command-line arguments + argv[0] = (char*)"open"; + argv[1] = (char*)uri; + argv[2] = (char*)0; + if (msg) snprintf(msg, msglen, "open %s", uri); + return run_program("/usr/bin/open", argv, msg, msglen) != 0; +} + // // End of "$Id$". |
