pike.git / lib / modules / _Image_PS.pmod

version» Context lines:

pike.git/lib/modules/_Image_PS.pmod:159:    });       Process.Process pid = Process.create_process( command, ([    "stdin":fd,    "stdout":fd4,    "stderr":fd4,    ]));    fd->close();    fd4->close();    -  // FIXME: Create a new backend instead of using the default. +  // Backend to use. +  Pike.Backend be = Pike.Backend();       // Kill the gs binary after 30 seconds in case it hangs. -  mixed co = call_out(lambda(Process.Process pid) { +  mixed co = +  be->call_out(lambda(Process.Process pid) {    if (!pid->status()) {    pid->kill(9);    }    }, 30, pid);    if(!options->file)    {    if(!has_value(data, "showpage"))    data += "\nshowpage\n"; -  +  be->add_file(fd2);    Stdio.sendfile(({ data }), 0, 0, sizeof(data), 0, fd2,    lambda(int n) {    fd2->close();    });    } else {    fd2->close();    }    string output = ""; -  +  be->add_file(fd3);    fd3->set_nonblocking(lambda(mixed ignored, string s) {    output += s;    }, 0,    lambda() {    fd3->close();    destruct(fd3);    });    mixed err = catch {    while (fd3) { -  Pike.DefaultBackend(1.0); +  be(1.0);    }    };   #if 0    if (err) {    werror("Backend failed: %s\n", describe_backtrace(err));    }   #endif -  remove_call_out(co); +  be->remove_call_out(co);    int ret_code = pid->wait();    if(ret_code)    error("Ghostscript failed with exit code: %O:\n%s\n", ret_code, output);    object i= Image.PNM.decode( output );       if (data) {    -  if(data && sscanf(data, "%*s\n%%%%BoundingBox: %s\n", string bbox) == 2 && !options->eps_crop) +  if(data && sscanf(data, "%*s\n%%%%BoundingBox: %s\n", string bbox) == 2 && +  !options->eps_crop)    {    int x0,x1,y0,y1;    sscanf(bbox, "%d %d %d %d", x0,y0,x1,y1 );    int llx = (int)((x0/72.0) * (options->dpi||100)+0.01);    int lly = (int)((y0/72.0) * (options->dpi||100)+0.01);    int urx = (int)((x1/72.0) * (options->dpi||100)+0.01);    int ury = (int)((y1/72.0) * (options->dpi||100)+0.01);       if(urx && ury)    i = i->mirrory()->copy(llx,lly,urx,ury)->mirrory();