From 4fb5f978142125c75113b626a0f51d5ce1a347ed Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Fri, 2 Jun 2017 12:43:52 +0000 Subject: add about 15 missing character escape sequences found in groff_char(7); triggered by multimedia/mkvtoolnix mkvmerge(1) using \(S2 --- chars.c | 20 ++++++++++++++++++-- gmdiff | 11 +++++++---- mandoc_char.7 | 32 ++++++++++++++++++++++++++------ regress/char/unicode/latin1.in | 10 +++++----- regress/char/unicode/latin1.out_ascii | 10 +++++----- regress/char/unicode/latin1.out_html | 10 +++++----- regress/char/unicode/latin1.out_utf8 | 10 +++++----- regress/char/unicode/named.in | 5 +++++ regress/char/unicode/named.out_ascii | 5 +++++ regress/char/unicode/named.out_html | 5 +++++ regress/char/unicode/named.out_utf8 | 5 +++++ regress/char/unicode/namediff.in | 7 ++++++- regress/char/unicode/namediff.out_ascii | 7 ++++++- regress/char/unicode/namediff.out_html | 7 ++++++- regress/char/unicode/namediff.out_utf8 | 7 ++++++- 15 files changed, 115 insertions(+), 36 deletions(-) diff --git a/chars.c b/chars.c index f1f5d5d7..4d37c325 100644 --- a/chars.c +++ b/chars.c @@ -1,7 +1,7 @@ -/* $Id: chars.c,v 1.69 2017/02/17 18:28:06 schwarze Exp $ */ +/* $Id: chars.c,v 1.70 2017/06/02 12:43:52 schwarze Exp $ */ /* * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons - * Copyright (c) 2011, 2014, 2015 Ingo Schwarze + * Copyright (c) 2011, 2014, 2015, 2017 Ingo Schwarze * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -81,6 +81,10 @@ static struct ln lines[] = { { "sh", "#", 0x0023 }, { "CR", "_|", 0x21b5 }, { "OK", "\\/", 0x2713 }, + { "CL", "", 0x2663 }, + { "SP", "", 0x2660 }, + { "HE", "", 0x2665 }, + { "DI", "", 0x2666 }, /* Legal symbols. */ { "co", "(C)", 0x00a9 }, @@ -161,6 +165,7 @@ static struct ln lines[] = { { "uA", "=\b^", 0x21d1 }, { "dA", "=\bv", 0x21d3 }, { "vA", "^=v", 0x21d5 }, + { "an", "-", 0x23af }, /* Logic. */ { "AN", "^", 0x2227 }, @@ -234,11 +239,20 @@ static struct ln lines[] = { { "Ah", "N", 0x2135 }, { "Im", "I", 0x2111 }, { "Re", "R", 0x211c }, + { "wp", "P", 0x2118 }, { "pd", "a", 0x2202 }, { "-h", "/h", 0x210f }, + { "hbar", "/h", 0x210f }, { "12", "1/2", 0x00bd }, { "14", "1/4", 0x00bc }, { "34", "3/4", 0x00be }, + { "18", "1/8", 0x215B }, + { "38", "3/8", 0x215C }, + { "58", "5/8", 0x215D }, + { "78", "7/8", 0x215E }, + { "S1", "1", 0x00B9 }, + { "S2", "2", 0x00B2 }, + { "S3", "3", 0x00B3 }, /* Ligatures. */ { "ff", "ff", 0xfb00 }, @@ -354,6 +368,8 @@ static struct ln lines[] = { { "fm", "\'", 0x2032 }, { "sd", "''", 0x2033 }, { "mc", ",\bu", 0x00b5 }, + { "Of", "_\ba", 0x00aa }, + { "Om", "_\bo", 0x00ba }, /* Greek characters. */ { "*A", "A", 0x0391 }, diff --git a/gmdiff b/gmdiff index 535874fc..2e078548 100644 --- a/gmdiff +++ b/gmdiff @@ -29,17 +29,20 @@ if [ "X$1" = "X-h" ]; then EQN="neqn" ROFF="nroff" MOPT="-Omdoc $MOPT" +elif [ "X$1" = "X-u" ]; then + shift + ROFF="groff -ket -ww -Tutf8 -P -c" + MOPT="-Werror -Tutf8 $MOPT" else - EQN="eqn -Tascii" - ROFF="groff -ww -Tascii -P -c" + ROFF="groff -et -ww -Tascii -P -c" + MOPT="-Werror -Tascii $MOPT" fi -MOPT="-Werror -Tascii $MOPT" while [ -n "$1" ]; do file=$1 shift echo " ========== $file ========== " - tbl $file | $EQN | $ROFF -mandoc 2> /tmp/roff.err > /tmp/roff.out + $ROFF -mandoc $file 2> /tmp/roff.err > /tmp/roff.out ${MANDOC:=mandoc} -Ios='OpenBSD ports' $MOPT $file \ 2> /tmp/mandoc.err > /tmp/mandoc.out for i in roff mandoc; do diff --git a/mandoc_char.7 b/mandoc_char.7 index 92637b62..2c82a9be 100644 --- a/mandoc_char.7 +++ b/mandoc_char.7 @@ -1,8 +1,8 @@ -.\" $Id: mandoc_char.7,v 1.65 2017/05/17 23:39:31 schwarze Exp $ +.\" $Id: mandoc_char.7,v 1.66 2017/06/02 12:43:52 schwarze Exp $ .\" .\" Copyright (c) 2003 Jason McIntyre .\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons -.\" Copyright (c) 2011, 2013, 2015 Ingo Schwarze +.\" Copyright (c) 2011, 2013, 2015, 2017 Ingo Schwarze .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -16,7 +16,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: May 17 2017 $ +.Dd $Mdocdate: June 2 2017 $ .Dt MANDOC_CHAR 7 .Os .Sh NAME @@ -169,6 +169,8 @@ even on request and macro lines. .Ss Accents In output modes supporting such special output characters, for example .Fl T Cm pdf , +and sometimes less consistently in +.Fl T Cm utf8 , some .Xr roff 7 formatters convert the following ASCII input characters to the @@ -177,6 +179,7 @@ following Unicode special output characters: .It \(ga Ta U+2018 Ta left single quotation mark .It \(aq Ta U+2019 Ta right single quotation mark .It \(ti Ta U+02DC Ta small tilde +.It \(ha Ta U+02C6 Ta modifier letter circumflex .El .Pp In prose, this automatic substitution is often desirable; @@ -187,6 +190,7 @@ escaping to render as follows: .It \e(ga Ta U+0060 Ta grave accent .It \e(aq Ta U+0027 Ta apostrophe .It \e(ti Ta U+007E Ta tilde +.It \e(ha Ta U+005E Ta circumflex accent .El .Ss Periods The period @@ -279,6 +283,10 @@ Text markers: .It \e(sh Ta \(sh Ta hash (pound) .It \e(CR Ta \(CR Ta carriage return .It \e(OK Ta \(OK Ta check mark +.It \e(CL Ta \(CL Ta club suit +.It \e(SP Ta \(SP Ta spade suit +.It \e(HE Ta \(HE Ta heart suit +.It \e(DI Ta \(DI Ta diamond suit .El .Pp Legal symbols: @@ -372,6 +380,7 @@ Arrows: .It \e(uA Ta \(uA Ta up double-arrow .It \e(dA Ta \(dA Ta down double-arrow .It \e(vA Ta \(vA Ta up-down double-arrow +.It \e(an Ta \(an Ta horizontal arrow extension .El .Pp Logical: @@ -450,11 +459,20 @@ Mathematical: .It \e(Ah Ta \(Ah Ta aleph .It \e(Im Ta \(Im Ta imaginary .It \e(Re Ta \(Re Ta real +.It \e(wp Ta \(wp Ta Weierstrass p .It \e(pd Ta \(pd Ta partial differential .It \e(-h Ta \(-h Ta Planck constant over 2\(*p -.It \e[12] Ta \[12] Ta one-half -.It \e[14] Ta \[14] Ta one-fourth -.It \e[34] Ta \[34] Ta three-fourths +.It \e[hbar] Ta \[hbar] Ta Planck constant over 2\(*p +.It \e(12 Ta \(12 Ta one-half +.It \e(14 Ta \(14 Ta one-fourth +.It \e(34 Ta \(34 Ta three-fourths +.It \e(18 Ta \(18 Ta one-eighth +.It \e(38 Ta \(38 Ta three-eighths +.It \e(58 Ta \(58 Ta five-eighths +.It \e(78 Ta \(78 Ta seven-eighths +.It \e(S1 Ta \(S1 Ta superscript 1 +.It \e(S2 Ta \(S2 Ta superscript 2 +.It \e(S3 Ta \(S3 Ta superscript 3 .El .Pp Ligatures: @@ -588,6 +606,8 @@ Units: .It \e(fm Ta \(fm Ta minute .It \e(sd Ta \(sd Ta second .It \e(mc Ta \(mc Ta micro +.It \e(Of Ta \(Of Ta Spanish female ordinal +.It \e(Om Ta \(Om Ta Spanish masculine ordinal .El .Pp Greek letters: diff --git a/regress/char/unicode/latin1.in b/regress/char/unicode/latin1.in index 4c99e986..54b9ca6e 100644 --- a/regress/char/unicode/latin1.in +++ b/regress/char/unicode/latin1.in @@ -10,20 +10,20 @@ BEGINTEST \[u00A6]\(bb BROKEN BAR \[u00A8]\(ad DIAERESIS \[u00A9]\(co COPYRIGHT SIGN -\[u00AA] FEMININE ORDINAL INDICATOR +\[u00AA]\(Of FEMININE ORDINAL INDICATOR \[u00AB]\(Fo LEFT-POINTING DOUBLE ANGLE QUOTATION MARK \[u00AC]\(no\[tno] NOT SIGN \[u00AD] SOFT HYPHEN \[u00AE]\(rg REGISTERED SIGN \[u00B1]\(+-\[t+-] PLUS-MINUS SIGN -\[u00B2] SUPERSCRIPT TWO -\[u00B3] SUPERSCRIPT THREE +\[u00B2]\(S2 SUPERSCRIPT TWO +\[u00B3]\(S3 SUPERSCRIPT THREE \[u00B4]\'\(aa ACUTE ACCENT \[u00B5]\(mc MICRO SIGN \[u00B7]\(pc MIDDLE DOT \[u00B8]\(ac CEDILLA -\[u00B9] SUPERSCRIPT ONE -\[u00BA] MASCULINE ORDINAL INDICATOR +\[u00B9]\(S1 SUPERSCRIPT ONE +\[u00BA]\(Om MASCULINE ORDINAL INDICATOR \[u00BB]\(Fc RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK \[u00BC]\(14 VULGAR FRACTION ONE QUARTER \[u00BD]\(12 VULGAR FRACTION ONE HALF diff --git a/regress/char/unicode/latin1.out_ascii b/regress/char/unicode/latin1.out_ascii index 1eb8436d..e772f9f7 100644 --- a/regress/char/unicode/latin1.out_ascii +++ b/regress/char/unicode/latin1.out_ascii @@ -13,20 +13,20 @@ DDEESSCCRRIIPPTTIIOONN || BROKEN BAR "" DIAERESIS (C)(C) COPYRIGHT SIGN - _a FEMININE ORDINAL INDICATOR + _a_a FEMININE ORDINAL INDICATOR <<<< LEFT-POINTING DOUBLE ANGLE QUOTATION MARK ~~~ NOT SIGN SOFT HYPHEN (R)(R) REGISTERED SIGN +-+-+- PLUS-MINUS SIGN - 2 SUPERSCRIPT TWO - 3 SUPERSCRIPT THREE + 22 SUPERSCRIPT TWO + 33 SUPERSCRIPT THREE ''' ACUTE ACCENT ,u,u MICRO SIGN .. MIDDLE DOT ,, CEDILLA - 1 SUPERSCRIPT ONE - _o MASCULINE ORDINAL INDICATOR + 11 SUPERSCRIPT ONE + _o_o MASCULINE ORDINAL INDICATOR >>>> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 1/41/4 VULGAR FRACTION ONE QUARTER 1/21/2 VULGAR FRACTION ONE HALF diff --git a/regress/char/unicode/latin1.out_html b/regress/char/unicode/latin1.out_html index d8fbf958..0196d76d 100644 --- a/regress/char/unicode/latin1.out_html +++ b/regress/char/unicode/latin1.out_html @@ -5,20 +5,20 @@ BEGINTEST ¦¦ BROKEN BAR ¨¨ DIAERESIS ©© COPYRIGHT SIGN -ª FEMININE ORDINAL INDICATOR +ªª FEMININE ORDINAL INDICATOR «« LEFT-POINTING DOUBLE ANGLE QUOTATION MARK ¬¬¬ NOT SIGN ­ SOFT HYPHEN ®® REGISTERED SIGN ±±± PLUS-MINUS SIGN -² SUPERSCRIPT TWO -³ SUPERSCRIPT THREE +²² SUPERSCRIPT TWO +³³ SUPERSCRIPT THREE ´´´ ACUTE ACCENT µµ MICRO SIGN ·· MIDDLE DOT ¸¸ CEDILLA -¹ SUPERSCRIPT ONE -º MASCULINE ORDINAL INDICATOR +¹¹ SUPERSCRIPT ONE +ºº MASCULINE ORDINAL INDICATOR »» RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK ¼¼ VULGAR FRACTION ONE QUARTER ½½ VULGAR FRACTION ONE HALF diff --git a/regress/char/unicode/latin1.out_utf8 b/regress/char/unicode/latin1.out_utf8 index 5fcc6dda..b9f1ad85 100644 --- a/regress/char/unicode/latin1.out_utf8 +++ b/regress/char/unicode/latin1.out_utf8 @@ -13,20 +13,20 @@ DDEESSCCRRIIPPTTIIOONN ¦¦ BROKEN BAR ¨¨ DIAERESIS ©© COPYRIGHT SIGN - ª FEMININE ORDINAL INDICATOR + ªª FEMININE ORDINAL INDICATOR «« LEFT-POINTING DOUBLE ANGLE QUOTATION MARK ¬¬¬ NOT SIGN ­ SOFT HYPHEN ®® REGISTERED SIGN ±±± PLUS-MINUS SIGN - ² SUPERSCRIPT TWO - ³ SUPERSCRIPT THREE + ²² SUPERSCRIPT TWO + ³³ SUPERSCRIPT THREE ´´´ ACUTE ACCENT µµ MICRO SIGN ·· MIDDLE DOT ¸¸ CEDILLA - ¹ SUPERSCRIPT ONE - º MASCULINE ORDINAL INDICATOR + ¹¹ SUPERSCRIPT ONE + ºº MASCULINE ORDINAL INDICATOR »» RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK ¼¼ VULGAR FRACTION ONE QUARTER ½½ VULGAR FRACTION ONE HALF diff --git a/regress/char/unicode/named.in b/regress/char/unicode/named.in index 5644d325..c18d4253 100644 --- a/regress/char/unicode/named.in +++ b/regress/char/unicode/named.in @@ -91,6 +91,10 @@ BEGINTEST \[u211C]\(Re BLACK-LETTER CAPITAL R \[u2122]\(tm TRADE MARK SIGN \[u2135]\(Ah ALEF SYMBOL +\[u215B]\(18 VULGAR FRACTION ONE EIGHTH +\[u215C]\(38 VULGAR FRACTION THREE EIGHTHS +\[u215D]\(58 VULGAR FRACTION FIVE EIGHTHS +\[u215E]\(78 VULGAR FRACTION SEVEN EIGHTHS \[u2190]\(<- LEFTWARDS ARROW \[u2191]\(ua UPWARDS ARROW \[u2192]\(-> RIGHTWARDS ARROW @@ -143,6 +147,7 @@ BEGINTEST \[u230A]\(lf LEFT FLOOR \[u230B]\(rf RIGHT FLOOR \[u23AA]\(bv CURLY BRACKET EXTENSION +\[u23AF]\(an HORIZONTAL LINE EXTENSION \[u2502]\(br BOX DRAWINGS LIGHT VERTICAL \[u25A1]\(sq WHITE SQUARE \[u25CA]\(lz LOZENGE diff --git a/regress/char/unicode/named.out_ascii b/regress/char/unicode/named.out_ascii index 3f92caf1..b527ad13 100644 --- a/regress/char/unicode/named.out_ascii +++ b/regress/char/unicode/named.out_ascii @@ -94,6 +94,10 @@ DDEESSCCRRIIPPTTIIOONN RR BLACK-LETTER CAPITAL R tmtm TRADE MARK SIGN NN ALEF SYMBOL + 1/81/8 VULGAR FRACTION ONE EIGHTH + 3/83/8 VULGAR FRACTION THREE EIGHTHS + 5/85/8 VULGAR FRACTION FIVE EIGHTHS + 7/87/8 VULGAR FRACTION SEVEN EIGHTHS <-<- LEFTWARDS ARROW |^|^ UPWARDS ARROW ->-> RIGHTWARDS ARROW @@ -146,6 +150,7 @@ DDEESSCCRRIIPPTTIIOONN |_|_ LEFT FLOOR _|_| RIGHT FLOOR || CURLY BRACKET EXTENSION + -- HORIZONTAL LINE EXTENSION || BOX DRAWINGS LIGHT VERTICAL [][] WHITE SQUARE <><> LOZENGE diff --git a/regress/char/unicode/named.out_html b/regress/char/unicode/named.out_html index c4de9a5b..bf7605c3 100644 --- a/regress/char/unicode/named.out_html +++ b/regress/char/unicode/named.out_html @@ -86,6 +86,10 @@ BEGINTEST ℜℜ BLACK-LETTER CAPITAL R ™™ TRADE MARK SIGN ℵℵ ALEF SYMBOL +⅛⅛ VULGAR FRACTION ONE EIGHTH +⅜⅜ VULGAR FRACTION THREE EIGHTHS +⅝⅝ VULGAR FRACTION FIVE EIGHTHS +⅞⅞ VULGAR FRACTION SEVEN EIGHTHS ←← LEFTWARDS ARROW ↑↑ UPWARDS ARROW →→ RIGHTWARDS ARROW @@ -138,6 +142,7 @@ BEGINTEST ⌊⌊ LEFT FLOOR ⌋⌋ RIGHT FLOOR ⎪⎪ CURLY BRACKET EXTENSION +⎯⎯ HORIZONTAL LINE EXTENSION ││ BOX DRAWINGS LIGHT VERTICAL □□ WHITE SQUARE ◊◊ LOZENGE diff --git a/regress/char/unicode/named.out_utf8 b/regress/char/unicode/named.out_utf8 index 3900ceb5..24910b81 100644 --- a/regress/char/unicode/named.out_utf8 +++ b/regress/char/unicode/named.out_utf8 @@ -94,6 +94,10 @@ DDEESSCCRRIIPPTTIIOONN ℜℜ BLACK-LETTER CAPITAL R ™™ TRADE MARK SIGN ℵℵ ALEF SYMBOL + ⅛⅛ VULGAR FRACTION ONE EIGHTH + ⅜⅜ VULGAR FRACTION THREE EIGHTHS + ⅝⅝ VULGAR FRACTION FIVE EIGHTHS + ⅞⅞ VULGAR FRACTION SEVEN EIGHTHS ←← LEFTWARDS ARROW ↑↑ UPWARDS ARROW →→ RIGHTWARDS ARROW @@ -146,6 +150,7 @@ DDEESSCCRRIIPPTTIIOONN ⌊⌊ LEFT FLOOR ⌋⌋ RIGHT FLOOR ⎪⎪ CURLY BRACKET EXTENSION + ⎯⎯ HORIZONTAL LINE EXTENSION ││ BOX DRAWINGS LIGHT VERTICAL □□ WHITE SQUARE ◊◊ LOZENGE diff --git a/regress/char/unicode/namediff.in b/regress/char/unicode/namediff.in index 672478e4..78094b96 100644 --- a/regress/char/unicode/namediff.in +++ b/regress/char/unicode/namediff.in @@ -9,7 +9,8 @@ BEGINTEST \[u0393]\(*G GREEK CAPITAL LETTER GAMMA \[u03A3]\(*S GREEK CAPITAL LETTER SIGMA \[u203E]\(rn OVERLINE -\[u210F]\(-h PLANCK CONSTANT OVER TWO PI +\[u210F]\[hbar]\(-h PLANCK CONSTANT OVER TWO PI +\[u2118]\(wp SCRIPT CAPITAL P \[u2195]\(va UP DOWN ARROW \[u21D5]\(vA UP DOWN DOUBLE ARROW \[u2207]\(gr NABLA @@ -38,6 +39,10 @@ BEGINTEST \[u23AB]\[bracerighttp] RIGHT CURLY BRACKET UPPER HOOK \[u23AC]\[bracerightmid] RIGHT CURLY BRACKET MIDDLE PIECE \[u23AD]\[bracerightbt] RIGHT CURLY BRACKET LOWER HOOK +\[u2660]\(SP BLACK SPADE SUIT +\[u2663]\(CL BLACK CLUB SUIT +\[u2665]\(HE BLACK HEART SUIT +\[u2666]\(DI BLACK DIAMOND SUIT \[u2713]\(OK CHECK MARK ENDTEST .fi diff --git a/regress/char/unicode/namediff.out_ascii b/regress/char/unicode/namediff.out_ascii index cd8313a3..9422f2f8 100644 --- a/regress/char/unicode/namediff.out_ascii +++ b/regress/char/unicode/namediff.out_ascii @@ -12,7 +12,8 @@ DDEESSCCRRIIPPTTIIOONN GG GREEK CAPITAL LETTER GAMMA SS GREEK CAPITAL LETTER SIGMA -- OVERLINE - /h/h PLANCK CONSTANT OVER TWO PI + /h/h/h PLANCK CONSTANT OVER TWO PI + PP SCRIPT CAPITAL P ^v^v UP DOWN ARROW ^=v^=v UP DOWN DOUBLE ARROW VV NABLA @@ -41,6 +42,10 @@ DDEESSCCRRIIPPTTIIOONN -.-. RIGHT CURLY BRACKET UPPER HOOK }} RIGHT CURLY BRACKET MIDDLE PIECE -'-' RIGHT CURLY BRACKET LOWER HOOK + BLACK SPADE SUIT + BLACK CLUB SUIT + BLACK HEART SUIT + BLACK DIAMOND SUIT \/\/ CHECK MARK ENDTEST diff --git a/regress/char/unicode/namediff.out_html b/regress/char/unicode/namediff.out_html index d682ffbe..fe556af1 100644 --- a/regress/char/unicode/namediff.out_html +++ b/regress/char/unicode/namediff.out_html @@ -4,7 +4,8 @@ BEGINTEST ΓΓ GREEK CAPITAL LETTER GAMMA ΣΣ GREEK CAPITAL LETTER SIGMA ‾‾ OVERLINE -ℏℏ PLANCK CONSTANT OVER TWO PI +ℏℏℏ PLANCK CONSTANT OVER TWO PI +℘℘ SCRIPT CAPITAL P ↕↕ UP DOWN ARROW ⇕⇕ UP DOWN DOUBLE ARROW ∇∇ NABLA @@ -33,5 +34,9 @@ BEGINTEST ⎫⎫ RIGHT CURLY BRACKET UPPER HOOK ⎬⎬ RIGHT CURLY BRACKET MIDDLE PIECE ⎭⎭ RIGHT CURLY BRACKET LOWER HOOK +♠♠ BLACK SPADE SUIT +♣♣ BLACK CLUB SUIT +♥♥ BLACK HEART SUIT +♦♦ BLACK DIAMOND SUIT ✓✓ CHECK MARK ENDTEST diff --git a/regress/char/unicode/namediff.out_utf8 b/regress/char/unicode/namediff.out_utf8 index 9ac104bf..6c3de0db 100644 --- a/regress/char/unicode/namediff.out_utf8 +++ b/regress/char/unicode/namediff.out_utf8 @@ -12,7 +12,8 @@ DDEESSCCRRIIPPTTIIOONN ΓΓ GREEK CAPITAL LETTER GAMMA ΣΣ GREEK CAPITAL LETTER SIGMA ‾‾ OVERLINE - ℏℏ PLANCK CONSTANT OVER TWO PI + ℏℏℏ PLANCK CONSTANT OVER TWO PI + ℘℘ SCRIPT CAPITAL P ↕↕ UP DOWN ARROW ⇕⇕ UP DOWN DOUBLE ARROW ∇∇ NABLA @@ -41,6 +42,10 @@ DDEESSCCRRIIPPTTIIOONN ⎫⎫ RIGHT CURLY BRACKET UPPER HOOK ⎬⎬ RIGHT CURLY BRACKET MIDDLE PIECE ⎭⎭ RIGHT CURLY BRACKET LOWER HOOK + ♠♠ BLACK SPADE SUIT + ♣♣ BLACK CLUB SUIT + ♥♥ BLACK HEART SUIT + ♦♦ BLACK DIAMOND SUIT ✓✓ CHECK MARK ENDTEST -- cgit v1.2.3-56-ge451