HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/quadcode.com/node_modules/charm/example/resize.js
var c = require('../')();
c.pipe(process.stdout);
c.on('^C', process.exit);

var queue = (function () {
    var tasks = [];
    var pending = false;
    
    return {
        abort : function () {
            tasks = [];
            next();
        },
        push : function (t) {
            tasks.push(t);
            if (!pending) next();
        }
    };
    
    function next () {
        pending = true;
        process.nextTick(function () {
            if (tasks.length === 0) return;
            var t = tasks.shift();
            t();
            pending = false;
            next();
        });
    }
})();

process.stdout.on('resize', draw);
draw();
setInterval(function () {}, 1e8);

function draw () {
    var cols = process.stdout.columns;
    var rows = process.stdout.rows;
    queue.abort();
    
    queue.push(function () {
        c.reset();
        c.background('blue');
        c.position(1, 1);
        c.write(Array(cols + 1).join(' '));
    });
    
    for (var y = 1; y < rows; y++) {
        queue.push(function () {
            c.position(1, y);
            c.write(' ');
            c.position(cols, y);
            c.write(' ');
        });
    }
    
    queue.push(function () {
        c.position(1, rows);
        c.write(Array(cols + 1).join(' '));
        c.display('reset');
    });
}