Changeset 38cc669 for perlglue.xs


Ignore:
Timestamp:
Mar 23, 2010, 5:23:43 PM (14 years ago)
Author:
Nelson Elhage <nelhage@ksplice.com>
Branches:
master, release-1.10, release-1.6, release-1.7, release-1.8, release-1.9
Children:
0d17295
Parents:
8dfb59c
git-author:
Nelson Elhage <nelhage@mit.edu> (03/13/10 23:54:51)
git-committer:
Nelson Elhage <nelhage@ksplice.com> (03/23/10 17:23:43)
Message:
Create/destroy editwins rather than reusing a single one.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • perlglue.xs

    r1b1cd2c r38cc669  
    549549        int count;
    550550        const char *string;
    551         CODE:
    552                 RETVAL = owl_editwin_replace(owl_global_get_typwin(&g), count, string);
     551        PREINIT:
     552                owl_editwin *e;
     553        CODE:
     554                e = owl_global_get_typwin(&g);
     555                if (e) {
     556                        RETVAL = owl_editwin_replace(e, count, string);
     557                } else {
     558                        RETVAL = 0;
     559                }
    553560        OUTPUT:
    554561                RETVAL
     
    557564point_move(delta)
    558565        int delta;
    559         CODE:
    560                 RETVAL = owl_editwin_point_move(owl_global_get_typwin(&g), delta);
     566        PREINIT:
     567                owl_editwin *e;
     568        CODE:
     569                e = owl_global_get_typwin(&g);
     570                if (e) {
     571                        RETVAL = owl_editwin_point_move(e, delta);
     572                } else {
     573                        RETVAL = 0;
     574                }
    561575        OUTPUT:
    562576                RETVAL
     
    565579replace_region(string)
    566580        const char *string;
    567         CODE:
    568                 RETVAL = owl_editwin_replace_region(owl_global_get_typwin(&g), string);
     581        PREINIT:
     582                owl_editwin *e;
     583        CODE:
     584                e = owl_global_get_typwin(&g);
     585                if (e) {
     586                        RETVAL = owl_editwin_replace_region(e, string);
     587                } else {
     588                        RETVAL = 0;
     589                }
    569590        OUTPUT:
    570591                RETVAL
     
    574595        PREINIT:
    575596                char *region;
    576         CODE:
    577                 region = owl_editwin_get_region(owl_global_get_typwin(&g));
     597                owl_editwin *e;
     598        CODE:
     599                e = owl_global_get_typwin(&g);
     600                if (e) {
     601                        region = owl_editwin_get_region(owl_global_get_typwin(&g));
     602                } else {
     603                        region = NULL;
     604                }
    578605                RETVAL = region;
    579606        OUTPUT:
     
    588615        PREINIT:
    589616                int count;
     617                owl_editwin *e;
    590618                owl_editwin_excursion *x;
    591619        CODE:
    592620        {
     621                e = owl_global_get_typwin(&g);
     622                if(!e)
     623                        croak("The edit window is not currently active!");
     624
    593625                x = owl_editwin_begin_excursion(owl_global_get_typwin(&g));
    594626                PUSHMARK(SP);
     
    612644int
    613645current_column()
    614         CODE:
    615                 RETVAL = owl_editwin_current_column(owl_global_get_typwin(&g));
     646        PREINIT:
     647                owl_editwin *e;
     648        CODE:
     649                e = owl_global_get_typwin(&g);
     650                if (e) {
     651                        RETVAL = owl_editwin_current_column(e);
     652                } else {
     653                        RETVAL = 0;
     654                }
    616655        OUTPUT:
    617656                RETVAL
     
    619658int
    620659point()
    621         CODE:
    622                 RETVAL = owl_editwin_get_point(owl_global_get_typwin(&g));
     660        PREINIT:
     661                owl_editwin *e;
     662        CODE:
     663                e = owl_global_get_typwin(&g);
     664                if (e) {
     665                        RETVAL = owl_editwin_get_point(e);
     666                } else {
     667                        RETVAL = 0;
     668                }
    623669        OUTPUT:
    624670                RETVAL
     
    626672int
    627673mark()
    628         CODE:
    629                 RETVAL = owl_editwin_get_mark(owl_global_get_typwin(&g));
    630         OUTPUT:
    631                 RETVAL
     674        PREINIT:
     675                owl_editwin *e;
     676        CODE:
     677                e = owl_global_get_typwin(&g);
     678                if (e) {
     679                        RETVAL = owl_editwin_get_mark(e);
     680                } else {
     681                        RETVAL = 0;
     682                }
     683        OUTPUT:
     684                RETVAL
Note: See TracChangeset for help on using the changeset viewer.