@@ -31,6 +31,7 @@ if (argv.meta) {
31
31
var compare = require ( './lib/compare.js' )
32
32
var infiles = [ ] . concat ( argv . infile || [ ] ) . concat ( argv . _ )
33
33
var index = 0
34
+ var QBZF = null
34
35
return pump ( from ( function ( size , next ) {
35
36
if ( index >= infiles . length ) return next ( null , null )
36
37
var infile = infiles [ index ++ ]
@@ -42,26 +43,37 @@ if (argv.meta) {
42
43
var keys = Object . keys ( font . glyphs . glyphs )
43
44
var unicodes = keys . map ( k => font . glyphs . glyphs [ k ] . unicodes )
44
45
. filter ( u => u . length > 0 ) . sort ( cmpu )
45
- var ranges = [ ] , range = [ null , null ]
46
- var prev = [ ]
47
- for ( var i = 0 ; i < unicodes . length ; i ++ ) {
48
- var u = unicodes [ i ]
49
- if ( range [ 0 ] === null ) {
50
- range [ 0 ] = u . length === 1 ? u [ 0 ] : u
51
- } else if ( diffu ( prev , u ) > 1 ) {
52
- range [ 1 ] = prev . length === 1 ? prev [ 0 ] + 1 : [ prev [ 0 ] , prev [ 1 ] + 1 ]
53
- ranges . push ( range [ 1 ] - range [ 0 ] === 1 ? range [ 0 ] : range )
54
- range = [ u . length === 1 ? u [ 0 ] : u , null ]
55
- }
56
- prev = u
46
+ } else {
47
+ if ( ! QBZF ) QBZF = require ( './' )
48
+ var qbzf = QBZF ( buf )
49
+ var unicodes = [ ]
50
+ for ( var k of qbzf . _glyphs . keys ( ) ) {
51
+ var u = k . split ( ',' ) . map ( Number )
52
+ unicodes . push ( u )
57
53
}
58
- if ( range [ 0 ] !== null ) {
59
- range [ 1 ] = prev . length === 1 ? prev [ 0 ] : prev
54
+ }
55
+ var ranges = [ ] , range = [ null , null ]
56
+ var prev = [ ]
57
+ for ( var i = 0 ; i < unicodes . length ; i ++ ) {
58
+ var u = unicodes [ i ]
59
+ if ( range [ 0 ] === null ) {
60
+ range [ 0 ] = u . length === 1 ? u [ 0 ] : u
61
+ } else if ( diffu ( prev , u ) > 1 ) {
62
+ range [ 1 ] = prev . length === 1 ? prev [ 0 ] + 1 : [ prev [ 0 ] , prev [ 1 ] + 1 ]
60
63
ranges . push ( range [ 1 ] - range [ 0 ] === 1 ? range [ 0 ] : range )
64
+ range = [ u . length === 1 ? u [ 0 ] : u , null ]
61
65
}
62
- next ( null , JSON . stringify ( { file : infile , unicodes : ranges } ) + '\n' )
63
- } else {
66
+ prev = u
67
+ }
68
+ if ( range [ 0 ] !== null ) {
69
+ range [ 1 ] = prev . length === 1 ? prev [ 0 ] : prev
70
+ ranges . push ( range [ 1 ] - range [ 0 ] === 1 ? range [ 0 ] : range )
64
71
}
72
+ next ( null , JSON . stringify ( {
73
+ file : infile ,
74
+ type : fileType ,
75
+ unicodes : ranges ,
76
+ } ) + '\n' )
65
77
} )
66
78
} ) , outstream , onerror )
67
79
return
0 commit comments