summaryrefslogtreecommitdiff
path: root/src/drivers/Darwin
diff options
context:
space:
mode:
authorManolo Gouy <Manolo>2016-04-09 15:15:33 +0000
committerManolo Gouy <Manolo>2016-04-09 15:15:33 +0000
commit8b672ee655aaee8e8a2002643846147997a8eaf8 (patch)
tree1fd6d1e4d47273cf4a022f69f466d3bd7aa59a91 /src/drivers/Darwin
parentd98a8e13e6eff36e3b428b5e5cb93019e23d644b (diff)
Rewrite fl_open_uri.cxx under the driver model.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11563 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/drivers/Darwin')
-rw-r--r--src/drivers/Darwin/Fl_Darwin_System_Driver.H3
-rw-r--r--src/drivers/Darwin/Fl_Darwin_System_Driver.cxx10
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$".