Some more Legacy Computing Symbols (pt 3) (#2200)

* some diagonals

* gapped blocks

* folder (#2181)

* doc
This commit is contained in:
Logo 2024-02-09 16:48:29 +08:00 committed by GitHub
parent 33db0276fc
commit bdd070bd9a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 68 additions and 15 deletions

View file

@ -17,10 +17,14 @@
- RIGHT VERTICAL RULER SEGMENT (U+1CC06) (Purposed for Unicode 16; L2/21-235). - RIGHT VERTICAL RULER SEGMENT (U+1CC06) (Purposed for Unicode 16; L2/21-235).
- LOWER RIGHT RULER SEGMENT (U+1CC07) (Purposed for Unicode 16; L2/21-235). - LOWER RIGHT RULER SEGMENT (U+1CC07) (Purposed for Unicode 16; L2/21-235).
- BOX DRAWINGS LIGHT HORIZONTAL AND UPPER RIGHT (U+1CC1B) ... BOX DRAWINGS LIGHT BOTTOM AND LOWER LEFT (U+1CC1E) (Purposed for Unicode 16; L2/21-235). - BOX DRAWINGS LIGHT HORIZONTAL AND UPPER RIGHT (U+1CC1B) ... BOX DRAWINGS LIGHT BOTTOM AND LOWER LEFT (U+1CC1E) (Purposed for Unicode 16; L2/21-235).
- BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE CENTRE TO UPPER RIGHT (U+1FBD8) ... BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE CENTRE TO LOWER LEFT (U+1FBDB) (Purposed for Unicode 16; L2/21-235).
- SEPARATED BLOCK QUADRANT-1 (U+1CC21) ... SEPARATED BLOCK QUADRANT-1234 (U+1CC2F) (Purposed for Unicode 16; L2/21-235).
- BLACK NEUTRAL FACE (U+1CC6F) (Purposed for Unicode 16; L2/21-235). - BLACK NEUTRAL FACE (U+1CC6F) (Purposed for Unicode 16; L2/21-235).
- VERTICAL LINE WITH FOUR TICK MARKS (U+1CC90) (Purposed for Unicode 16; L2/21-235). - VERTICAL LINE WITH FOUR TICK MARKS (U+1CC90) (Purposed for Unicode 16; L2/21-235).
- HORIZONTAL LINE WITH FOUR TICK MARKS (U+1CC91) (Purposed for Unicode 16; L2/21-235). - HORIZONTAL LINE WITH FOUR TICK MARKS (U+1CC91) (Purposed for Unicode 16; L2/21-235).
- SEPARATED BLOCK SEXTANT-1 (U+1CE51) ... SEPARATED BLOCK SEXTANT-123456 (U+1CE8F) (Purposed for Unicode 16; L2/21-235).
- UPPER LEFT ONE SIXTEENTH BLOCK (U+1CE90) ... LOWER HALF RIGHT ONE QUARTER BLOCK (U+1CEAF) (Purposed for Unicode 16; L2/21-235). - UPPER LEFT ONE SIXTEENTH BLOCK (U+1CE90) ... LOWER HALF RIGHT ONE QUARTER BLOCK (U+1CEAF) (Purposed for Unicode 16; L2/21-235).
- FOLDER (U+1F5C0) (#2181).
- NEGATIVE SQUARED LEFTWARDS ARROW (U+1F8B4) ... NEGATIVE SQUARED DOWNWARDS ARROW (U+1F8B7) (Purposed for Unicode 16; L2/21-235). - NEGATIVE SQUARED LEFTWARDS ARROW (U+1F8B4) ... NEGATIVE SQUARED DOWNWARDS ARROW (U+1F8B7) (Purposed for Unicode 16; L2/21-235).
- LEFT TWO THIRDS BLOCK (U+1FBCE) (Purposed for Unicode 16; L2/21-235). - LEFT TWO THIRDS BLOCK (U+1FBCE) (Purposed for Unicode 16; L2/21-235).
- LEFT ONE THIRD BLOCK (U+1FBCF) (Purposed for Unicode 16; L2/21-235). - LEFT ONE THIRD BLOCK (U+1FBCF) (Purposed for Unicode 16; L2/21-235).

View file

@ -337,6 +337,7 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin
flat (midx + bdArcRadius) midy [heading Rightward] flat (midx + bdArcRadius) midy [heading Rightward]
curl MosaicWidth midy [heading Rightward] curl MosaicWidth midy [heading Rightward]
# Corner Diagonals
create-glyph [MangleName : NameUni 0x2571] [MangleUnicode 0x2571] : glyph-proc create-glyph [MangleName : NameUni 0x2571] [MangleUnicode 0x2571] : glyph-proc
set-width MosaicWidth set-width MosaicWidth
include : ForceUpright include : ForceUpright
@ -359,6 +360,30 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin
include : refer-glyph : MangleName : NameUni 0x2571 include : refer-glyph : MangleName : NameUni 0x2571
include : refer-glyph : MangleName : NameUni 0x2572 include : refer-glyph : MangleName : NameUni 0x2572
create-glyph [MangleName : NameUni 0x1FBD8] [MangleUnicode 0x1FBD8] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : intersection [MaskRight midx] : refer-glyph : MangleName : NameUni 0x2571
include : intersection [MaskLeft midx] : refer-glyph : MangleName : NameUni 0x2572
create-glyph [MangleName : NameUni 0x1FBD9] [MangleUnicode 0x1FBD9] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : intersection [MaskAbove midy] : refer-glyph : MangleName : NameUni 0x2571
include : intersection [MaskBelow midy] : refer-glyph : MangleName : NameUni 0x2572
create-glyph [MangleName : NameUni 0x1FBDA] [MangleUnicode 0x1FBDA] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : intersection [MaskLeft midx] : refer-glyph : MangleName : NameUni 0x2571
include : intersection [MaskRight midx] : refer-glyph : MangleName : NameUni 0x2572
create-glyph [MangleName : NameUni 0x1FBDB] [MangleUnicode 0x1FBDB] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : intersection [MaskBelow midy] : refer-glyph : MangleName : NameUni 0x2571
include : intersection [MaskAbove midy] : refer-glyph : MangleName : NameUni 0x2572
# Diamond # Diamond
define [DiamondBarRaw hStart vStart hEnd vEnd] : begin define [DiamondBarRaw hStart vStart hEnd vEnd] : begin
define zStartX : mix left right hStart define zStartX : mix left right hStart

View file

@ -1,6 +1,7 @@
$$include '../../meta/macros.ptl' $$include '../../meta/macros.ptl'
import [mix linreg clamp fallback] from "@iosevka/util" import [mix linreg clamp fallback] from "@iosevka/util"
import [maskBit] from "@iosevka/util/mask-bit"
glyph-module glyph-module
@ -15,20 +16,22 @@ glyph-block Symbol-Mosaic-Teletext : begin
define left 0 define left 0
define right MosaicWidth define right MosaicWidth
define [BlockMosaicTile w h id] : glyph-proc define gap : 0.05 * (top - bottom)
define [BlockMosaicTile w h id kgap] : glyph-proc
local column : id % w local column : id % w
local row : Math.floor (id / w) local row : Math.floor (id / w)
define cw : (right - left) / w define cw : (right - left) / w
define ch : (top - bottom) / h define ch : (top - bottom) / h
include : spiro-outline include : spiro-outline
corner (column * cw) (top - row * ch) corner (column * cw + kgap * gap) (top - row * ch - kgap * gap)
corner ((column + 1) * cw) (top - row * ch) corner ((column + 1) * cw - kgap * gap) (top - row * ch - kgap * gap)
corner ((column + 1) * cw) (top - (row + 1) * ch) corner ((column + 1) * cw - kgap * gap) (top - (row + 1) * ch + kgap * gap)
corner (column * cw) (top - (row + 1) * ch) corner (column * cw + kgap * gap) (top - (row + 1) * ch + kgap * gap)
define [BlockMosaicPattern w h bits] : glyph-proc define [BlockMosaicPattern w h bits] : glyph-proc
if (bits.length > 0) : include : union if (bits.length > 0) : include : union
BlockMosaicTile w h bits.0 BlockMosaicTile w h bits.0 0
BlockMosaicPattern w h : bits.slice 1 BlockMosaicPattern w h : bits.slice 1
define [BlockMosaic23 unicode pattern] : begin define [BlockMosaic23 unicode pattern] : begin
@ -43,11 +46,21 @@ glyph-block Symbol-Mosaic-Teletext : begin
include : ForceUpright include : ForceUpright
include : BlockMosaicPattern 2 4 : [pattern.split ''].map : x => x - 1 include : BlockMosaicPattern 2 4 : [pattern.split ''].map : x => x - 1
define [BlockMosaic unicode w h pattern] : begin define [BlockMosaic unicode w h kgap pattern] : begin
create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc
set-width MosaicWidth set-width MosaicWidth
include : ForceUpright include : ForceUpright
include : BlockMosaicPattern w h pattern include : BlockMosaicPattern w h kgap pattern
define [MakeGappedBlockMosaic w h su] : foreach [offset : range 1 [Math.pow 2 (w * h)]] : begin
create-glyph [MangleName : NameUni (su + offset)] [MangleUnicode (su + offset)] : glyph-proc
set-width MosaicWidth
include : ForceUpright
foreach [bit : range 0 (w * h)] : if [maskBit offset bit]
include : BlockMosaicTile w h bit 1
MakeGappedBlockMosaic 2 2 0x1CC20
MakeGappedBlockMosaic 2 3 0x1CE50
BlockMosaic23 0x1FB00 '1' BlockMosaic23 0x1FB00 '1'
BlockMosaic23 0x1FB01 '2' BlockMosaic23 0x1FB01 '2'
@ -341,6 +354,6 @@ glyph-block Symbol-Mosaic-Teletext : begin
BlockMosaic24 0x1CDE4 '1345678' BlockMosaic24 0x1CDE4 '1345678'
BlockMosaic24 0x1CDE5 '2345678' BlockMosaic24 0x1CDE5 '2345678'
BlockMosaic 0x1FB95 4 4 {0 2 5 7 8 10 13 15} BlockMosaic 0x1FB95 4 4 0 {0 2 5 7 8 10 13 15}
BlockMosaic 0x1FB96 4 4 {1 3 4 6 9 11 12 14} BlockMosaic 0x1FB96 4 4 0 {1 3 4 6 9 11 12 14}
BlockMosaic 0x1FB97 4 4 {4 5 6 7 12 13 14 15} BlockMosaic 0x1FB97 4 4 0 {4 5 6 7 12 13 14 15}

View file

@ -153,8 +153,8 @@ glyph-block Symbol-Pictograph-Powerline-And-GUI : begin
MosaicWidthMask MosaicWidthMask
RunningManBody (-MosaicWidth) RunningManBody (-MosaicWidth)
define [FolderBody xOffset] : begin define [FolderBody xOffset box] : begin
local Kit : StickFigureKit [BoxN 2] [Translate xOffset 0] [AdviceStroke 4] local Kit : StickFigureKit box [Translate xOffset 0] [AdviceStroke 4]
return : union return : union
Kit.RoundSeg (0 / 16) (1 / 8) (0 / 16) (11 / 16) Kit.RoundSeg (0 / 16) (1 / 8) (0 / 16) (11 / 16)
Kit.RoundSeg (0 / 16) (11 / 16) (3 / 16) (7 / 8) 1 1 Kit.RoundSeg (0 / 16) (11 / 16) (3 / 16) (7 / 8) 1 1
@ -168,13 +168,22 @@ glyph-block Symbol-Pictograph-Powerline-And-GUI : begin
set-width MosaicWidth set-width MosaicWidth
include : intersection include : intersection
MosaicWidthMask MosaicWidthMask
FolderBody 0 FolderBody 0 [BoxN 2]
create-glyph [MangleName 'folderRight'] [MangleUnicode 0x1FBBA] : glyph-proc create-glyph [MangleName 'folderRight'] [MangleUnicode 0x1FBBA] : glyph-proc
set-width MosaicWidth set-width MosaicWidth
include : intersection include : intersection
MosaicWidthMask MosaicWidthMask
FolderBody (-MosaicWidth) FolderBody (-MosaicWidth) [BoxN 2]
create-glyph [MangleName 'folder'] [MangleUnicode 0x1F5C0] : glyph-proc
set-width MosaicWidth
local hbox : new Box
mix SymbolMid uiFigTop (0.5 * MosaicWidthScalar)
mix SymbolMid uiFigBot (0.5 * MosaicWidthScalar)
SB * (0.5 * MosaicWidthScalar)
MosaicWidth - SB * (0.5 * MosaicWidthScalar)
include : FolderBody 0 hbox
define [PointingHandBody xOffset] : begin define [PointingHandBody xOffset] : begin
return : PointingHandShape [BoxN 3] [Translate xOffset 0] [AdviceStroke 4] return : PointingHandShape [BoxN 3] [Translate xOffset 0] [AdviceStroke 4]
@ -202,6 +211,7 @@ glyph-block Symbol-Pictograph-Powerline-And-GUI : begin
set scaffold.top uiFigTop set scaffold.top uiFigTop
set scaffold.bot uiFigBot set scaffold.bot uiFigBot
set scaffold.xMiddle : MosaicWidth / 2 set scaffold.xMiddle : MosaicWidth / 2
set scaffold.yMiddle : mix uiFigBot uiFigTop 0.5
set scaffold.headSize : (uiFigTop - uiFigBot) / 2.5 set scaffold.headSize : (uiFigTop - uiFigBot) / 2.5
set scaffold.legSize : (Middle - SB) * 2 set scaffold.legSize : (Middle - SB) * 2
set scaffold.armSize : (Middle - SB / 2) * 2 set scaffold.armSize : (Middle - SB / 2) * 2
@ -356,6 +366,7 @@ glyph-block Symbol-Pictograph-Powerline-And-GUI : begin
set scaffold.width : (Middle - SB) * 2 * [Math.pow (MosaicWidth / Width) 0.5] set scaffold.width : (Middle - SB) * 2 * [Math.pow (MosaicWidth / Width) 0.5]
set scaffold.left : (MosaicWidth / 2) - scaffold.width / 2 + scaffold.stroke / 2 set scaffold.left : (MosaicWidth / 2) - scaffold.width / 2 + scaffold.stroke / 2
set scaffold.right : (MosaicWidth / 2) + scaffold.width / 2 - scaffold.stroke / 2 set scaffold.right : (MosaicWidth / 2) + scaffold.width / 2 - scaffold.stroke / 2
define [StrokeV x yt yb] : spiro-outline define [StrokeV x yt yb] : spiro-outline
corner x (yt - scaffold.gap) corner x (yt - scaffold.gap)
corner (x + scaffold.stroke) (yt - scaffold.gap - scaffold.stroke) corner (x + scaffold.stroke) (yt - scaffold.gap - scaffold.stroke)