Changeset db8b00b for perlglue.xs
- Timestamp:
- Oct 27, 2006, 3:07:59 PM (17 years ago)
- Branches:
- master, barnowl_perlaim, debian, release-1.10, release-1.4, release-1.5, release-1.6, release-1.7, release-1.8, release-1.9
- Children:
- bbd2fdc
- Parents:
- e74c01c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
perlglue.xs
r1b6b2f3 rdb8b00b 10 10 #include "owl.h" 11 11 SV *owl_perlconfig_curmessage2hashref(void); 12 13 #define SV_IS_CODEREF(sv) (SvROK((sv)) && SvTYPE(SvRV((sv))) == SVt_PVCV) 12 14 13 15 MODULE = owl PACKAGE = owl … … 84 86 owl_cmd cmd; 85 87 CODE: 88 { 89 if(!SV_IS_CODEREF(func)) { 90 croak("Command function must be a coderef!"); 91 } 86 92 SvREFCNT_inc(func); 87 93 cmd.name = name; … … 99 105 cmd.cmd_ctxi_fn = NULL; 100 106 owl_cmddict_add_cmd(owl_global_get_cmddict(&g), &cmd); 107 } 101 108 102 109 void queue_message(msg) … … 140 147 owl_global_messagequeue_addmsg(&g, m); 141 148 } 149 150 void start_question(line, callback) 151 char *line 152 SV *callback 153 PREINIT: 154 CODE: 155 { 156 if(!SV_IS_CODEREF(callback)) 157 croak("Callback must be a subref"); 158 159 owl_function_start_question(line); 160 161 SvREFCNT_inc(callback); 162 owl_editwin_set_cbdata(owl_global_get_typwin(&g), callback); 163 owl_editwin_set_callback(owl_global_get_typwin(&g), owl_perlconfig_edit_callback); 164 } 165 166 void start_password(line, callback) 167 char *line 168 SV *callback 169 PREINIT: 170 CODE: 171 { 172 if(!SV_IS_CODEREF(callback)) 173 croak("Callback must be a subref"); 174 175 owl_function_start_password(line); 176 177 SvREFCNT_inc(callback); 178 owl_editwin_set_cbdata(owl_global_get_typwin(&g), callback); 179 owl_editwin_set_callback(owl_global_get_typwin(&g), owl_perlconfig_edit_callback); 180 } 181 182 void start_edit_win(line, callback) 183 char *line 184 SV *callback 185 PREINIT: 186 owl_editwin * e; 187 char buff[1024]; 188 CODE: 189 { 190 if(!SV_IS_CODEREF(callback)) 191 croak("Callback must be a subref"); 192 193 e = owl_global_get_typwin(&g); 194 owl_editwin_new_style(e, OWL_EDITWIN_STYLE_MULTILINE, 195 owl_global_get_msg_history(&g)); 196 owl_editwin_clear(e); 197 owl_editwin_set_dotsend(e); 198 snprintf(buff, 1023, "----> %s\n", line); 199 owl_editwin_set_locktext(e, buff); 200 201 owl_global_set_typwin_active(&g); 202 203 SvREFCNT_inc(callback); 204 owl_editwin_set_cbdata(owl_global_get_typwin(&g), callback); 205 owl_editwin_set_callback(owl_global_get_typwin(&g), owl_perlconfig_edit_callback); 206 }
Note: See TracChangeset
for help on using the changeset viewer.