Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
this.newLine() ;
return 1 ;
// Carriage Return
// PTY may emit both a carriage return followed by a newline when a single newline is emitted from the real child process
case 0x0d :
this.moveTo( 1 ) ;
return 1 ;
// Escape
case 0x1b :
if ( index + 1 < chunk.length ) { return this.escapeSequence( chunk , index + 1 ) ; }
return 1 ;
default :
console.error( string.format( 'Not implemented: Control 0x%x' , chunk[ index ] ) ) ;
return 1 ;
}
} ;
fg = Math.floor( fg ) ;
bg = Math.floor( bg ) ;
if ( fg < 0 || fg > 255 || bg < 0 || bg > 255 ) { return '' ; }
// If the register is greater than 15, find the 0..15 register that is close to it
if ( fg > 15 ) { fg = this.root.registerForRgb( this.root.rgbForRegister( fg ) , 0 , 15 ) ; }
if ( bg > 15 ) { bg = this.root.registerForRgb( this.root.rgbForRegister( bg ) , 0 , 15 ) ; }
//console.log( 'fg bg: ' , fg , bg ) ;
fg = fgCursorTable[ fg ] ;
bg = bgCursorTable[ bg ] ;
return string.format( '\x1b[?16;%u;%uc' , fg , bg * 16 ) ;
}
} ,
ScreenBuffer.prototype.dump = function dump()
{
var y , x , offset ;
process.stdout.write( '\nDumping the buffer (attributes + characters):\n' ) ;
for ( y = 0 ; y < this.height ; y ++ )
{
process.stdout.write( y + ' > ' ) ;
for ( x = 0 ; x < this.width ; x ++ )
{
offset = ( y * this.width + x ) * ITEM_SIZE ;
process.stdout.write( string.format( '%x%x%x%x ' ,
this.buffer.readUInt8( offset + 3 ) ,
this.buffer.readUInt8( offset + 2 ) ,
this.buffer.readUInt8( offset + 1 ) ,
this.buffer.readUInt8( offset )
) ) ;
// Issue with character bigger than 16bits, javascript is more like UCS-2 than UTF-16
//process.stdout.write( this.buffer.toString( 'utf8' , offset + ATTR_SIZE , offset + ITEM_SIZE )[ 0 ] + ' ' ) ;
process.stdout.write( readChar( this.buffer , offset + ATTR_SIZE ) + ' ' ) ;
}
process.stdout.write( '\n' ) ;
}
} ;
// Process attributes
attr = options.attr || this.esc.styleReset.on ;
if ( attr && typeof attr === 'object' ) { attr = this.object2attr( attr ) ; }
if ( typeof attr !== 'string' ) { attr = this.esc.styleReset.on ; }
// Process the input string
if ( typeof str !== 'string' ) {
if ( str.toString ) { str = str.toString() ; }
else { return ; }
}
if ( args.length ) { str = string.format( str , ... args ) ; }
str = termkit.stripControlChars( str ) ;
//characters = punycode.ucs2.decode( str ) ;
characters = string.unicode.toArray( str ) ;
len = characters.length ;
moveToNeeded = true ;
this.stdout.write( attr ) ;
for ( i = 0 ; i < len ; i ++ ) {
if ( moveToNeeded ) { this.moveTo( x , y ) ; }
this( characters[ i ] ) ;
x += dx ;
y += dy ;
baseAttr = attr ;
// It's already in the correct format
if ( options.resumeAttr !== undefined ) { attr = options.resumeAttr ; }
// Process the input string
if ( typeof str !== 'string' ) {
if ( str.toString ) { str = str.toString() ; }
else { return ; }
}
if ( args.length ) {
str = options.markup ?
this.preserveMarkupFormat( str , ... args ) :
string.format( str , ... args ) ;
}
// The processing of raw chunk of text
var processRaw = part => {
//part = termkit.stripControlChars( part ) ;
var isFullWidth ,
offset , char , charCode ,
characters = string.unicode.toArray( part ) ,
i , iMax = characters.length ;
for ( i = 0 ; i < iMax ; i ++ ) {
offset = ( y * this.width + x ) * this.ITEM_SIZE ;
char = characters[ i ] ;
charCode = char.charCodeAt( 0 ) ;
Vte.prototype.emitScreenSize = function( decVariant ) {
this.emit( 'input' , string.format( toInputSequence.reports.screenSize , this.width , this.height ) ) ;
} ;
Vte.prototype.emitRegisterColor = function( register ) {
logRed( "emitRegisterColor" , register ) ;
var rgb = this.screenBuffer.palette.getRgb( register ) ;
logRed( "emitRegisterColor >>> " , rgb ) ;
if ( ! rgb ) { return ; }
this.emit( 'input' , string.format( toInputSequence.reports.registerColor , register , rgb.r , rgb.g , rgb.b ) ) ;
} ;
ScreenBuffer.prototype.dump = function() {
var y , x , offset , str = '' , char ;
for ( y = 0 ; y < this.height ; y ++ ) {
for ( x = 0 ; x < this.width ; x ++ ) {
offset = ( y * this.width + x ) * this.ITEM_SIZE ;
char = this.readChar( this.buffer , offset ) ;
str += char + ( string.unicode.isFullWidth( char ) ? ' ' : ' ' ) ;
str += string.format( '%x%x%x%x ' ,
this.buffer.readUInt8( offset ) ,
this.buffer.readUInt8( offset + 1 ) ,
this.buffer.readUInt8( offset + 2 ) ,
this.buffer.readUInt8( offset + 3 )
) ;
}
str += '\n' ;
}
return str ;
} ;
handler: function setCursorColor( bg , fg ) {
if ( typeof fg !== 'number' || typeof bg !== 'number' ) { return '' ; }
fg = Math.floor( fg ) ;
bg = Math.floor( bg ) ;
if ( fg < 0 || fg > 255 || bg < 0 || bg > 255 ) { return '' ; }
var rgb = this.root.rgbForRegister( bg ) ;
return string.format( this.root.esc.setCursorColorRgb.on , rgb.r , rgb.g , rgb.b ) ;
}
}
ScreenBufferHD.prototype.dump = function() {
var y , x , offset , str = '' , char ;
for ( y = 0 ; y < this.height ; y ++ ) {
for ( x = 0 ; x < this.width ; x ++ ) {
offset = ( y * this.width + x ) * this.ITEM_SIZE ;
char = this.readChar( this.buffer , offset ) ;
str += char + ( string.unicode.isFullWidth( char ) ? ' ' : ' ' ) ;
str += string.format( '%x%x%x%x %x%x%x%x %x%x ' ,
this.buffer.readUInt8( offset ) ,
this.buffer.readUInt8( offset + 1 ) ,
this.buffer.readUInt8( offset + 2 ) ,
this.buffer.readUInt8( offset + 3 ) ,
this.buffer.readUInt8( offset + 4 ) ,
this.buffer.readUInt8( offset + 5 ) ,
this.buffer.readUInt8( offset + 6 ) ,
this.buffer.readUInt8( offset + 7 ) ,
this.buffer.readUInt8( offset + 8 ) ,
this.buffer.readUInt8( offset + 9 )
) ;
}
str += '\n' ;
}