Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • perlglue.xs

    rfe7616e rffc4df6  
    318318
    319319void
    320 add_dispatch(fd, cb)
     320remove_io_dispatch(fd)
    321321        int fd
    322         SV * cb
    323         CODE:
    324         owl_select_add_perl_dispatch(fd, SvREFCNT_inc(cb));
    325 
    326 void
    327 remove_dispatch(fd)
    328         int fd
    329         CODE:
    330         owl_select_remove_perl_dispatch(fd);
    331 
     322        CODE:
     323        owl_select_remove_perl_io_dispatch(fd);
    332324
    333325AV*
    334326all_filters()
    335327        PREINIT:
     328                AV *filters;
    336329                const owl_list *fl;
     330                const owl_filter *f;
     331                int i;
    337332        CODE:
    338333        {
    339334                fl = owl_global_get_filterlist(&g);
    340                 RETVAL = owl_new_av(fl, (SV*(*)(const void*))owl_filter_to_sv);
     335                filters = newAV();
     336                for(i=0;i<owl_list_get_size(fl);i++) {
     337                        f = owl_list_get_element(fl, i);
     338                        av_push(filters, owl_new_sv(owl_filter_get_name(f)));
     339                }
     340                RETVAL = filters;
    341341                sv_2mortal((SV*)RETVAL);
    342342        }
     
    347347all_styles()
    348348        PREINIT:
     349                AV *styles;
    349350                owl_list l;
     351                const char *name;
     352                int i;
    350353        CODE:
    351354        {
    352355                owl_list_create(&l);
    353356                owl_global_get_style_names(&g, &l);
    354                 RETVAL = owl_new_av(&l, (SV*(*)(const void*))owl_new_sv);
     357                styles = newAV();
     358                for(i=0;i<owl_list_get_size(&l);i++) {
     359                        name = owl_list_get_element(&l, i);
     360                        av_push(styles, owl_new_sv(name));
     361                }
     362                RETVAL = styles;
    355363                sv_2mortal((SV*)RETVAL);
    356364        }
     
    364372all_variables()
    365373        PREINIT:
     374                AV *vars;
    366375                owl_list l;
     376                const char *name;
     377                int i;
    367378        CODE:
    368379        {
    369380                owl_list_create(&l);
    370381                owl_dict_get_keys(owl_global_get_vardict(&g), &l);
    371                 RETVAL = owl_new_av(&l, (SV*(*)(const void*))owl_new_sv);
    372                 sv_2mortal((SV*)RETVAL);
    373         }
    374         OUTPUT:
    375                 RETVAL
    376         CLEANUP:
    377                 owl_list_free_all(&l, owl_free);
    378 
    379 
    380 AV*
    381 all_keymaps()
    382         PREINIT:
    383                 owl_list l;
    384                 const owl_keyhandler *kh;
    385         CODE:
    386         {
    387                 owl_list_create(&l);
    388                 kh = owl_global_get_keyhandler(&g);
    389                 owl_keyhandler_get_keymap_names(kh, &l);
    390                 RETVAL = owl_new_av(&l, (SV*(*)(const void*))owl_new_sv);
     382                vars = newAV();
     383                for(i=0;i<owl_list_get_size(&l);i++) {
     384                        name = owl_list_get_element(&l, i);
     385                        av_push(vars, owl_new_sv(name));
     386                }
     387                RETVAL = vars;
    391388                sv_2mortal((SV*)RETVAL);
    392389        }
     
    504501                                      ival);
    505502
     503void
     504add_io_dispatch(fd, mode, cb)
     505        int fd
     506        int mode
     507        SV * cb
     508        CODE:
     509        owl_select_add_perl_io_dispatch(fd, mode, SvREFCNT_inc(cb));
     510
    506511IV
    507512add_timer(after, interval, cb)
Note: See TracChangeset for help on using the changeset viewer.