source: perlglue.xs @ 6922edd

barnowl_perlaimdebianrelease-1.4release-1.5release-1.6release-1.7release-1.8release-1.9
Last change on this file since 6922edd was 6922edd, checked in by Nelson Elhage <nelhage@mit.edu>, 14 years ago
Adding the ability to install real commands from perl.
  • Property mode set to 100644
File size: 1.6 KB
Line 
1static const char fileIdent[] = "$Id$";
2
3#ifdef HAVE_LIBZEPHYR
4#include <zephyr/zephyr.h>
5#endif
6#include <EXTERN.h>
7
8#define OWL_PERL
9#include "owl.h"
10SV *owl_perlconfig_curmessage2hashref(void);
11
12MODULE = owl            PACKAGE = owl           
13
14char *
15command(cmd)
16        char *cmd
17        PREINIT:
18                char *rv = NULL;
19        CODE:
20                rv = owl_function_command(cmd);
21                RETVAL = rv;   
22        OUTPUT:
23                RETVAL
24        CLEANUP:
25                if (rv) owl_free(rv);
26
27SV *
28getcurmsg()
29        CODE:
30                ST(0) = owl_perlconfig_curmessage2hashref();
31
32int
33getnumcols()
34        CODE:
35                RETVAL = owl_global_get_cols(&g);
36        OUTPUT:
37                RETVAL
38
39char *
40zephyr_getrealm()
41        CODE:
42                RETVAL = owl_zephyr_get_realm();
43        OUTPUT:
44                RETVAL
45
46char *
47zephyr_getsender()
48        CODE:
49                RETVAL = owl_zephyr_get_sender();
50        OUTPUT:
51                RETVAL
52
53void
54zephyr_zwrite(cmd,msg)
55        char *cmd
56        char *msg
57        PREINIT:
58                int i;
59        CODE:
60                i = owl_zwrite_create_and_send_from_line(cmd, msg);
61
62char *
63ztext_stylestrip(ztext)
64        char *ztext
65        PREINIT:
66                char *rv = NULL;
67        CODE:
68                rv = owl_function_ztext_stylestrip(ztext);
69                RETVAL = rv;
70        OUTPUT:
71                RETVAL
72        CLEANUP:
73                if (rv) owl_free(rv);
74
75void
76new_command_internal(name, func, summary, usage, description)
77        char *name
78        SV *func
79        char *summary
80        char *usage
81        char *description
82        PREINIT:
83                owl_cmd cmd;
84        CODE:
85                SvREFCNT_inc(func);
86                cmd.name = name;
87                cmd.cmd_perl = func;
88                cmd.summary = summary;
89                cmd.usage = usage;
90                cmd.description = description;
91                cmd.validctx = OWL_CTX_ANY;
92
93                cmd.cmd_aliased_to = NULL;
94                cmd.cmd_args_fn = NULL;
95                cmd.cmd_v_fn = NULL;
96                cmd.cmd_i_fn = NULL;
97                cmd.cmd_ctxargs_fn = NULL;
98                cmd.cmd_ctxv_fn = NULL;
99                cmd.cmd_ctxi_fn = NULL;
100
101                owl_cmddict_add_cmd(owl_global_get_cmddict(&g), &cmd);
Note: See TracBrowser for help on using the repository browser.