示例#1
0
int main()
{
    const my_facet f(1);
    {
        std::ios ios(0);
        long v = 0;
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "0");
    }
    {
        std::ios ios(0);
        long v = 1;
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "1");
    }
    {
        std::ios ios(0);
        long v = -1;
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "-1");
    }
    {
        std::ios ios(0);
        long v = -1000;
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "-1000");
    }
    {
        std::ios ios(0);
        long v = 1000;
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "1000");
    }
    {
        std::ios ios(0);
        showpos(ios);
        long v = 1000;
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "+1000");
    }
    {
        std::ios ios(0);
        oct(ios);
        long v = 1000;
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "1750");
    }
    {
        std::ios ios(0);
        oct(ios);
        showbase(ios);
        long v = 1000;
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "01750");
    }
    {
        std::ios ios(0);
        hex(ios);
        long v = 1000;
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "3e8");
    }
    {
        std::ios ios(0);
        hex(ios);
        showbase(ios);
        long v = 1000;
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "0x3e8");
    }
    {
        std::ios ios(0);
        hex(ios);
        showbase(ios);
        uppercase(ios);
        long v = 1000;
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "0X3E8");
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        hex(ios);
        showbase(ios);
        uppercase(ios);
        long v = 1000;
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "0X3E_8");
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        hex(ios);
        showbase(ios);
        long v = 2147483647;
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "0x7f_fff_ff_f");
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        oct(ios);
        long v = 0123467;
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "123_46_7");
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        oct(ios);
        showbase(ios);
        long v = 0123467;
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "0_123_46_7");
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        oct(ios);
        showbase(ios);
        right(ios);
        ios.width(15);
        long v = 0123467;
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "*****0_123_46_7");
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        oct(ios);
        showbase(ios);
        left(ios);
        ios.width(15);
        long v = 0123467;
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "0_123_46_7*****");
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        oct(ios);
        showbase(ios);
        internal(ios);
        ios.width(15);
        long v = 0123467;
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "*****0_123_46_7");
        assert(ios.width() == 0);
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        hex(ios);
        showbase(ios);
        right(ios);
        ios.width(15);
        long v = 2147483647;
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "**0x7f_fff_ff_f");
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        hex(ios);
        showbase(ios);
        left(ios);
        ios.width(15);
        long v = 2147483647;
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "0x7f_fff_ff_f**");
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        hex(ios);
        showbase(ios);
        internal(ios);
        ios.width(15);
        long v = 2147483647;
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "0x**7f_fff_ff_f");
        assert(ios.width() == 0);
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        showpos(ios);
        long v = 1000;
        right(ios);
        ios.width(10);
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "***+1_00_0");
        assert(ios.width() == 0);
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        showpos(ios);
        long v = 1000;
        left(ios);
        ios.width(10);
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "+1_00_0***");
        assert(ios.width() == 0);
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        showpos(ios);
        long v = 1000;
        internal(ios);
        ios.width(10);
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "+***1_00_0");
        assert(ios.width() == 0);
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        long v = -1000;
        right(ios);
        showpos(ios);
        ios.width(10);
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "***-1_00_0");
        assert(ios.width() == 0);
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        long v = -1000;
        left(ios);
        ios.width(10);
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "-1_00_0***");
        assert(ios.width() == 0);
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        long v = -1000;
        internal(ios);
        ios.width(10);
        char str[50];
        std::ios_base::iostate err = ios.goodbit;
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "-***1_00_0");
        assert(ios.width() == 0);
    }
}
示例#2
0
文件: fontedit.c 项目: koo5/lemon-2
int main(int a, char **v)
{
    p("Hi");
    if (s3d_init(&a,&v,"test"))
    {
        printf("opsie\n");
        s3d_usage();
    }
    else
    {
        FILE * f = fopen("lastpos", "r");
        if (f)
        {
            fread(&pos, 1, 4, f);
            fclose(f);
        }

        float mw=0.1;
        sw=s/2.0;
        px=-13*sw;
        py=13*s;

#ifdef hfgm

        if (s3d_select_font("Courier new"))
        {
            printf("font not found\n");
        }
        else
        {
            if ((txt=malloc(128*4)))
            {
                int i;
                float w;
                char buf[2];
                buf[1]=0;
                for (i=0; (i<128); i++)
                {
                    buf[0]=i;
                    txt[i]=s3d_draw_string(buf,&w);
                    if (txt[i])
                    {
                        if (w>mw)mw=w;
                        s3d_scale(txt[i], 5);
                    }
                }
                px=-mw*5/2;
                for (i=0; (i<128); i++)
                    s3d_translate(txt[i],px,py-4,0.00001);
            }
        }
#endif

        sw=mw/26*5;//s/2.0;

        float red[12]=
            {1, 0, 0, 1,
             1, 0, 0, 1,
             1, 0, 1, 1
            };
        float black[12]=
            {0, 0, 0, 1,
             0, 0, 0, 1,
             0, 0, 0, 1
            };
        float teal[12]=
            {0, 1, 1, 1,
             1, 1, 0, 1,
             0, 0, 1, 1
            };
        float orange[12]=
            {1, 1, 0, 1,
             1, 1, 0, 1,
             1, 1, 0, 1
            };


        oo=s3d_new_object();
        s3d_translate(oo, px,py,0);

        s3d_push_materials_a(oo,red, 1);
        s3d_push_materials_a(oo,teal,1);
        s3d_push_materials_a(oo,orange,1);

        s3d_flags_on(oo, S3D_OF_VISIBLE);
        aoo=s3d_new_object();
        s3d_translate(aoo, px, py,0);
        s3d_push_materials_a(aoo,red, 1);

        s3d_flags_on(aoo, S3D_OF_VISIBLE);

        showpos();
        loadl2("l2");
        if (!l2)return 1;
        disp();

        int b,c;
        for (b=0; b<26; b++)
        {
            black[0]=black[4]=black[8]=b/(float)26;
            for (c=0; c<26; c++)
            {
                black[1]=black[5]=black[9]=(float)c/26;
                int ob=s3d_new_object();
                o[b][c]=ob;
                s3d_translate(ob, px+sw*b, py-s*c,0);
                s3d_push_materials_a(ob,black, 1);
                float vs2[12]={0,0,0,sw,0,0,sw,s,0,0,s,0};
                s3d_push_vertices(ob, vs2, 4);
                if (0)
                {
                    s3d_push_materials_a(ob,red, 1);
                    float vs[12]={0,0,griddist,sw,0,griddist,sw,s,griddist,0,s,griddist};
                    s3d_push_vertices(ob, vs, 4);
                    int ls[12]={0,1,1,1,2,1,2,3,1,3,0,1};
                    s3d_push_lines(ob,ls,4);
                    int ps[8]={4,6,5,0,4,7,6,0};
                    s3d_push_polygons(ob, ps, 2);
                }
                else
                {
                    int ps[8]={0,2,1,0,0,3,2,0};
                    s3d_push_polygons(ob, ps, 2);
                }
                s3d_flags_on(o[b][c], S3D_OF_VISIBLE|S3D_OF_SELECTABLE);
            }
        }

        space=s3d_new_object();
        s3d_translate(space, px, py-s*27,0);
        s3d_push_materials_a(space,black, 1);
        float svs2[12]={0,0,0,sw*26,0,0,sw*26,s,0,0,s,0};
        s3d_push_vertices(space, svs2, 4);
        int sps[8]={0,2,1,0,0,3,2,0};
        s3d_push_polygons(space, sps, 2);
        s3d_flags_on(space, S3D_OF_VISIBLE|S3D_OF_SELECTABLE);


        s3d_set_callback(S3D_EVENT_OBJ_CLICK, click);
        s3d_set_callback(S3D_EVENT_QUIT, stop_quit);
        s3d_set_callback(S3D_EVENT_KEY, keypress);
        s3d_mainloop(mainloop);
    }
}
int main()
{
    const my_facet f(1);
    {
        std::ios ios(0);
        unsigned long long v = 0;
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "0");
    }
    {
        std::ios ios(0);
        unsigned long long v = 1;
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "1");
    }
    {
        std::ios ios(0);
        unsigned long long v = -1;
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == (sizeof(unsigned long long) == 4 ? "4294967295" : "18446744073709551615"));
    }
    {
        std::ios ios(0);
        unsigned long long v = -1000;
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "18446744073709550616");
    }
    {
        std::ios ios(0);
        unsigned long long v = 1000;
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "1000");
    }
    {
        std::ios ios(0);
        showpos(ios);
        unsigned long long v = 1000;
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "1000");
    }
    {
        std::ios ios(0);
        oct(ios);
        unsigned long long v = 1000;
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "1750");
    }
    {
        std::ios ios(0);
        oct(ios);
        showbase(ios);
        unsigned long long v = 1000;
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "01750");
    }
    {
        std::ios ios(0);
        hex(ios);
        unsigned long long v = 1000;
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "3e8");
    }
    {
        std::ios ios(0);
        hex(ios);
        showbase(ios);
        unsigned long long v = 1000;
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "0x3e8");
    }
    {
        std::ios ios(0);
        hex(ios);
        showbase(ios);
        uppercase(ios);
        unsigned long long v = 1000;
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "0X3E8");
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        hex(ios);
        showbase(ios);
        uppercase(ios);
        unsigned long long v = 1000;
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "0X3E_8");
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        hex(ios);
        showbase(ios);
        unsigned long long v = 2147483647;
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "0x7f_fff_ff_f");
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        oct(ios);
        unsigned long long v = 0123467;
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "123_46_7");
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        oct(ios);
        showbase(ios);
        unsigned long long v = 0123467;
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "0_123_46_7");
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        oct(ios);
        showbase(ios);
        right(ios);
        ios.width(15);
        unsigned long long v = 0123467;
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "*****0_123_46_7");
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        oct(ios);
        showbase(ios);
        left(ios);
        ios.width(15);
        unsigned long long v = 0123467;
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "0_123_46_7*****");
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        oct(ios);
        showbase(ios);
        internal(ios);
        ios.width(15);
        unsigned long long v = 0123467;
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "*****0_123_46_7");
        assert(ios.width() == 0);
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        hex(ios);
        showbase(ios);
        right(ios);
        ios.width(15);
        unsigned long long v = 2147483647;
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "**0x7f_fff_ff_f");
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        hex(ios);
        showbase(ios);
        left(ios);
        ios.width(15);
        unsigned long long v = 2147483647;
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "0x7f_fff_ff_f**");
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        hex(ios);
        showbase(ios);
        internal(ios);
        ios.width(15);
        unsigned long long v = 2147483647;
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "0x**7f_fff_ff_f");
        assert(ios.width() == 0);
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        showpos(ios);
        unsigned long long v = 1000;
        right(ios);
        ios.width(10);
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "****1_00_0");
        assert(ios.width() == 0);
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        showpos(ios);
        unsigned long long v = 1000;
        left(ios);
        ios.width(10);
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "1_00_0****");
        assert(ios.width() == 0);
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        showpos(ios);
        unsigned long long v = 1000;
        internal(ios);
        ios.width(10);
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "****1_00_0");
        assert(ios.width() == 0);
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        unsigned long long v = -1000;
        right(ios);
        showpos(ios);
        ios.width(10);
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "18_446_744_073_709_550_61_6");
        assert(ios.width() == 0);
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        unsigned long long v = -1000;
        left(ios);
        ios.width(10);
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "18_446_744_073_709_550_61_6");
        assert(ios.width() == 0);
    }
    {
        std::ios ios(0);
        ios.imbue(std::locale(std::locale::classic(), new my_numpunct));
        unsigned long long v = -1000;
        internal(ios);
        ios.width(10);
        char str[50];
        output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v);
        std::string ex(str, iter.base());
        assert(ex == "18_446_744_073_709_550_61_6");
        assert(ios.width() == 0);
    }
}
示例#4
0
文件: fontedit.c 项目: koo5/lemon-2
void disp(void)
{
    if (pos<0)pos=l2numitems-1;
    if (pos==l2numitems)pos=0;
    if (aim<-1)aim=0;
    showaim();
    showpos();
    if (popl)
    {
        s3d_pop_line(oo, popl);
        printf("pop line\n");
    }
    if (popv)
    {
        s3d_pop_vertex(oo, popv);
        printf("pop vert\n");
    }
    if (apopl||apopv)
    {
        s3d_pop_line(aoo, apopl);
        s3d_pop_vertex(aoo, apopv);
    }
    apopl=apopv=0;
    popl=popv=0;
#ifdef hfgm
    if (ltxt!=-1)
        s3d_flags_off(ltxt, S3D_OF_VISIBLE);
    if (txt&&(pos<128)&&txt[pos])
    {
        ltxt=txt[pos];
        s3d_flags_on(txt[pos], S3D_OF_VISIBLE);
    }
#endif
    char *x=l2[pos];
    printf("editoing %c (%x)\n",pos,pos);
    if (toocomplex(x))
    {
        donoob(0);
        return;
    }
    int c=0;
    while ((x[c]))
    {
        float ptx=x[c++]-'a';
        float pty=x[c++]-'a';
        if (x[c-2]!=' ')
        {
            s3d_push_vertex(oo, sw*ptx+0.5*sw,-s*pty+0.5*s,0.1);
            popv++;
            if ((popv-1==aim)||(!x[c]&&(aim>popv-1)))
                dispaim(ptx,pty);
            if ((popv>1)&&!(x[c-1]==' ')&&!((c>2)&&x[c-3]==' '))
            {
                s3d_push_line(oo, popv-2, popv-1,1 );
                popl++;
            }
        }
    }
    if (!popv)
        donoob(2);
}