Added cs to the list of languages
[midnight-commander.git] / gnome / gaction.c
blob1b585c5f1130dafb748bbbe85c4113e71a5d69cc
1 #include <config.h>
2 #include <string.h>
3 #include "x.h"
4 #include "global.h"
5 #include "dir.h"
6 #include "command.h"
7 #include "panel.h"
8 #define WANT_WIDGETS /* bleah */
9 #include "main.h"
10 #include "color.h"
11 #include "mouse.h"
12 #include "layout.h" /* get_panel_widget */
13 #include "ext.h" /* regex_command */
14 #include "cmd.h" /* copy_cmd, ren_cmd, delete_cmd, ... */
15 #include "gscreen.h"
16 #include "dir.h"
17 #include "dialog.h"
18 #include "../vfs/vfs.h"
20 static void
21 gmc_execute (char *fname, char *buf)
23 exec_extension (fname, buf, NULL, NULL, 0);
26 int
27 gmc_open_filename (char *fname, GList *args)
29 char *mime_type, *cmd;
30 char *buf;
31 int size;
33 if (gnome_metadata_get (fname, "fm-open", &size, &buf) == 0){
34 gmc_execute (fname, buf);
35 g_free (buf);
36 return 1;
39 if (gnome_metadata_get (fname, "open", &size, &buf) == 0){
40 gmc_execute (fname, buf);
41 g_free (buf);
42 return 1;
45 mime_type = gnome_mime_type_or_default (fname, NULL);
46 if (!mime_type)
47 return 0;
50 cmd = gnome_mime_get_value (mime_type, "fm-open");
52 if (cmd){
53 gmc_execute (fname, cmd);
54 return 1;
57 cmd = gnome_mime_get_value (mime_type, "open");
58 if (cmd){
59 gmc_execute (fname, cmd);
60 return 1;
62 return 0;
65 int
66 gmc_open (file_entry *fe)
68 return gmc_open_filename (fe->fname, NULL);
71 static void
72 gmc_run_view (char *filename, char *buf)
74 exec_extension (filename, buf, NULL, NULL, 0);
77 int
78 gmc_view (char *filename, int start_line)
80 char *mime_type, *cmd;
81 char *buf;
82 int size;
84 if (gnome_metadata_get (filename, "fm-view", &size, &buf) == 0){
85 gmc_run_view (filename, buf);
86 g_free (buf);
87 return 1;
90 if (gnome_metadata_get (filename, "view", &size, &buf) == 0){
91 gmc_run_view (filename, buf);
92 g_free (buf);
93 return 1;
96 mime_type = gnome_mime_type_or_default (filename, NULL);
97 if (!mime_type)
98 return 0;
101 cmd = gnome_mime_get_value (mime_type, "fm-view");
103 if (cmd){
104 gmc_run_view (filename, cmd);
105 return 1;
108 cmd = gnome_mime_get_value (mime_type, "view");
109 if (cmd){
110 gmc_run_view (filename, cmd);
111 return 1;
113 return 0;