author | Mikael Berthe <mikael@lilotux.net> |
Sat, 03 Apr 2010 18:59:38 +0200 | |
changeset 29 | b6fb487c2658 |
parent 25 | a98004eb58cd |
child 30 | 7738b1e4714d |
permissions | -rw-r--r-- |
21
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
1 |
/* |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
2 |
Copyright 2010 Mikael Berthe |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
3 |
|
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
4 |
Module "extsayng" -- adds a /extsay command |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
5 |
Spawns an external editor, using screen |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
6 |
|
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
7 |
This module is free software: you can redistribute it and/or modify |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
8 |
it under the terms of the GNU General Public License as published by |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
9 |
the Free Software Foundation, either version 2 of the License, or |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
10 |
(at your option) any later version. |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
11 |
|
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
12 |
This program is distributed in the hope that it will be useful, |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
13 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
14 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
15 |
GNU General Public License for more details. |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
16 |
|
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
17 |
You should have received a copy of the GNU General Public License |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
18 |
along with this program. If not, see <http://www.gnu.org/licenses/>. |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
19 |
*/ |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
20 |
|
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
21 |
#include <unistd.h> |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
22 |
#include <stdlib.h> |
29
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
23 |
#include <string.h> |
21
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
24 |
#include <sys/wait.h> |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
25 |
#include <glib/gstdio.h> |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
26 |
|
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
27 |
#include <mcabber/modules.h> |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
28 |
#include <mcabber/commands.h> |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
29 |
#include <mcabber/settings.h> |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
30 |
#include <mcabber/compl.h> |
25
a98004eb58cd
[extsay] Expand extsay_script_path path name
Mikael Berthe <mikael@lilotux.net>
parents:
24
diff
changeset
|
31 |
#include <mcabber/utils.h> |
21
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
32 |
#include <mcabber/logprint.h> |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
33 |
|
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
34 |
static void extsayng_init(void); |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
35 |
static void extsayng_uninit(void); |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
36 |
|
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
37 |
/* Module description */ |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
38 |
module_info_t info_extsayng = { |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
39 |
.branch = MCABBER_BRANCH, |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
40 |
.api = MCABBER_API_VERSION, |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
41 |
.version = "0.01", |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
42 |
.description = "Use external editor to send a message", |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
43 |
.requires = NULL, |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
44 |
.init = extsayng_init, |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
45 |
.uninit = extsayng_uninit, |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
46 |
.next = NULL, |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
47 |
}; |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
48 |
|
24
81cbb47f1aa6
[extsay] Add options to split the screen window
Mikael Berthe <mikael@lilotux.net>
parents:
23
diff
changeset
|
49 |
|
81cbb47f1aa6
[extsay] Add options to split the screen window
Mikael Berthe <mikael@lilotux.net>
parents:
23
diff
changeset
|
50 |
// Run the external helper script with parameters |
23
cf95a475825c
[extsay] Multiple improvements
Mikael Berthe <mikael@lilotux.net>
parents:
21
diff
changeset
|
51 |
static void screen_run_script(const gchar *args) |
21
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
52 |
{ |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
53 |
GError *err = NULL; |
24
81cbb47f1aa6
[extsay] Add options to split the screen window
Mikael Berthe <mikael@lilotux.net>
parents:
23
diff
changeset
|
54 |
gchar *argv[] = { "screen", "-r", "-X", "screen", NULL, |
81cbb47f1aa6
[extsay] Add options to split the screen window
Mikael Berthe <mikael@lilotux.net>
parents:
23
diff
changeset
|
55 |
NULL, NULL, NULL, NULL }; |
81cbb47f1aa6
[extsay] Add options to split the screen window
Mikael Berthe <mikael@lilotux.net>
parents:
23
diff
changeset
|
56 |
gchar strwinheight[32]; |
25
a98004eb58cd
[extsay] Expand extsay_script_path path name
Mikael Berthe <mikael@lilotux.net>
parents:
24
diff
changeset
|
57 |
gchar *fpath; |
a98004eb58cd
[extsay] Expand extsay_script_path path name
Mikael Berthe <mikael@lilotux.net>
parents:
24
diff
changeset
|
58 |
gboolean winsplit, ret; |
21
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
59 |
|
24
81cbb47f1aa6
[extsay] Add options to split the screen window
Mikael Berthe <mikael@lilotux.net>
parents:
23
diff
changeset
|
60 |
// screen -r -X screen $path/extsay.sh [jid [winsplit [height]]] |
25
a98004eb58cd
[extsay] Expand extsay_script_path path name
Mikael Berthe <mikael@lilotux.net>
parents:
24
diff
changeset
|
61 |
fpath = (gchar*)settings_opt_get("extsay_script_path"); |
21
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
62 |
|
24
81cbb47f1aa6
[extsay] Add options to split the screen window
Mikael Berthe <mikael@lilotux.net>
parents:
23
diff
changeset
|
63 |
// Helper script path |
25
a98004eb58cd
[extsay] Expand extsay_script_path path name
Mikael Berthe <mikael@lilotux.net>
parents:
24
diff
changeset
|
64 |
if (!fpath || !fpath[0]) { |
21
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
65 |
scr_log_print(LPRINT_NORMAL, "Please set option 'extsay_script_path'."); |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
66 |
return; |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
67 |
} |
25
a98004eb58cd
[extsay] Expand extsay_script_path path name
Mikael Berthe <mikael@lilotux.net>
parents:
24
diff
changeset
|
68 |
fpath = expand_filename(fpath); |
a98004eb58cd
[extsay] Expand extsay_script_path path name
Mikael Berthe <mikael@lilotux.net>
parents:
24
diff
changeset
|
69 |
argv[4] = fpath; |
21
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
70 |
|
24
81cbb47f1aa6
[extsay] Add options to split the screen window
Mikael Berthe <mikael@lilotux.net>
parents:
23
diff
changeset
|
71 |
// Helper script parameter #1 |
21
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
72 |
if (args && *args) |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
73 |
argv[5] = (gchar*)args; |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
74 |
else |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
75 |
argv[5] = "."; |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
76 |
|
25
a98004eb58cd
[extsay] Expand extsay_script_path path name
Mikael Berthe <mikael@lilotux.net>
parents:
24
diff
changeset
|
77 |
// Update parameters for the helper script |
a98004eb58cd
[extsay] Expand extsay_script_path path name
Mikael Berthe <mikael@lilotux.net>
parents:
24
diff
changeset
|
78 |
winsplit = settings_opt_get_int("extsay_split_win"); |
24
81cbb47f1aa6
[extsay] Add options to split the screen window
Mikael Berthe <mikael@lilotux.net>
parents:
23
diff
changeset
|
79 |
if (winsplit) { |
81cbb47f1aa6
[extsay] Add options to split the screen window
Mikael Berthe <mikael@lilotux.net>
parents:
23
diff
changeset
|
80 |
gint winheight = settings_opt_get_int("extsay_win_height"); |
81cbb47f1aa6
[extsay] Add options to split the screen window
Mikael Berthe <mikael@lilotux.net>
parents:
23
diff
changeset
|
81 |
argv[6] = "winsplit"; // Helper script parameter #2 |
81cbb47f1aa6
[extsay] Add options to split the screen window
Mikael Berthe <mikael@lilotux.net>
parents:
23
diff
changeset
|
82 |
if (winheight > 0 && winheight < 256) { |
81cbb47f1aa6
[extsay] Add options to split the screen window
Mikael Berthe <mikael@lilotux.net>
parents:
23
diff
changeset
|
83 |
snprintf(strwinheight, sizeof strwinheight, "%d", winheight); |
81cbb47f1aa6
[extsay] Add options to split the screen window
Mikael Berthe <mikael@lilotux.net>
parents:
23
diff
changeset
|
84 |
argv[7] = strwinheight; // Helper script parameter #3 |
81cbb47f1aa6
[extsay] Add options to split the screen window
Mikael Berthe <mikael@lilotux.net>
parents:
23
diff
changeset
|
85 |
} |
81cbb47f1aa6
[extsay] Add options to split the screen window
Mikael Berthe <mikael@lilotux.net>
parents:
23
diff
changeset
|
86 |
} |
81cbb47f1aa6
[extsay] Add options to split the screen window
Mikael Berthe <mikael@lilotux.net>
parents:
23
diff
changeset
|
87 |
|
21
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
88 |
ret = g_spawn_async(NULL, argv, NULL, |
23
cf95a475825c
[extsay] Multiple improvements
Mikael Berthe <mikael@lilotux.net>
parents:
21
diff
changeset
|
89 |
G_SPAWN_SEARCH_PATH | |
cf95a475825c
[extsay] Multiple improvements
Mikael Berthe <mikael@lilotux.net>
parents:
21
diff
changeset
|
90 |
G_SPAWN_STDOUT_TO_DEV_NULL|G_SPAWN_STDERR_TO_DEV_NULL, |
21
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
91 |
NULL, NULL, NULL, &err); |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
92 |
|
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
93 |
if (!ret) |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
94 |
scr_LogPrint(LPRINT_NORMAL, err->message); |
25
a98004eb58cd
[extsay] Expand extsay_script_path path name
Mikael Berthe <mikael@lilotux.net>
parents:
24
diff
changeset
|
95 |
|
a98004eb58cd
[extsay] Expand extsay_script_path path name
Mikael Berthe <mikael@lilotux.net>
parents:
24
diff
changeset
|
96 |
g_free(fpath); |
21
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
97 |
} |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
98 |
|
23
cf95a475825c
[extsay] Multiple improvements
Mikael Berthe <mikael@lilotux.net>
parents:
21
diff
changeset
|
99 |
static void do_extsayng(gchar *args) |
21
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
100 |
{ |
29
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
101 |
gboolean expandfjid = FALSE; |
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
102 |
char *xfjid = NULL; |
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
103 |
char *res_utf8 = NULL, *fjid_utf8 = NULL; |
23
cf95a475825c
[extsay] Multiple improvements
Mikael Berthe <mikael@lilotux.net>
parents:
21
diff
changeset
|
104 |
|
29
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
105 |
if (args && !strncmp(args, "." JID_RESOURCE_SEPARATORSTR, 2)) |
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
106 |
expandfjid = TRUE; |
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
107 |
|
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
108 |
if (!args || !*args || expandfjid || !g_strcmp0(args, ".")) { |
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
109 |
const gchar *res = args+2; |
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
110 |
gpointer bud; |
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
111 |
|
23
cf95a475825c
[extsay] Multiple improvements
Mikael Berthe <mikael@lilotux.net>
parents:
21
diff
changeset
|
112 |
if (!current_buddy) { |
cf95a475825c
[extsay] Multiple improvements
Mikael Berthe <mikael@lilotux.net>
parents:
21
diff
changeset
|
113 |
scr_LogPrint(LPRINT_NORMAL, "Please select a buddy."); |
cf95a475825c
[extsay] Multiple improvements
Mikael Berthe <mikael@lilotux.net>
parents:
21
diff
changeset
|
114 |
return; |
cf95a475825c
[extsay] Multiple improvements
Mikael Berthe <mikael@lilotux.net>
parents:
21
diff
changeset
|
115 |
} |
cf95a475825c
[extsay] Multiple improvements
Mikael Berthe <mikael@lilotux.net>
parents:
21
diff
changeset
|
116 |
|
cf95a475825c
[extsay] Multiple improvements
Mikael Berthe <mikael@lilotux.net>
parents:
21
diff
changeset
|
117 |
bud = BUDDATA(current_buddy); |
cf95a475825c
[extsay] Multiple improvements
Mikael Berthe <mikael@lilotux.net>
parents:
21
diff
changeset
|
118 |
if (!(buddy_gettype(bud) & |
cf95a475825c
[extsay] Multiple improvements
Mikael Berthe <mikael@lilotux.net>
parents:
21
diff
changeset
|
119 |
(ROSTER_TYPE_USER|ROSTER_TYPE_AGENT|ROSTER_TYPE_ROOM))) { |
cf95a475825c
[extsay] Multiple improvements
Mikael Berthe <mikael@lilotux.net>
parents:
21
diff
changeset
|
120 |
scr_LogPrint(LPRINT_NORMAL, "This is not a user."); |
cf95a475825c
[extsay] Multiple improvements
Mikael Berthe <mikael@lilotux.net>
parents:
21
diff
changeset
|
121 |
return; |
cf95a475825c
[extsay] Multiple improvements
Mikael Berthe <mikael@lilotux.net>
parents:
21
diff
changeset
|
122 |
} |
cf95a475825c
[extsay] Multiple improvements
Mikael Berthe <mikael@lilotux.net>
parents:
21
diff
changeset
|
123 |
|
cf95a475825c
[extsay] Multiple improvements
Mikael Berthe <mikael@lilotux.net>
parents:
21
diff
changeset
|
124 |
args = (gchar*)buddy_getjid(bud); |
29
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
125 |
if (expandfjid && *res) { |
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
126 |
res_utf8 = to_utf8(res); |
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
127 |
xfjid = g_strdup_printf("%s%c%s", args, JID_RESOURCE_SEPARATOR, res_utf8); |
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
128 |
args = xfjid; |
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
129 |
} |
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
130 |
} else { |
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
131 |
args = fjid_utf8 = to_utf8(args); |
23
cf95a475825c
[extsay] Multiple improvements
Mikael Berthe <mikael@lilotux.net>
parents:
21
diff
changeset
|
132 |
} |
cf95a475825c
[extsay] Multiple improvements
Mikael Berthe <mikael@lilotux.net>
parents:
21
diff
changeset
|
133 |
|
29
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
134 |
if (check_jid_syntax(args)) |
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
135 |
scr_LogPrint(LPRINT_NORMAL, "Please specify a valid Jabber ID."); |
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
136 |
else |
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
137 |
screen_run_script(args); // Launch helper script with resulting JID |
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
138 |
|
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
139 |
g_free(res_utf8); |
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
140 |
g_free(fjid_utf8); |
b6fb487c2658
[extsay] Enable /extsay ./resourcename
Mikael Berthe <mikael@lilotux.net>
parents:
25
diff
changeset
|
141 |
g_free(xfjid); |
21
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
142 |
} |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
143 |
|
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
144 |
static void extsayng_init(void) |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
145 |
{ |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
146 |
cmd_add("extsay", "Use external editor to write a message", |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
147 |
COMPL_JID, 0, do_extsayng, NULL); |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
148 |
} |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
149 |
|
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
150 |
static void extsayng_uninit(void) |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
151 |
{ |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
152 |
cmd_del("extsay"); |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
153 |
} |
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
154 |
|
9798e3aaa851
Add module extsayng, rename previous one to extsay_old
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
155 |
/* vim: set expandtab cindent cinoptions=>2\:2(0: For Vim users... */ |