├── .hgignore ├── Build ├── MarkdownView.ini ├── css │ ├── air.css │ ├── github.css │ ├── github.dark.css │ ├── github.dimmed.css │ ├── github.retro.css │ ├── github.retro.dark.css │ ├── github.retro.dimmed.css │ ├── modest.css │ ├── none.css │ ├── retro.css │ └── splendor.css └── pluginst.inf ├── BuildMakeSetup.bat ├── ChmLib ├── chm_lib.c ├── chm_lib.h ├── lzx.c └── lzx.h ├── HTMLView ├── HTMLView.rc ├── MarkdownView.vcxproj ├── MarkdownView.vcxproj.filters ├── TextEncodingDetect │ ├── text_encoding_detect.cpp │ └── text_encoding_detect.h ├── browserhost.cpp ├── browserhost.h ├── common.c ├── common.h ├── functions.cpp ├── functions.h ├── hoedown.c ├── htmlview.def ├── listerplugin.h ├── main.cpp ├── resource.h ├── smartypants.c ├── toolbar.bmp └── toolbar_graybk.bmp ├── Hoedown ├── LICENSE ├── Makefile ├── Makefile.win ├── README.md ├── bin │ ├── common.h │ ├── hoedown.c │ └── smartypants.c ├── hoedown-lib.sln ├── hoedown-lib.vcxproj ├── hoedown.def ├── hoedown.vcxproj ├── html_block_names.gperf ├── lib │ └── placeholder ├── smartypants.vcxproj ├── src │ ├── autolink.c │ ├── autolink.h │ ├── buffer.c │ ├── buffer.h │ ├── document.c │ ├── document.h │ ├── escape.c │ ├── escape.h │ ├── html.c │ ├── html.h │ ├── html_blocks.c │ ├── html_smartypants.c │ ├── stack.c │ ├── stack.h │ ├── version.c │ └── version.h └── test │ ├── MarkdownTest_1.0.3 │ ├── MarkdownTest.pl │ └── Tests │ │ ├── Amps and angle encoding.html │ │ ├── Amps and angle encoding.text │ │ ├── Auto links.html │ │ ├── Auto links.text │ │ ├── Backslash escapes.html │ │ ├── Backslash escapes.text │ │ ├── Blockquotes with code blocks.html │ │ ├── Blockquotes with code blocks.text │ │ ├── Code Blocks.html │ │ ├── Code Blocks.text │ │ ├── Code Spans.html │ │ ├── Code Spans.text │ │ ├── Hard-wrapped paragraphs with list-like lines.html │ │ ├── Hard-wrapped paragraphs with list-like lines.text │ │ ├── Horizontal rules.html │ │ ├── Horizontal rules.text │ │ ├── Inline HTML (Advanced).html │ │ ├── Inline HTML (Advanced).text │ │ ├── Inline HTML (Simple).html │ │ ├── Inline HTML (Simple).text │ │ ├── Inline HTML comments.html │ │ ├── Inline HTML comments.text │ │ ├── Links, inline style.html │ │ ├── Links, inline style.text │ │ ├── Links, reference style.html │ │ ├── Links, reference style.text │ │ ├── Links, shortcut references.html │ │ ├── Links, shortcut references.text │ │ ├── Literal quotes in titles.html │ │ ├── Literal quotes in titles.text │ │ ├── Markdown Documentation - Basics.html │ │ ├── Markdown Documentation - Basics.text │ │ ├── Markdown Documentation - Syntax.html │ │ ├── Markdown Documentation - Syntax.text │ │ ├── Nested blockquotes.html │ │ ├── Nested blockquotes.text │ │ ├── Ordered and unordered lists.html │ │ ├── Ordered and unordered lists.text │ │ ├── Strong and em together.html │ │ ├── Strong and em together.text │ │ ├── Tabs.html │ │ ├── Tabs.text │ │ ├── Tidyness.html │ │ └── Tidyness.text │ ├── Tests │ ├── CommentsInMiddleOfLine.html │ ├── CommentsInMiddleOfLine.text │ ├── Escape character.html │ ├── Escape character.text │ ├── Formatting in Table of Contents.html │ ├── Formatting in Table of Contents.text │ ├── Images.html │ ├── Images.text │ ├── Math.html │ ├── Math.text │ ├── Table.html │ ├── Table.text │ ├── Underline.html │ └── Underline.text │ ├── config.json │ └── runner.py ├── MarkdownView.sln ├── Readme.md ├── boost ├── config.hpp ├── config │ ├── abi │ │ ├── borland_prefix.hpp │ │ ├── borland_suffix.hpp │ │ ├── msvc_prefix.hpp │ │ └── msvc_suffix.hpp │ ├── abi_prefix.hpp │ ├── abi_suffix.hpp │ ├── auto_link.hpp │ ├── compiler │ │ ├── borland.hpp │ │ ├── clang.hpp │ │ ├── codegear.hpp │ │ ├── comeau.hpp │ │ ├── common_edg.hpp │ │ ├── compaq_cxx.hpp │ │ ├── cray.hpp │ │ ├── diab.hpp │ │ ├── digitalmars.hpp │ │ ├── gcc.hpp │ │ ├── gcc_xml.hpp │ │ ├── greenhills.hpp │ │ ├── hp_acc.hpp │ │ ├── intel.hpp │ │ ├── kai.hpp │ │ ├── metrowerks.hpp │ │ ├── mpw.hpp │ │ ├── nvcc.hpp │ │ ├── pathscale.hpp │ │ ├── pgi.hpp │ │ ├── sgi_mipspro.hpp │ │ ├── sunpro_cc.hpp │ │ ├── vacpp.hpp │ │ ├── visualc.hpp │ │ ├── xlcpp.hpp │ │ └── xlcpp_zos.hpp │ ├── detail │ │ ├── posix_features.hpp │ │ ├── select_compiler_config.hpp │ │ ├── select_platform_config.hpp │ │ ├── select_stdlib_config.hpp │ │ └── suffix.hpp │ ├── header_deprecated.hpp │ ├── helper_macros.hpp │ ├── no_tr1 │ │ ├── cmath.hpp │ │ ├── complex.hpp │ │ ├── functional.hpp │ │ ├── memory.hpp │ │ └── utility.hpp │ ├── platform │ │ ├── aix.hpp │ │ ├── amigaos.hpp │ │ ├── beos.hpp │ │ ├── bsd.hpp │ │ ├── cloudabi.hpp │ │ ├── cray.hpp │ │ ├── cygwin.hpp │ │ ├── haiku.hpp │ │ ├── hpux.hpp │ │ ├── irix.hpp │ │ ├── linux.hpp │ │ ├── macos.hpp │ │ ├── qnxnto.hpp │ │ ├── solaris.hpp │ │ ├── symbian.hpp │ │ ├── vms.hpp │ │ ├── vxworks.hpp │ │ ├── win32.hpp │ │ └── zos.hpp │ ├── pragma_message.hpp │ ├── requires_threads.hpp │ ├── stdlib │ │ ├── dinkumware.hpp │ │ ├── libcomo.hpp │ │ ├── libcpp.hpp │ │ ├── libstdcpp3.hpp │ │ ├── modena.hpp │ │ ├── msl.hpp │ │ ├── roguewave.hpp │ │ ├── sgi.hpp │ │ ├── stlport.hpp │ │ ├── vacpp.hpp │ │ └── xlcpp_zos.hpp │ ├── user.hpp │ ├── warning_disable.hpp │ └── workaround.hpp ├── cstdint.hpp ├── locale │ ├── boundary.hpp │ ├── boundary │ │ ├── boundary_point.hpp │ │ ├── facets.hpp │ │ ├── index.hpp │ │ ├── segment.hpp │ │ └── types.hpp │ ├── collator.hpp │ ├── config.hpp │ ├── conversion.hpp │ ├── date_time.hpp │ ├── date_time_facet.hpp │ ├── definitions.hpp │ ├── encoding.hpp │ ├── encoding_errors.hpp │ ├── encoding_utf.hpp │ ├── format.hpp │ ├── formatting.hpp │ ├── generator.hpp │ ├── generic_codecvt.hpp │ ├── gnu_gettext.hpp │ ├── hold_ptr.hpp │ ├── info.hpp │ ├── localization_backend.hpp │ ├── message.hpp │ ├── time_zone.hpp │ ├── utf.hpp │ ├── utf8_codecvt.hpp │ └── util.hpp └── nowide │ ├── args.hpp │ ├── cenv.hpp │ ├── config.hpp │ ├── convert.hpp │ ├── cstdio.hpp │ ├── cstdlib.hpp │ ├── filebuf.hpp │ ├── fstream.hpp │ ├── integration │ └── filesystem.hpp │ ├── iostream.hpp │ ├── stackstring.hpp │ ├── system.hpp │ ├── utf8_codecvt.hpp │ └── windows.hpp ├── hoedown.html └── ie_upgrade_registry.zip /.hgignore: -------------------------------------------------------------------------------- 1 | syntax: glob 2 | .vs/** 3 | Hoedown/Win32/** 4 | Hoedown/x64/** 5 | Hoedown/hoedown.vcxproj.user 6 | Hoedown/hoedown-lib.vcxproj.user 7 | Hoedown/smartypants.vcxproj.user 8 | Hoedown/lib/hoedown-lib-x64.lib 9 | Hoedown/lib/hoedown-lib-Win32.lib 10 | HTMLView/MarkdownView.vcxproj.user 11 | Build/MarkdownView.wlx64 12 | HTMLView/Release/MarkdownView.pdb 13 | Build/MarkdownView.iobj 14 | Build/MarkdownView.ipdb 15 | Build/MarkdownView.wlx 16 | HTMLView/Win32/** 17 | HTMLView/x64/** 18 | ReleaseWLX/** 19 | Win32/** 20 | x64/** 21 | markdownviewer.zip 22 | -------------------------------------------------------------------------------- /Build/css/air.css: -------------------------------------------------------------------------------- 1 | @media print { 2 | *, 3 | *:before, 4 | *:after { 5 | background: transparent !important; 6 | color: #000 !important; 7 | box-shadow: none !important; 8 | text-shadow: none !important; 9 | } 10 | 11 | a, 12 | a:visited { 13 | text-decoration: underline; 14 | } 15 | 16 | a[href]:after { 17 | content: " (" attr(href) ")"; 18 | } 19 | 20 | abbr[title]:after { 21 | content: " (" attr(title) ")"; 22 | } 23 | 24 | a[href^="#"]:after, 25 | a[href^="javascript:"]:after { 26 | content: ""; 27 | } 28 | 29 | pre, 30 | blockquote { 31 | border: 1px solid #999; 32 | page-break-inside: avoid; 33 | } 34 | 35 | thead { 36 | display: table-header-group; 37 | } 38 | 39 | tr, 40 | img { 41 | page-break-inside: avoid; 42 | } 43 | 44 | img { 45 | max-width: 100% !important; 46 | } 47 | 48 | p, 49 | h2, 50 | h3 { 51 | orphans: 3; 52 | widows: 3; 53 | } 54 | 55 | h2, 56 | h3 { 57 | page-break-after: avoid; 58 | } 59 | } 60 | 61 | html { 62 | font-size: 12px; 63 | } 64 | 65 | @media screen and (min-width: 32rem) and (max-width: 48rem) { 66 | html { 67 | font-size: 15px; 68 | } 69 | } 70 | 71 | @media screen and (min-width: 48rem) { 72 | html { 73 | font-size: 16px; 74 | } 75 | } 76 | 77 | body { 78 | line-height: 1.85; 79 | } 80 | 81 | p, 82 | .air-p { 83 | font-size: 1rem; 84 | margin-bottom: 1.3rem; 85 | } 86 | 87 | h1, 88 | .air-h1, 89 | h2, 90 | .air-h2, 91 | h3, 92 | .air-h3, 93 | h4, 94 | .air-h4 { 95 | margin: 1.414rem 0 .5rem; 96 | font-weight: inherit; 97 | line-height: 1.42; 98 | } 99 | 100 | h1, 101 | .air-h1 { 102 | margin-top: 0; 103 | font-size: 3.998rem; 104 | } 105 | 106 | h2, 107 | .air-h2 { 108 | font-size: 2.827rem; 109 | } 110 | 111 | h3, 112 | .air-h3 { 113 | font-size: 1.999rem; 114 | } 115 | 116 | h4, 117 | .air-h4 { 118 | font-size: 1.414rem; 119 | } 120 | 121 | h5, 122 | .air-h5 { 123 | font-size: 1.121rem; 124 | } 125 | 126 | h6, 127 | .air-h6 { 128 | font-size: .88rem; 129 | } 130 | 131 | small, 132 | .air-small { 133 | font-size: .707em; 134 | } 135 | 136 | /* https://github.com/mrmrs/fluidity */ 137 | 138 | img, 139 | canvas, 140 | iframe, 141 | video, 142 | svg, 143 | select, 144 | textarea { 145 | max-width: 100%; 146 | } 147 | 148 | @import url(http://fonts.googleapis.com/css?family=Open+Sans:300italic,300); 149 | 150 | body { 151 | color: #444; 152 | font-family: 'Open Sans', Helvetica, sans-serif; 153 | font-weight: 300; 154 | margin: 6rem auto 1rem; 155 | max-width: 48rem; 156 | text-align: center; 157 | } 158 | 159 | img { 160 | border-radius: 50%; 161 | height: 200px; 162 | margin: 0 auto; 163 | width: 200px; 164 | } 165 | 166 | a, 167 | a:visited { 168 | color: #3498db; 169 | } 170 | 171 | a:hover, 172 | a:focus, 173 | a:active { 174 | color: #2980b9; 175 | } 176 | 177 | pre { 178 | background-color: #fafafa; 179 | padding: 1rem; 180 | text-align: left; 181 | } 182 | 183 | blockquote { 184 | margin: 0; 185 | border-left: 5px solid #7a7a7a; 186 | font-style: italic; 187 | padding: 1.33em; 188 | text-align: left; 189 | } 190 | 191 | ul, 192 | ol, 193 | li { 194 | text-align: left; 195 | } 196 | 197 | p { 198 | color: #777; 199 | } -------------------------------------------------------------------------------- /Build/css/modest.css: -------------------------------------------------------------------------------- 1 | @media print { 2 | *, 3 | *:before, 4 | *:after { 5 | background: transparent !important; 6 | color: #000 !important; 7 | box-shadow: none !important; 8 | text-shadow: none !important; 9 | } 10 | 11 | a, 12 | a:visited { 13 | text-decoration: underline; 14 | } 15 | 16 | a[href]:after { 17 | content: " (" attr(href) ")"; 18 | } 19 | 20 | abbr[title]:after { 21 | content: " (" attr(title) ")"; 22 | } 23 | 24 | a[href^="#"]:after, 25 | a[href^="javascript:"]:after { 26 | content: ""; 27 | } 28 | 29 | pre, 30 | blockquote { 31 | border: 1px solid #999; 32 | page-break-inside: avoid; 33 | } 34 | 35 | thead { 36 | display: table-header-group; 37 | } 38 | 39 | tr, 40 | img { 41 | page-break-inside: avoid; 42 | } 43 | 44 | img { 45 | max-width: 100% !important; 46 | } 47 | 48 | p, 49 | h2, 50 | h3 { 51 | orphans: 3; 52 | widows: 3; 53 | } 54 | 55 | h2, 56 | h3 { 57 | page-break-after: avoid; 58 | } 59 | } 60 | 61 | pre, 62 | code { 63 | font-family: Menlo, Monaco, "Courier New", monospace; 64 | } 65 | 66 | pre { 67 | padding: .5rem; 68 | line-height: 1.25; 69 | overflow-x: scroll; 70 | } 71 | 72 | a, 73 | a:visited { 74 | color: #3498db; 75 | } 76 | 77 | a:hover, 78 | a:focus, 79 | a:active { 80 | color: #2980b9; 81 | } 82 | 83 | .modest-no-decoration { 84 | text-decoration: none; 85 | } 86 | 87 | html { 88 | font-size: 12px; 89 | } 90 | 91 | @media screen and (min-width: 32rem) and (max-width: 48rem) { 92 | html { 93 | font-size: 15px; 94 | } 95 | } 96 | 97 | @media screen and (min-width: 48rem) { 98 | html { 99 | font-size: 16px; 100 | } 101 | } 102 | 103 | body { 104 | line-height: 1.85; 105 | } 106 | 107 | p, 108 | .modest-p { 109 | font-size: 1rem; 110 | margin-bottom: 1.3rem; 111 | } 112 | 113 | h1, 114 | .modest-h1, 115 | h2, 116 | .modest-h2, 117 | h3, 118 | .modest-h3, 119 | h4, 120 | .modest-h4 { 121 | margin: 1.414rem 0 .5rem; 122 | font-weight: inherit; 123 | line-height: 1.42; 124 | } 125 | 126 | h1, 127 | .modest-h1 { 128 | margin-top: 0; 129 | font-size: 3.998rem; 130 | } 131 | 132 | h2, 133 | .modest-h2 { 134 | font-size: 2.827rem; 135 | } 136 | 137 | h3, 138 | .modest-h3 { 139 | font-size: 1.999rem; 140 | } 141 | 142 | h4, 143 | .modest-h4 { 144 | font-size: 1.414rem; 145 | } 146 | 147 | h5, 148 | .modest-h5 { 149 | font-size: 1.121rem; 150 | } 151 | 152 | h6, 153 | .modest-h6 { 154 | font-size: .88rem; 155 | } 156 | 157 | small, 158 | .modest-small { 159 | font-size: .707em; 160 | } 161 | 162 | /* https://github.com/mrmrs/fluidity */ 163 | 164 | img, 165 | canvas, 166 | iframe, 167 | video, 168 | svg, 169 | select, 170 | textarea { 171 | max-width: 100%; 172 | } 173 | 174 | @import url(http://fonts.googleapis.com/css?family=Open+Sans+Condensed:300,300italic,700); 175 | 176 | @import url(http://fonts.googleapis.com/css?family=Arimo:700,700italic); 177 | 178 | html { 179 | font-size: 18px; 180 | max-width: 100%; 181 | } 182 | 183 | body { 184 | color: #444; 185 | font-family: 'Open Sans Condensed', sans-serif; 186 | font-weight: 300; 187 | margin: 0 auto; 188 | max-width: 48rem; 189 | line-height: 1.45; 190 | padding: .25rem; 191 | } 192 | 193 | h1, 194 | h2, 195 | h3, 196 | h4, 197 | h5, 198 | h6 { 199 | font-family: Arimo, Helvetica, sans-serif; 200 | } 201 | 202 | h1, 203 | h2, 204 | h3 { 205 | border-bottom: 2px solid #fafafa; 206 | margin-bottom: 1.15rem; 207 | padding-bottom: .5rem; 208 | text-align: center; 209 | } 210 | 211 | blockquote { 212 | border-left: 8px solid #fafafa; 213 | padding: 1rem; 214 | } 215 | 216 | pre, 217 | code { 218 | background-color: #fafafa; 219 | } -------------------------------------------------------------------------------- /Build/css/none.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Build/css/retro.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | pre, 4 | code { 5 | font-family: Menlo, Monaco, "Courier New", monospace; 6 | } 7 | 8 | pre { 9 | padding: .5rem; 10 | line-height: 1.25; 11 | overflow-x: scroll; 12 | } 13 | 14 | @media print { 15 | *, 16 | *:before, 17 | *:after { 18 | background: transparent !important; 19 | color: #000 !important; 20 | box-shadow: none !important; 21 | text-shadow: none !important; 22 | } 23 | 24 | a, 25 | a:visited { 26 | text-decoration: underline; 27 | } 28 | 29 | a[href]:after { 30 | content: " (" attr(href) ")"; 31 | } 32 | 33 | abbr[title]:after { 34 | content: " (" attr(title) ")"; 35 | } 36 | 37 | a[href^="#"]:after, 38 | a[href^="javascript:"]:after { 39 | content: ""; 40 | } 41 | 42 | pre, 43 | blockquote { 44 | border: 1px solid #999; 45 | page-break-inside: avoid; 46 | } 47 | 48 | thead { 49 | display: table-header-group; 50 | } 51 | 52 | tr, 53 | img { 54 | page-break-inside: avoid; 55 | } 56 | 57 | img { 58 | max-width: 100% !important; 59 | } 60 | 61 | p, 62 | h2, 63 | h3 { 64 | orphans: 3; 65 | widows: 3; 66 | } 67 | 68 | h2, 69 | h3 { 70 | page-break-after: avoid; 71 | } 72 | } 73 | 74 | a, 75 | a:visited { 76 | color: #01ff70; 77 | } 78 | 79 | a:hover, 80 | a:focus, 81 | a:active { 82 | color: #2ecc40; 83 | } 84 | 85 | .retro-no-decoration { 86 | text-decoration: none; 87 | } 88 | 89 | html { 90 | font-size: 12px; 91 | } 92 | 93 | @media screen and (min-width: 32rem) and (max-width: 48rem) { 94 | html { 95 | font-size: 15px; 96 | } 97 | } 98 | 99 | @media screen and (min-width: 48rem) { 100 | html { 101 | font-size: 16px; 102 | } 103 | } 104 | 105 | body { 106 | line-height: 1.85; 107 | } 108 | 109 | p, 110 | .retro-p { 111 | font-size: 1rem; 112 | margin-bottom: 1.3rem; 113 | } 114 | 115 | h1, 116 | .retro-h1, 117 | h2, 118 | .retro-h2, 119 | h3, 120 | .retro-h3, 121 | h4, 122 | .retro-h4 { 123 | margin: 1.414rem 0 .5rem; 124 | font-weight: inherit; 125 | line-height: 1.42; 126 | } 127 | 128 | h1, 129 | .retro-h1 { 130 | margin-top: 0; 131 | font-size: 3.998rem; 132 | } 133 | 134 | h2, 135 | .retro-h2 { 136 | font-size: 2.827rem; 137 | } 138 | 139 | h3, 140 | .retro-h3 { 141 | font-size: 1.999rem; 142 | } 143 | 144 | h4, 145 | .retro-h4 { 146 | font-size: 1.414rem; 147 | } 148 | 149 | h5, 150 | .retro-h5 { 151 | font-size: 1.121rem; 152 | } 153 | 154 | h6, 155 | .retro-h6 { 156 | font-size: .88rem; 157 | } 158 | 159 | small, 160 | .retro-small { 161 | font-size: .707em; 162 | } 163 | 164 | /* https://github.com/mrmrs/fluidity */ 165 | 166 | img, 167 | canvas, 168 | iframe, 169 | video, 170 | svg, 171 | select, 172 | textarea { 173 | max-width: 100%; 174 | } 175 | 176 | html, 177 | body { 178 | background-color: #222; 179 | min-height: 100%; 180 | } 181 | 182 | html { 183 | font-size: 18px; 184 | } 185 | 186 | body { 187 | color: #fafafa; 188 | font-family: "Courier New"; 189 | line-height: 1.45; 190 | margin: 6rem auto 1rem; 191 | max-width: 48rem; 192 | padding: .25rem; 193 | } 194 | 195 | pre { 196 | background-color: #333; 197 | } 198 | 199 | blockquote { 200 | border-left: 3px solid #01ff70; 201 | padding-left: 1rem; 202 | } -------------------------------------------------------------------------------- /Build/pluginst.inf: -------------------------------------------------------------------------------- 1 | [plugininstall] 2 | description=Markdown viewer based on HTMLView plugin source and Hoedown library. 3 | type=wlx 4 | file=MarkdownView.wlx 5 | defaultdir=plugins\wlx\MarkdownView -------------------------------------------------------------------------------- /BuildMakeSetup.bat: -------------------------------------------------------------------------------- 1 | :: This script creates a release (setup) package using a prebuilt project. 2 | @echo off 3 | setlocal 4 | 5 | call "%VCINSTALLDIR%\Auxiliary\Build\vcvarsall.bat" x86 6 | msbuild MarkdownView.sln /t:Build /p:Configuration=Release;Platform=Win32;UseEnv=true 7 | 8 | call "%VCINSTALLDIR%\Auxiliary\Build\vcvarsall.bat" x64 9 | msbuild MarkdownView.sln /t:Build /p:Configuration=Release;Platform=x64;UseEnv=true 10 | 11 | 12 | rmdir /S /Q ReleaseWLX 13 | mkdir ReleaseWLX 14 | mkdir ReleaseWLX\css 15 | mkdir ReleaseWLX\doc 16 | 17 | copy Readme.md ReleaseWLX\doc\ 18 | copy hoedown.html ReleaseWLX\doc\ 19 | copy Build\*.ini ReleaseWLX\ 20 | copy Build\*.wlx? ReleaseWLX\ 21 | copy Build\*.inf ReleaseWLX\ 22 | copy Build\css\*.* ReleaseWLX\css\ 23 | 24 | del /Q Release-*.zip 25 | powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::CreateFromDirectory('ReleaseWLX', 'Release-' + (get-date -Format yyyyMMdd) +'.zip'); }" 26 | -------------------------------------------------------------------------------- /ChmLib/lzx.h: -------------------------------------------------------------------------------- 1 | /* $Id: lzx.h,v 1.5 2002/10/08 03:43:33 jedwin Exp $ */ 2 | /*************************************************************************** 3 | * lzx.h - LZX decompression routines * 4 | * ------------------- * 5 | * * 6 | * maintainer: Jed Wing * 7 | * source: modified lzx.c from cabextract v0.5 * 8 | * notes: This file was taken from cabextract v0.5, which was, * 9 | * itself, a modified version of the lzx decompression code * 10 | * from unlzx. * 11 | ***************************************************************************/ 12 | 13 | /*************************************************************************** 14 | * * 15 | * This program is free software; you can redistribute it and/or modify * 16 | * it under the terms of the GNU General Public License as published by * 17 | * the Free Software Foundation; either version 2 of the License, or * 18 | * (at your option) any later version. Note that an exemption to this * 19 | * license has been granted by Stuart Caie for the purposes of * 20 | * distribution with chmlib. This does not, to the best of my * 21 | * knowledge, constitute a change in the license of this (the LZX) code * 22 | * in general. * 23 | * * 24 | ***************************************************************************/ 25 | 26 | #ifndef INCLUDED_LZX_H 27 | #define INCLUDED_LZX_H 28 | 29 | #ifdef __cplusplus 30 | extern "C" { 31 | #endif 32 | 33 | /* return codes */ 34 | #define DECR_OK (0) 35 | #define DECR_DATAFORMAT (1) 36 | #define DECR_ILLEGALDATA (2) 37 | #define DECR_NOMEMORY (3) 38 | 39 | /* opaque state structure */ 40 | struct LZXstate; 41 | 42 | /* create an lzx state object */ 43 | struct LZXstate *LZXinit(int window); 44 | 45 | /* destroy an lzx state object */ 46 | void LZXteardown(struct LZXstate *pState); 47 | 48 | /* reset an lzx stream */ 49 | int LZXreset(struct LZXstate *pState); 50 | 51 | /* decompress an LZX compressed block */ 52 | int LZXdecompress(struct LZXstate *pState, 53 | unsigned char *inpos, 54 | unsigned char *outpos, 55 | int inlen, 56 | int outlen); 57 | 58 | #ifdef __cplusplus 59 | } 60 | #endif 61 | 62 | #endif /* INCLUDED_LZX_H */ 63 | -------------------------------------------------------------------------------- /HTMLView/HTMLView.rc: -------------------------------------------------------------------------------- 1 | // Microsoft Visual C++ generated resource script. 2 | // 3 | #include "resource.h" 4 | 5 | #define APSTUDIO_READONLY_SYMBOLS 6 | ///////////////////////////////////////////////////////////////////////////// 7 | // 8 | // Generated from the TEXTINCLUDE 2 resource. 9 | // 10 | #include "afxres.h" 11 | 12 | ///////////////////////////////////////////////////////////////////////////// 13 | #undef APSTUDIO_READONLY_SYMBOLS 14 | 15 | ///////////////////////////////////////////////////////////////////////////// 16 | // Neutral resources 17 | 18 | #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU) 19 | LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL 20 | #pragma code_page(1251) 21 | 22 | ///////////////////////////////////////////////////////////////////////////// 23 | // 24 | // Bitmap 25 | // 26 | 27 | IDB_BITMAP1 BITMAP "toolbar_graybk.bmp" 28 | 29 | IDB_BITMAP2 BITMAP "toolbar.bmp" 30 | 31 | 32 | ///////////////////////////////////////////////////////////////////////////// 33 | // 34 | // Version 35 | // 36 | 37 | VS_VERSION_INFO VERSIONINFO 38 | FILEVERSION 2,5,0,0 39 | PRODUCTVERSION 2,5,0,0 40 | FILEFLAGSMASK 0x17L 41 | #ifdef _DEBUG 42 | FILEFLAGS 0x1L 43 | #else 44 | FILEFLAGS 0x0L 45 | #endif 46 | FILEOS 0x4L 47 | FILETYPE 0x2L 48 | FILESUBTYPE 0x0L 49 | BEGIN 50 | BLOCK "StringFileInfo" 51 | BEGIN 52 | BLOCK "000004b0" 53 | BEGIN 54 | VALUE "FileDescription", "Markdown lister plugin for Total Commander" 55 | VALUE "FileVersion", "2.5.0.0" 56 | VALUE "InternalName", "MarkdownView" 57 | VALUE "OriginalFilename", "MarkdownView.wlx" 58 | VALUE "ProductName", "MarkdownView" 59 | VALUE "ProductVersion", "2.5.0.0" 60 | END 61 | END 62 | BLOCK "VarFileInfo" 63 | BEGIN 64 | VALUE "Translation", 0x0, 1200 65 | END 66 | END 67 | 68 | #endif // Neutral resources 69 | ///////////////////////////////////////////////////////////////////////////// 70 | 71 | 72 | ///////////////////////////////////////////////////////////////////////////// 73 | // Russian (Russia) resources 74 | 75 | #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS) 76 | LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT 77 | #pragma code_page(1251) 78 | 79 | #ifdef APSTUDIO_INVOKED 80 | ///////////////////////////////////////////////////////////////////////////// 81 | // 82 | // TEXTINCLUDE 83 | // 84 | 85 | 1 TEXTINCLUDE 86 | BEGIN 87 | "resource.h\0" 88 | END 89 | 90 | 2 TEXTINCLUDE 91 | BEGIN 92 | "#include ""afxres.h""\r\n" 93 | "\0" 94 | END 95 | 96 | 3 TEXTINCLUDE 97 | BEGIN 98 | "\r\n" 99 | "\0" 100 | END 101 | 102 | #endif // APSTUDIO_INVOKED 103 | 104 | #endif // Russian (Russia) resources 105 | ///////////////////////////////////////////////////////////////////////////// 106 | 107 | 108 | 109 | #ifndef APSTUDIO_INVOKED 110 | ///////////////////////////////////////////////////////////////////////////// 111 | // 112 | // Generated from the TEXTINCLUDE 3 resource. 113 | // 114 | 115 | 116 | ///////////////////////////////////////////////////////////////////////////// 117 | #endif // not APSTUDIO_INVOKED 118 | 119 | -------------------------------------------------------------------------------- /HTMLView/MarkdownView.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav 15 | 16 | 17 | {4cbfa8d9-bbfb-409d-b8db-7ed14b84010e} 18 | 19 | 20 | 21 | 22 | Source Files 23 | 24 | 25 | Source Files 26 | 27 | 28 | Source Files 29 | 30 | 31 | Source Files 32 | 33 | 34 | Source Files 35 | 36 | 37 | Source Files 38 | 39 | 40 | Source Files 41 | 42 | 43 | Source Files 44 | 45 | 46 | TextEncodingDetect 47 | 48 | 49 | 50 | 51 | Source Files 52 | 53 | 54 | 55 | 56 | Header Files 57 | 58 | 59 | Header Files 60 | 61 | 62 | Header Files 63 | 64 | 65 | Header Files 66 | 67 | 68 | Header Files 69 | 70 | 71 | TextEncodingDetect 72 | 73 | 74 | 75 | 76 | Resource Files 77 | 78 | 79 | 80 | 81 | Resource Files 82 | 83 | 84 | Resource Files 85 | 86 | 87 | -------------------------------------------------------------------------------- /HTMLView/TextEncodingDetect/text_encoding_detect.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #ifndef TEXT_ENCODING_DETECT_H_ 3 | #define TEXT_ENCODING_DETECT_H_ 4 | 5 | // 6 | // Copyright 2015 Jonathan Bennett 7 | // 8 | // https://www.autoitscript.com 9 | // 10 | // Licensed under the Apache License, Version 2.0 (the "License"); 11 | // you may not use this file except in compliance with the License. 12 | // You may obtain a copy of the License at 13 | // 14 | // http://www.apache.org/licenses/LICENSE-2.0 15 | // 16 | // Unless required by applicable law or agreed to in writing, software 17 | // distributed under the License is distributed on an "AS IS" BASIS, 18 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19 | // See the License for the specific language governing permissions and 20 | // limitations under the License. 21 | // 22 | 23 | // Includes 24 | #include 25 | 26 | namespace AutoIt 27 | { 28 | namespace Common 29 | { 30 | class TextEncodingDetect 31 | { 32 | public: 33 | enum Encoding 34 | { 35 | None, // Unknown or binary 36 | ANSI, // 0-255 37 | ASCII, // 0-127 38 | UTF8_BOM, // UTF8 with BOM 39 | UTF8_NOBOM, // UTF8 without BOM 40 | UTF16_LE_BOM, // UTF16 LE with BOM 41 | UTF16_LE_NOBOM, // UTF16 LE without BOM 42 | UTF16_BE_BOM, // UTF16-BE with BOM 43 | UTF16_BE_NOBOM, // UTF16-BE without BOM 44 | }; 45 | 46 | TextEncodingDetect(); 47 | ~TextEncodingDetect(); 48 | 49 | static Encoding CheckBOM(const unsigned char *pBuffer, size_t size); // Just check if there is a BOM and return 50 | Encoding DetectEncoding(const unsigned char *pBuffer, size_t size) const; // Check BOM and also guess if there is no BOM 51 | static int GetBOMLengthFromEncodingMode(Encoding encoding); // Just return the BOM length of a given mode 52 | 53 | void SetNullSuggestsBinary(bool null_suggests_binary) { null_suggests_binary_ = null_suggests_binary; } 54 | void SetUtf16UnexpectedNullPercent(int percent); 55 | void SetUtf16ExpectedNullPercent(int percent); 56 | 57 | private: 58 | TextEncodingDetect(const TextEncodingDetect&); 59 | const TextEncodingDetect& operator=(const TextEncodingDetect&); 60 | 61 | static const unsigned char* utf16_bom_le_; 62 | static const unsigned char* utf16_bom_be_; 63 | static const unsigned char* utf8_bom_; 64 | 65 | bool null_suggests_binary_; 66 | int utf16_expected_null_percent_; 67 | int utf16_unexpected_null_percent_; 68 | 69 | Encoding CheckUTF8(const unsigned char *pBuffer, size_t size) const; // Check for valid UTF8 with no BOM 70 | static Encoding CheckUTF16NewlineChars(const unsigned char *pBuffer, size_t size); // Check for valid UTF16 with no BOM via control chars 71 | Encoding CheckUTF16ASCII(const unsigned char *pBuffer, size_t size) const; // Check for valid UTF16 with no BOM via null distribution 72 | static bool DoesContainNulls(const unsigned char *pBuffer, size_t size); // Check for nulls 73 | }; 74 | 75 | } // AutoIt.Common 76 | } // AutoIt 77 | 78 | ////////////////////////////////////////////////////////////////////// 79 | 80 | #endif 81 | -------------------------------------------------------------------------------- /HTMLView/common.c: -------------------------------------------------------------------------------- 1 | #include "common.h" 2 | #include "version.h" 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | int parseint(const char *string, long *result) 10 | { 11 | char *end; 12 | errno = 0; 13 | *result = strtol(string, &end, 10); 14 | return !(*end || errno); 15 | } 16 | 17 | const char * 18 | strprefix(const char *str, const char *prefix) 19 | { 20 | while (*prefix) { 21 | if (!(*str && *str == *prefix)) return 0; 22 | prefix++; str++; 23 | } 24 | return str; 25 | } 26 | 27 | void 28 | print_option(char short_opt, const char *long_opt, const char *description) 29 | { 30 | if (short_opt) 31 | printf(" -%c, ", short_opt); 32 | else 33 | printf(" "); 34 | 35 | printf("--%-13s %s\n", long_opt, description); 36 | } 37 | 38 | void 39 | print_version() 40 | { 41 | printf("Built with Hoedown " HOEDOWN_VERSION ".\n"); 42 | } 43 | 44 | int 45 | parse_options( 46 | int argc, char **argv, 47 | int(*parse_short_option)(char opt, char *next, void *opaque), 48 | int(*parse_long_option)(char *opt, char *next, void *opaque), 49 | int(*parse_argument)(int argn, char *arg, int is_forced, void *opaque), 50 | void *opaque) 51 | { 52 | int result; 53 | int i = 1, regular_args = 0; 54 | 55 | /* Parse options mixed with arguments */ 56 | while (i < argc) { 57 | char *arg = argv[i]; 58 | 59 | if (arg[0] == '-' && arg[1]) { 60 | char *next_arg = (i+1 < argc) ? argv[i+1] : NULL; 61 | 62 | if (arg[1] == '-' && !arg[2]) { 63 | /* '--' signals end of options */ 64 | i++; 65 | break; 66 | } 67 | 68 | if (arg[1] == '-') { 69 | /* Long option */ 70 | result = parse_long_option(arg + 2, next_arg, opaque); 71 | if (!result) return 0; 72 | i += result; 73 | } else { 74 | /* Sequence of short options */ 75 | size_t pos; 76 | for (pos = 1; arg[pos]; pos++) { 77 | char *next = (arg[pos+1]) ? arg + pos+1 : next_arg; 78 | result = parse_short_option(arg[pos], next, opaque); 79 | if (!result) return 0; 80 | if (result == 2) { 81 | if (next == next_arg) i++; 82 | break; 83 | } 84 | } 85 | i++; 86 | } 87 | } else { 88 | /* Argument */ 89 | result = parse_argument(regular_args++, arg, 0, opaque); 90 | if (!result) return 0; 91 | i++; 92 | } 93 | } 94 | 95 | /* Parse rest as forced arguments */ 96 | while (i < argc) { 97 | result = parse_argument(regular_args++, argv[i], 1, opaque); 98 | if (!result) return 0; 99 | i++; 100 | } 101 | 102 | return 1; 103 | } 104 | 105 | -------------------------------------------------------------------------------- /HTMLView/common.h: -------------------------------------------------------------------------------- 1 | #ifndef HOEDOWNCOMMON_H 2 | #define HOEDOWNCOMMON_H 3 | 4 | #include "common.h" 5 | #include "version.h" 6 | 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | #define str(x) __str(x) 13 | #define __str(x) #x 14 | 15 | #define count_of(arr) (sizeof(arr)/sizeof(0[arr])) 16 | 17 | #ifdef __cplusplus 18 | extern "C" const char* INPUT_STRING; 19 | extern "C" const char* SP_INPUT_STRING; 20 | extern "C" char* OUTPUT_STRING; 21 | extern "C" char* SP_OUTPUT_STRING; 22 | #else 23 | extern const char* INPUT_STRING; 24 | extern const char* SP_INPUT_STRING; 25 | extern char* OUTPUT_STRING; 26 | extern char* SP_OUTPUT_STRING; 27 | #endif 28 | 29 | int parseint(const char *string, long *result); 30 | const char * strprefix(const char *str, const char *prefix); 31 | void print_option(char short_opt, const char *long_opt, const char *description); 32 | void print_version(); 33 | int parse_options(int argc, char **argv, int(*parse_short_option)(char opt, char *next, void *opaque), int(*parse_long_option)(char *opt, char *next, void *opaque), 34 | int(*parse_argument)(int argn, char *arg, int is_forced, void *opaque), void *opaque); 35 | 36 | #endif // HOEDOWNCOMMON_H 37 | -------------------------------------------------------------------------------- /HTMLView/functions.h: -------------------------------------------------------------------------------- 1 | #ifndef _IEVIEW_FUNCTIONS_H_ 2 | #define _IEVIEW_FUNCTIONS_H_ 3 | 4 | #define _CONVERSION_DONT_USE_THREAD_LOCALE 5 | #include 6 | #include 7 | 8 | #define MAIN_WINDOW_CLASS "IEViewMainWindowClass" 9 | #define TBB_BACK 0 10 | #define TBB_FORWARD 1 11 | #define TBB_STOP 2 12 | #define TBB_REFRESH 3 13 | #define TBB_PRINT 4 14 | #define TBB_COPY 5 15 | #define TBB_PASTE 6 16 | #define TBB_SEARCH 7 17 | #define PROP_BROWSER "HTMLView_Host" 18 | #define PROP_STATUS "HTMLView_StatusBar" 19 | #define PROP_TOOLBAR "HTMLView_Toolbar" 20 | #define WM_IEVIEW_COMMAND (WM_USER+501) 21 | #define WM_IEVIEW_SEARCH (WM_USER+502) 22 | #define WM_IEVIEW_PRINT (WM_USER+503) 23 | #define WM_IEVIEW_HOTKEY (WM_USER+504) 24 | #define WM_IEVIEW_SEARCHW (WM_USER+505) 25 | 26 | #define OPT_TOOLBAR 0x1 27 | #define OPT_TITLE 0x2 28 | #define OPT_SAVEPOS 0x4 29 | #define OPT_STATUS_QV 0x8 30 | #define OPT_POPUPS 0x10 31 | //#define OPT_DEFBROWSER 0x20 32 | #define OPT_MOZILLA 0x40 33 | #define OPT_QUICKQIUT 0x80 34 | #define OPT_GLOBALHOOK 0x100 35 | #define OPT_DIRS 0x200 36 | #define OPT_SIGNSKIPSPACES 0x400 37 | #define OPT_KEEPHOOKNOWINDOWS 0x800 38 | 39 | class CBrowserHost; 40 | 41 | struct CSmallStringList 42 | { 43 | protected: 44 | unsigned char* data; 45 | public: 46 | CSmallStringList(); 47 | void clear(); 48 | void set_size(int size); 49 | void set_data(const unsigned char* buffer, int size); 50 | bool valid(); 51 | void load_from_ini(const char* filename, const char* section, const char* key); 52 | void load_sign_from_ini(const char* filename, const char* section, const char* key); 53 | bool find(const char* str); 54 | bool check_signature(const char* filename, bool skip_spaces); 55 | }; 56 | 57 | struct SOptions 58 | { 59 | bool valid; 60 | long flags; 61 | long dlcontrol; 62 | unsigned char toolbar; 63 | unsigned char status; 64 | unsigned char highlight_all_matches; 65 | char IniFileName[320], LogIniFileName[320]; 66 | //SOptions():RefCount(0), dlcontrol(0){*IniFileName=*LogIniFileName=0;} 67 | }; 68 | extern SOptions options; 69 | extern HINSTANCE hinst; 70 | 71 | void InitOptions(); 72 | void InitProc(); 73 | HWND GetBrowserHostWnd(HWND child_hwnd); 74 | CAtlString GetFullKeyName(WORD key); 75 | CAtlString GetCHMIndex(char* FileName); 76 | 77 | int Log(char* Section,char* Text); 78 | void LogTime(char* Text); 79 | void LogTime(int number); 80 | void LogTimeReset(); 81 | void DisplayLastError(void); 82 | 83 | #endif // _IEVIEW_FUNCTIONS_H_ -------------------------------------------------------------------------------- /HTMLView/htmlview.def: -------------------------------------------------------------------------------- 1 | EXPORTS 2 | ListLoad 3 | ListLoadNext 4 | ListPrint 5 | ListSendCommand 6 | ListCloseWindow 7 | ListSearchText 8 | ListSearchTextW 9 | -------------------------------------------------------------------------------- /HTMLView/listerplugin.h: -------------------------------------------------------------------------------- 1 | #define lc_copy 1 2 | #define lc_newparams 2 3 | #define lc_selectall 3 4 | //#define lc_ieview_paste 0xFFFF0001 5 | 6 | #define lcp_wraptext 1 7 | #define lcp_fittowindow 2 8 | #define lcp_ansi 4 9 | #define lcp_ascii 8 10 | #define lcp_variable 12 11 | #define lcp_darkmode 128 12 | 13 | 14 | #define lcs_findfirst 1 15 | #define lcs_matchcase 2 16 | #define lcs_wholewords 4 17 | #define lcs_backwards 8 18 | 19 | #define LISTPLUGIN_OK 0 20 | #define LISTPLUGIN_ERROR 1 21 | 22 | 23 | HWND _stdcall ListLoad(HWND ParentWin,char* FileToLoad,int ShowFlags); 24 | int __stdcall ListLoadNext(HWND ParentWin,HWND PluginWin,char* FileToLoad,int ShowFlags); 25 | int _stdcall ListPrint(HWND ListWin,char* FileToPrint,int PrintFlags); 26 | int _stdcall ListSendCommand(HWND ListWin,int Command,int Parameter); 27 | int _stdcall ListSearchText(HWND ListWin,char* SearchString,int SearchParameter); 28 | int _stdcall ListSearchTextW(HWND ListWin,WCHAR* SearchString,int SearchParameter); 29 | void _stdcall ListCloseWindow(HWND ListWin); 30 | -------------------------------------------------------------------------------- /HTMLView/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by HTMLView.rc 4 | // 5 | #define IDB_BITMAP1 101 6 | #define IDB_BITMAP2 102 7 | 8 | // Next default values for new objects 9 | // 10 | #ifdef APSTUDIO_INVOKED 11 | #ifndef APSTUDIO_READONLY_SYMBOLS 12 | #define _APS_NEXT_RESOURCE_VALUE 105 13 | #define _APS_NEXT_COMMAND_VALUE 40001 14 | #define _APS_NEXT_CONTROL_VALUE 1001 15 | #define _APS_NEXT_SYMED_VALUE 101 16 | #endif 17 | #endif 18 | -------------------------------------------------------------------------------- /HTMLView/toolbar.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rg-software/wlx-markdown-viewer/b1e8a23473996b58b3a1edaef19bc964efe23cc1/HTMLView/toolbar.bmp -------------------------------------------------------------------------------- /HTMLView/toolbar_graybk.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rg-software/wlx-markdown-viewer/b1e8a23473996b58b3a1edaef19bc964efe23cc1/HTMLView/toolbar_graybk.bmp -------------------------------------------------------------------------------- /Hoedown/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2008, Natacha Porté 2 | Copyright (c) 2011, Vicent Martí 3 | Copyright (c) 2014, Xavier Mendez, Devin Torres and the Hoedown authors 4 | 5 | Permission to use, copy, modify, and distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /Hoedown/Makefile: -------------------------------------------------------------------------------- 1 | CFLAGS = -g -O3 -ansi -pedantic -Wall -Wextra -Wno-unused-parameter 2 | PREFIX = /usr/local 3 | BINDIR = $(PREFIX)/bin 4 | LIBDIR = $(PREFIX)/lib 5 | INCLUDEDIR = $(PREFIX)/include 6 | 7 | HOEDOWN_CFLAGS = $(CFLAGS) -Isrc 8 | ifneq ($(OS),Windows_NT) 9 | HOEDOWN_CFLAGS += -fPIC 10 | endif 11 | 12 | SONAME = -soname 13 | ifeq ($(shell uname -s),Darwin) 14 | SONAME = -install_name 15 | endif 16 | 17 | HOEDOWN_SRC=\ 18 | src/autolink.o \ 19 | src/buffer.o \ 20 | src/document.o \ 21 | src/escape.o \ 22 | src/html.o \ 23 | src/html_blocks.o \ 24 | src/html_smartypants.o \ 25 | src/stack.o \ 26 | src/version.o 27 | 28 | .PHONY: all test test-pl clean 29 | 30 | all: libhoedown.so libhoedown.a hoedown smartypants 31 | 32 | # Libraries 33 | 34 | libhoedown.so: libhoedown.so.3 35 | ln -f -s $^ $@ 36 | 37 | libhoedown.so.3: $(HOEDOWN_SRC) 38 | $(CC) -Wl,$(SONAME),$(@F) -shared $^ $(LDFLAGS) -o $@ 39 | 40 | libhoedown.a: $(HOEDOWN_SRC) 41 | $(AR) rcs libhoedown.a $^ 42 | 43 | # Executables 44 | 45 | hoedown: bin/hoedown.o $(HOEDOWN_SRC) 46 | $(CC) $^ $(LDFLAGS) -o $@ 47 | 48 | smartypants: bin/smartypants.o $(HOEDOWN_SRC) 49 | $(CC) $^ $(LDFLAGS) -o $@ 50 | 51 | # Perfect hashing 52 | 53 | src/html_blocks.c: html_block_names.gperf 54 | gperf -L ANSI-C -N hoedown_find_block_tag -c -C -E -S 1 --ignore-case -m100 $^ > $@ 55 | 56 | # Testing 57 | 58 | test: hoedown 59 | python test/runner.py 60 | 61 | test-pl: hoedown 62 | perl test/MarkdownTest_1.0.3/MarkdownTest.pl \ 63 | --script=./hoedown --testdir=test/MarkdownTest_1.0.3/Tests --tidy 64 | 65 | # Housekeeping 66 | 67 | clean: 68 | $(RM) src/*.o bin/*.o 69 | $(RM) libhoedown.so libhoedown.so.1 libhoedown.a 70 | $(RM) hoedown smartypants hoedown.exe smartypants.exe 71 | 72 | # Installing 73 | 74 | install: 75 | install -m755 -d $(DESTDIR)$(LIBDIR) 76 | install -m755 -d $(DESTDIR)$(BINDIR) 77 | install -m755 -d $(DESTDIR)$(INCLUDEDIR) 78 | 79 | install -m644 libhoedown.a $(DESTDIR)$(LIBDIR) 80 | install -m755 libhoedown.so.3 $(DESTDIR)$(LIBDIR) 81 | ln -f -s libhoedown.so.3 $(DESTDIR)$(LIBDIR)/libhoedown.so 82 | 83 | install -m755 hoedown $(DESTDIR)$(BINDIR) 84 | install -m755 smartypants $(DESTDIR)$(BINDIR) 85 | 86 | install -m755 -d $(DESTDIR)$(INCLUDEDIR)/hoedown 87 | install -m644 src/*.h $(DESTDIR)$(INCLUDEDIR)/hoedown 88 | 89 | # Generic object compilations 90 | 91 | %.o: %.c 92 | $(CC) $(HOEDOWN_CFLAGS) -c -o $@ $< 93 | 94 | src/html_blocks.o: src/html_blocks.c 95 | $(CC) $(HOEDOWN_CFLAGS) -Wno-static-in-inline -c -o $@ $< 96 | -------------------------------------------------------------------------------- /Hoedown/Makefile.win: -------------------------------------------------------------------------------- 1 | CC = cl 2 | CFLAGS = /O2 /sdl /Isrc /D_CRT_SECURE_NO_WARNINGS 3 | 4 | HOEDOWN_SRC = \ 5 | src\autolink.obj \ 6 | src\buffer.obj \ 7 | src\document.obj \ 8 | src\escape.obj \ 9 | src\html.obj \ 10 | src\html_blocks.obj \ 11 | src\html_smartypants.obj \ 12 | src\stack.obj \ 13 | src\version.obj 14 | 15 | all: hoedown.dll hoedown.exe smartypants.exe 16 | 17 | hoedown.dll: $(HOEDOWN_SRC) hoedown.def 18 | $(CC) $(HOEDOWN_SRC) hoedown.def /link /DLL $(LDFLAGS) /out:$@ 19 | 20 | hoedown.exe: bin\hoedown.obj $(HOEDOWN_SRC) 21 | $(CC) bin\hoedown.obj $(HOEDOWN_SRC) /link $(LDFLAGS) /out:$@ 22 | 23 | smartypants.exe: bin\smartypants.obj $(HOEDOWN_SRC) 24 | $(CC) bin\smartypants.obj $(HOEDOWN_SRC) /link $(LDFLAGS) /out:$@ 25 | 26 | # Housekeeping 27 | 28 | clean: 29 | del $(HOEDOWN_SRC) 30 | del hoedown.dll hoedown.exp hoedown.lib 31 | del hoedown.exe smartypants.exe 32 | 33 | # Generic object compilations 34 | 35 | .c.obj: 36 | $(CC) $(CFLAGS) /c $< /Fo$@ 37 | 38 | # Testing 39 | 40 | test: hoedown.exe 41 | python test\runner.py 42 | -------------------------------------------------------------------------------- /Hoedown/bin/common.h: -------------------------------------------------------------------------------- 1 | #ifndef HOEDOWNCOMMON_H 2 | #define HOEDOWNCOMMON_H 3 | 4 | #include "version.h" 5 | 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | #define str(x) __str(x) 12 | #define __str(x) #x 13 | 14 | #define count_of(arr) (sizeof(arr)/sizeof(0[arr])) 15 | 16 | int parseint(const char *string, long *result) 17 | { 18 | char *end; 19 | errno = 0; 20 | *result = strtol(string, &end, 10); 21 | return !(*end || errno); 22 | } 23 | 24 | const char * 25 | strprefix(const char *str, const char *prefix) 26 | { 27 | while (*prefix) { 28 | if (!(*str && *str == *prefix)) return 0; 29 | prefix++; str++; 30 | } 31 | return str; 32 | } 33 | 34 | void 35 | print_option(char short_opt, const char *long_opt, const char *description) 36 | { 37 | if (short_opt) 38 | printf(" -%c, ", short_opt); 39 | else 40 | printf(" "); 41 | 42 | printf("--%-13s %s\n", long_opt, description); 43 | } 44 | 45 | void 46 | print_version() 47 | { 48 | printf("Built with Hoedown " HOEDOWN_VERSION ".\n"); 49 | } 50 | 51 | int 52 | parse_options( 53 | int argc, char **argv, 54 | int(*parse_short_option)(char opt, char *next, void *opaque), 55 | int(*parse_long_option)(char *opt, char *next, void *opaque), 56 | int(*parse_argument)(int argn, char *arg, int is_forced, void *opaque), 57 | void *opaque) 58 | { 59 | int result; 60 | int i = 1, regular_args = 0; 61 | 62 | /* Parse options mixed with arguments */ 63 | while (i < argc) { 64 | char *arg = argv[i]; 65 | 66 | if (arg[0] == '-' && arg[1]) { 67 | char *next_arg = (i+1 < argc) ? argv[i+1] : NULL; 68 | 69 | if (arg[1] == '-' && !arg[2]) { 70 | /* '--' signals end of options */ 71 | i++; 72 | break; 73 | } 74 | 75 | if (arg[1] == '-') { 76 | /* Long option */ 77 | result = parse_long_option(arg + 2, next_arg, opaque); 78 | if (!result) return 0; 79 | i += result; 80 | } else { 81 | /* Sequence of short options */ 82 | size_t pos; 83 | for (pos = 1; arg[pos]; pos++) { 84 | char *next = (arg[pos+1]) ? arg + pos+1 : next_arg; 85 | result = parse_short_option(arg[pos], next, opaque); 86 | if (!result) return 0; 87 | if (result == 2) { 88 | if (next == next_arg) i++; 89 | break; 90 | } 91 | } 92 | i++; 93 | } 94 | } else { 95 | /* Argument */ 96 | result = parse_argument(regular_args++, arg, 0, opaque); 97 | if (!result) return 0; 98 | i++; 99 | } 100 | } 101 | 102 | /* Parse rest as forced arguments */ 103 | while (i < argc) { 104 | result = parse_argument(regular_args++, argv[i], 1, opaque); 105 | if (!result) return 0; 106 | i++; 107 | } 108 | 109 | return 1; 110 | } 111 | 112 | #endif // HOEDOWNCOMMON_H 113 | -------------------------------------------------------------------------------- /Hoedown/hoedown-lib.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.28010.2036 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hoedown-lib", "hoedown-lib.vcxproj", "{68DC0090-5AA4-4450-AD7B-2EAC4F35E583}" 7 | EndProject 8 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hoedown", "hoedown.vcxproj", "{43D67A53-AB8C-4B9B-A610-0D3A8E66C555}" 9 | EndProject 10 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "smartypants", "smartypants.vcxproj", "{7A6D11D0-D731-4B55-A541-9D4BF4B8D4AC}" 11 | EndProject 12 | Global 13 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 14 | Debug|x64 = Debug|x64 15 | Debug|x86 = Debug|x86 16 | Release|x64 = Release|x64 17 | Release|x86 = Release|x86 18 | EndGlobalSection 19 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 20 | {68DC0090-5AA4-4450-AD7B-2EAC4F35E583}.Debug|x64.ActiveCfg = Debug|x64 21 | {68DC0090-5AA4-4450-AD7B-2EAC4F35E583}.Debug|x64.Build.0 = Debug|x64 22 | {68DC0090-5AA4-4450-AD7B-2EAC4F35E583}.Debug|x86.ActiveCfg = Debug|Win32 23 | {68DC0090-5AA4-4450-AD7B-2EAC4F35E583}.Debug|x86.Build.0 = Debug|Win32 24 | {68DC0090-5AA4-4450-AD7B-2EAC4F35E583}.Release|x64.ActiveCfg = Release|x64 25 | {68DC0090-5AA4-4450-AD7B-2EAC4F35E583}.Release|x64.Build.0 = Release|x64 26 | {68DC0090-5AA4-4450-AD7B-2EAC4F35E583}.Release|x86.ActiveCfg = Release|Win32 27 | {68DC0090-5AA4-4450-AD7B-2EAC4F35E583}.Release|x86.Build.0 = Release|Win32 28 | {43D67A53-AB8C-4B9B-A610-0D3A8E66C555}.Debug|x64.ActiveCfg = Debug|x64 29 | {43D67A53-AB8C-4B9B-A610-0D3A8E66C555}.Debug|x64.Build.0 = Debug|x64 30 | {43D67A53-AB8C-4B9B-A610-0D3A8E66C555}.Debug|x86.ActiveCfg = Debug|Win32 31 | {43D67A53-AB8C-4B9B-A610-0D3A8E66C555}.Debug|x86.Build.0 = Debug|Win32 32 | {43D67A53-AB8C-4B9B-A610-0D3A8E66C555}.Release|x64.ActiveCfg = Release|x64 33 | {43D67A53-AB8C-4B9B-A610-0D3A8E66C555}.Release|x64.Build.0 = Release|x64 34 | {43D67A53-AB8C-4B9B-A610-0D3A8E66C555}.Release|x86.ActiveCfg = Release|Win32 35 | {43D67A53-AB8C-4B9B-A610-0D3A8E66C555}.Release|x86.Build.0 = Release|Win32 36 | {7A6D11D0-D731-4B55-A541-9D4BF4B8D4AC}.Debug|x64.ActiveCfg = Debug|x64 37 | {7A6D11D0-D731-4B55-A541-9D4BF4B8D4AC}.Debug|x64.Build.0 = Debug|x64 38 | {7A6D11D0-D731-4B55-A541-9D4BF4B8D4AC}.Debug|x86.ActiveCfg = Debug|Win32 39 | {7A6D11D0-D731-4B55-A541-9D4BF4B8D4AC}.Debug|x86.Build.0 = Debug|Win32 40 | {7A6D11D0-D731-4B55-A541-9D4BF4B8D4AC}.Release|x64.ActiveCfg = Release|x64 41 | {7A6D11D0-D731-4B55-A541-9D4BF4B8D4AC}.Release|x64.Build.0 = Release|x64 42 | {7A6D11D0-D731-4B55-A541-9D4BF4B8D4AC}.Release|x86.ActiveCfg = Release|Win32 43 | {7A6D11D0-D731-4B55-A541-9D4BF4B8D4AC}.Release|x86.Build.0 = Release|Win32 44 | EndGlobalSection 45 | GlobalSection(SolutionProperties) = preSolution 46 | HideSolutionNode = FALSE 47 | EndGlobalSection 48 | GlobalSection(ExtensibilityGlobals) = postSolution 49 | SolutionGuid = {DF6702AB-D331-45BC-B8F1-548E0EE4B633} 50 | EndGlobalSection 51 | EndGlobal 52 | -------------------------------------------------------------------------------- /Hoedown/hoedown.def: -------------------------------------------------------------------------------- 1 | LIBRARY HOEDOWN 2 | EXPORTS 3 | hoedown_autolink_is_safe 4 | hoedown_autolink__www 5 | hoedown_autolink__email 6 | hoedown_autolink__url 7 | hoedown_buffer_init 8 | hoedown_buffer_new 9 | hoedown_buffer_reset 10 | hoedown_buffer_grow 11 | hoedown_buffer_put 12 | hoedown_buffer_puts 13 | hoedown_buffer_putc 14 | hoedown_buffer_set 15 | hoedown_buffer_sets 16 | hoedown_buffer_eq 17 | hoedown_buffer_eqs 18 | hoedown_buffer_prefix 19 | hoedown_buffer_slurp 20 | hoedown_buffer_cstr 21 | hoedown_buffer_printf 22 | hoedown_buffer_free 23 | hoedown_document_new 24 | hoedown_document_render 25 | hoedown_document_render_inline 26 | hoedown_document_free 27 | hoedown_escape_href 28 | hoedown_escape_html 29 | hoedown_html_smartypants 30 | hoedown_html_is_tag 31 | hoedown_html_renderer_new 32 | hoedown_html_toc_renderer_new 33 | hoedown_html_renderer_free 34 | hoedown_stack_init 35 | hoedown_stack_uninit 36 | hoedown_stack_grow 37 | hoedown_stack_push 38 | hoedown_stack_pop 39 | hoedown_stack_top 40 | hoedown_version 41 | -------------------------------------------------------------------------------- /Hoedown/html_block_names.gperf: -------------------------------------------------------------------------------- 1 | p 2 | dl 3 | h1 4 | h2 5 | h3 6 | h4 7 | h5 8 | h6 9 | ol 10 | ul 11 | del 12 | div 13 | ins 14 | pre 15 | form 16 | math 17 | style 18 | table 19 | figure 20 | iframe 21 | script 22 | fieldset 23 | noscript 24 | blockquote 25 | -------------------------------------------------------------------------------- /Hoedown/lib/placeholder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rg-software/wlx-markdown-viewer/b1e8a23473996b58b3a1edaef19bc964efe23cc1/Hoedown/lib/placeholder -------------------------------------------------------------------------------- /Hoedown/src/autolink.h: -------------------------------------------------------------------------------- 1 | /* autolink.h - versatile autolinker */ 2 | 3 | #ifndef HOEDOWN_AUTOLINK_H 4 | #define HOEDOWN_AUTOLINK_H 5 | 6 | #include "buffer.h" 7 | 8 | #ifdef __cplusplus 9 | extern "C" { 10 | #endif 11 | 12 | 13 | /************* 14 | * CONSTANTS * 15 | *************/ 16 | 17 | typedef enum hoedown_autolink_flags { 18 | HOEDOWN_AUTOLINK_SHORT_DOMAINS = (1 << 0) 19 | } hoedown_autolink_flags; 20 | 21 | 22 | /************* 23 | * FUNCTIONS * 24 | *************/ 25 | 26 | /* hoedown_autolink_is_safe: verify that a URL has a safe protocol */ 27 | int hoedown_autolink_is_safe(const uint8_t *data, size_t size); 28 | 29 | /* hoedown_autolink__www: search for the next www link in data */ 30 | size_t hoedown_autolink__www(size_t *rewind_p, hoedown_buffer *link, 31 | uint8_t *data, size_t offset, size_t size, hoedown_autolink_flags flags); 32 | 33 | /* hoedown_autolink__email: search for the next email in data */ 34 | size_t hoedown_autolink__email(size_t *rewind_p, hoedown_buffer *link, 35 | uint8_t *data, size_t offset, size_t size, hoedown_autolink_flags flags); 36 | 37 | /* hoedown_autolink__url: search for the next URL in data */ 38 | size_t hoedown_autolink__url(size_t *rewind_p, hoedown_buffer *link, 39 | uint8_t *data, size_t offset, size_t size, hoedown_autolink_flags flags); 40 | 41 | 42 | #ifdef __cplusplus 43 | } 44 | #endif 45 | 46 | #endif /** HOEDOWN_AUTOLINK_H **/ 47 | -------------------------------------------------------------------------------- /Hoedown/src/escape.h: -------------------------------------------------------------------------------- 1 | /* escape.h - escape utilities */ 2 | 3 | #ifndef HOEDOWN_ESCAPE_H 4 | #define HOEDOWN_ESCAPE_H 5 | 6 | #include "buffer.h" 7 | 8 | #ifdef __cplusplus 9 | extern "C" { 10 | #endif 11 | 12 | 13 | /************* 14 | * FUNCTIONS * 15 | *************/ 16 | 17 | /* hoedown_escape_href: escape (part of) a URL inside HTML */ 18 | void hoedown_escape_href(hoedown_buffer *ob, const uint8_t *data, size_t size); 19 | 20 | /* hoedown_escape_html: escape HTML */ 21 | void hoedown_escape_html(hoedown_buffer *ob, const uint8_t *data, size_t size, int secure); 22 | 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | 28 | #endif /** HOEDOWN_ESCAPE_H **/ 29 | -------------------------------------------------------------------------------- /Hoedown/src/html.h: -------------------------------------------------------------------------------- 1 | /* html.h - HTML renderer and utilities */ 2 | 3 | #ifndef HOEDOWN_HTML_H 4 | #define HOEDOWN_HTML_H 5 | 6 | #include "document.h" 7 | #include "buffer.h" 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | 14 | /************* 15 | * CONSTANTS * 16 | *************/ 17 | 18 | typedef enum hoedown_html_flags { 19 | HOEDOWN_HTML_SKIP_HTML = (1 << 0), 20 | HOEDOWN_HTML_ESCAPE = (1 << 1), 21 | HOEDOWN_HTML_HARD_WRAP = (1 << 2), 22 | HOEDOWN_HTML_USE_XHTML = (1 << 3) 23 | } hoedown_html_flags; 24 | 25 | typedef enum hoedown_html_tag { 26 | HOEDOWN_HTML_TAG_NONE = 0, 27 | HOEDOWN_HTML_TAG_OPEN, 28 | HOEDOWN_HTML_TAG_CLOSE 29 | } hoedown_html_tag; 30 | 31 | 32 | /********* 33 | * TYPES * 34 | *********/ 35 | 36 | struct hoedown_html_renderer_state { 37 | void *opaque; 38 | 39 | struct { 40 | int header_count; 41 | int current_level; 42 | int level_offset; 43 | int nesting_level; 44 | } toc_data; 45 | 46 | hoedown_html_flags flags; 47 | 48 | /* extra callbacks */ 49 | void (*link_attributes)(hoedown_buffer *ob, const hoedown_buffer *url, const hoedown_renderer_data *data); 50 | }; 51 | typedef struct hoedown_html_renderer_state hoedown_html_renderer_state; 52 | 53 | 54 | /************* 55 | * FUNCTIONS * 56 | *************/ 57 | 58 | /* hoedown_html_smartypants: process an HTML snippet using SmartyPants for smart punctuation */ 59 | void hoedown_html_smartypants(hoedown_buffer *ob, const uint8_t *data, size_t size); 60 | 61 | /* hoedown_html_is_tag: checks if data starts with a specific tag, returns the tag type or NONE */ 62 | hoedown_html_tag hoedown_html_is_tag(const uint8_t *data, size_t size, const char *tagname); 63 | 64 | 65 | /* hoedown_html_renderer_new: allocates a regular HTML renderer */ 66 | hoedown_renderer *hoedown_html_renderer_new( 67 | hoedown_html_flags render_flags, 68 | int nesting_level 69 | ) __attribute__ ((malloc)); 70 | 71 | /* hoedown_html_toc_renderer_new: like hoedown_html_renderer_new, but the returned renderer produces the Table of Contents */ 72 | hoedown_renderer *hoedown_html_toc_renderer_new( 73 | int nesting_level 74 | ) __attribute__ ((malloc)); 75 | 76 | /* hoedown_html_renderer_free: deallocate an HTML renderer */ 77 | void hoedown_html_renderer_free(hoedown_renderer *renderer); 78 | 79 | 80 | #ifdef __cplusplus 81 | } 82 | #endif 83 | 84 | #endif /** HOEDOWN_HTML_H **/ 85 | -------------------------------------------------------------------------------- /Hoedown/src/stack.c: -------------------------------------------------------------------------------- 1 | #include "stack.h" 2 | 3 | #include "buffer.h" 4 | 5 | #include 6 | #include 7 | #include 8 | 9 | void 10 | hoedown_stack_init(hoedown_stack *st, size_t initial_size) 11 | { 12 | assert(st); 13 | 14 | st->item = NULL; 15 | st->size = st->asize = 0; 16 | 17 | if (!initial_size) 18 | initial_size = 8; 19 | 20 | hoedown_stack_grow(st, initial_size); 21 | } 22 | 23 | void 24 | hoedown_stack_uninit(hoedown_stack *st) 25 | { 26 | assert(st); 27 | 28 | free(st->item); 29 | } 30 | 31 | void 32 | hoedown_stack_grow(hoedown_stack *st, size_t neosz) 33 | { 34 | assert(st); 35 | 36 | if (st->asize >= neosz) 37 | return; 38 | 39 | st->item = hoedown_realloc(st->item, neosz * sizeof(void *)); 40 | memset(st->item + st->asize, 0x0, (neosz - st->asize) * sizeof(void *)); 41 | 42 | st->asize = neosz; 43 | 44 | if (st->size > neosz) 45 | st->size = neosz; 46 | } 47 | 48 | void 49 | hoedown_stack_push(hoedown_stack *st, void *item) 50 | { 51 | assert(st); 52 | 53 | if (st->size >= st->asize) 54 | hoedown_stack_grow(st, st->size * 2); 55 | 56 | st->item[st->size++] = item; 57 | } 58 | 59 | void * 60 | hoedown_stack_pop(hoedown_stack *st) 61 | { 62 | assert(st); 63 | 64 | if (!st->size) 65 | return NULL; 66 | 67 | return st->item[--st->size]; 68 | } 69 | 70 | void * 71 | hoedown_stack_top(const hoedown_stack *st) 72 | { 73 | assert(st); 74 | 75 | if (!st->size) 76 | return NULL; 77 | 78 | return st->item[st->size - 1]; 79 | } 80 | -------------------------------------------------------------------------------- /Hoedown/src/stack.h: -------------------------------------------------------------------------------- 1 | /* stack.h - simple stacking */ 2 | 3 | #ifndef HOEDOWN_STACK_H 4 | #define HOEDOWN_STACK_H 5 | 6 | #include 7 | 8 | #ifdef __cplusplus 9 | extern "C" { 10 | #endif 11 | 12 | 13 | /********* 14 | * TYPES * 15 | *********/ 16 | 17 | struct hoedown_stack { 18 | void **item; 19 | size_t size; 20 | size_t asize; 21 | }; 22 | typedef struct hoedown_stack hoedown_stack; 23 | 24 | 25 | /************* 26 | * FUNCTIONS * 27 | *************/ 28 | 29 | /* hoedown_stack_init: initialize a stack */ 30 | void hoedown_stack_init(hoedown_stack *st, size_t initial_size); 31 | 32 | /* hoedown_stack_uninit: free internal data of the stack */ 33 | void hoedown_stack_uninit(hoedown_stack *st); 34 | 35 | /* hoedown_stack_grow: increase the allocated size to the given value */ 36 | void hoedown_stack_grow(hoedown_stack *st, size_t neosz); 37 | 38 | /* hoedown_stack_push: push an item to the top of the stack */ 39 | void hoedown_stack_push(hoedown_stack *st, void *item); 40 | 41 | /* hoedown_stack_pop: retrieve and remove the item at the top of the stack */ 42 | void *hoedown_stack_pop(hoedown_stack *st); 43 | 44 | /* hoedown_stack_top: retrieve the item at the top of the stack */ 45 | void *hoedown_stack_top(const hoedown_stack *st); 46 | 47 | 48 | #ifdef __cplusplus 49 | } 50 | #endif 51 | 52 | #endif /** HOEDOWN_STACK_H **/ 53 | -------------------------------------------------------------------------------- /Hoedown/src/version.c: -------------------------------------------------------------------------------- 1 | #include "version.h" 2 | 3 | void 4 | hoedown_version(int *major, int *minor, int *revision) 5 | { 6 | *major = HOEDOWN_VERSION_MAJOR; 7 | *minor = HOEDOWN_VERSION_MINOR; 8 | *revision = HOEDOWN_VERSION_REVISION; 9 | } 10 | -------------------------------------------------------------------------------- /Hoedown/src/version.h: -------------------------------------------------------------------------------- 1 | /* version.h - holds Hoedown's version */ 2 | 3 | #ifndef HOEDOWN_VERSION_H 4 | #define HOEDOWN_VERSION_H 5 | 6 | #ifdef __cplusplus 7 | extern "C" { 8 | #endif 9 | 10 | 11 | /************* 12 | * CONSTANTS * 13 | *************/ 14 | 15 | #define HOEDOWN_VERSION "3.0.7" 16 | #define HOEDOWN_VERSION_MAJOR 3 17 | #define HOEDOWN_VERSION_MINOR 0 18 | #define HOEDOWN_VERSION_REVISION 7 19 | 20 | 21 | /************* 22 | * FUNCTIONS * 23 | *************/ 24 | 25 | /* hoedown_version: retrieve Hoedown's version numbers */ 26 | void hoedown_version(int *major, int *minor, int *revision); 27 | 28 | 29 | #ifdef __cplusplus 30 | } 31 | #endif 32 | 33 | #endif /** HOEDOWN_VERSION_H **/ 34 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Amps and angle encoding.html: -------------------------------------------------------------------------------- 1 |

AT&T has an ampersand in their name.

2 | 3 |

AT&T is another way to write it.

4 | 5 |

This & that.

6 | 7 |

4 < 5.

8 | 9 |

6 > 5.

10 | 11 |

Here's a link with an ampersand in the URL.

12 | 13 |

Here's a link with an amersand in the link text: AT&T.

14 | 15 |

Here's an inline link.

16 | 17 |

Here's an inline link.

18 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Amps and angle encoding.text: -------------------------------------------------------------------------------- 1 | AT&T has an ampersand in their name. 2 | 3 | AT&T is another way to write it. 4 | 5 | This & that. 6 | 7 | 4 < 5. 8 | 9 | 6 > 5. 10 | 11 | Here's a [link] [1] with an ampersand in the URL. 12 | 13 | Here's a link with an amersand in the link text: [AT&T] [2]. 14 | 15 | Here's an inline [link](/script?foo=1&bar=2). 16 | 17 | Here's an inline [link](). 18 | 19 | 20 | [1]: http://example.com/?foo=1&bar=2 21 | [2]: http://att.com/ "AT&T" -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Auto links.html: -------------------------------------------------------------------------------- 1 |

Link: http://example.com/.

2 | 3 |

With an ampersand: http://example.com/?foo=1&bar=2

4 | 5 | 10 | 11 |
12 |

Blockquoted: http://example.com/

13 |
14 | 15 |

Auto-links should not occur here: <http://example.com/>

16 | 17 |
or here: <http://example.com/>
18 | 
19 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Auto links.text: -------------------------------------------------------------------------------- 1 | Link: . 2 | 3 | With an ampersand: 4 | 5 | * In a list? 6 | * 7 | * It should. 8 | 9 | > Blockquoted: 10 | 11 | Auto-links should not occur here: `` 12 | 13 | or here: -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Backslash escapes.html: -------------------------------------------------------------------------------- 1 |

These should all get escaped:

2 | 3 |

Backslash: \

4 | 5 |

Backtick: `

6 | 7 |

Asterisk: *

8 | 9 |

Underscore: _

10 | 11 |

Left brace: {

12 | 13 |

Right brace: }

14 | 15 |

Left bracket: [

16 | 17 |

Right bracket: ]

18 | 19 |

Left paren: (

20 | 21 |

Right paren: )

22 | 23 |

Greater-than: >

24 | 25 |

Hash: #

26 | 27 |

Period: .

28 | 29 |

Bang: !

30 | 31 |

Plus: +

32 | 33 |

Minus: -

34 | 35 |

These should not, because they occur within a code block:

36 | 37 |
Backslash: \\
 38 | 
 39 | Backtick: \`
 40 | 
 41 | Asterisk: \*
 42 | 
 43 | Underscore: \_
 44 | 
 45 | Left brace: \{
 46 | 
 47 | Right brace: \}
 48 | 
 49 | Left bracket: \[
 50 | 
 51 | Right bracket: \]
 52 | 
 53 | Left paren: \(
 54 | 
 55 | Right paren: \)
 56 | 
 57 | Greater-than: \>
 58 | 
 59 | Hash: \#
 60 | 
 61 | Period: \.
 62 | 
 63 | Bang: \!
 64 | 
 65 | Plus: \+
 66 | 
 67 | Minus: \-
 68 | 
69 | 70 |

Nor should these, which occur in code spans:

71 | 72 |

Backslash: \\

73 | 74 |

Backtick: \`

75 | 76 |

Asterisk: \*

77 | 78 |

Underscore: \_

79 | 80 |

Left brace: \{

81 | 82 |

Right brace: \}

83 | 84 |

Left bracket: \[

85 | 86 |

Right bracket: \]

87 | 88 |

Left paren: \(

89 | 90 |

Right paren: \)

91 | 92 |

Greater-than: \>

93 | 94 |

Hash: \#

95 | 96 |

Period: \.

97 | 98 |

Bang: \!

99 | 100 |

Plus: \+

101 | 102 |

Minus: \-

103 | 104 | 105 |

These should get escaped, even though they're matching pairs for 106 | other Markdown constructs:

107 | 108 |

*asterisks*

109 | 110 |

_underscores_

111 | 112 |

`backticks`

113 | 114 |

This is a code span with a literal backslash-backtick sequence: \`

115 | 116 |

This is a tag with unescaped backticks bar.

117 | 118 |

This is a tag with backslashes bar.

119 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Backslash escapes.text: -------------------------------------------------------------------------------- 1 | These should all get escaped: 2 | 3 | Backslash: \\ 4 | 5 | Backtick: \` 6 | 7 | Asterisk: \* 8 | 9 | Underscore: \_ 10 | 11 | Left brace: \{ 12 | 13 | Right brace: \} 14 | 15 | Left bracket: \[ 16 | 17 | Right bracket: \] 18 | 19 | Left paren: \( 20 | 21 | Right paren: \) 22 | 23 | Greater-than: \> 24 | 25 | Hash: \# 26 | 27 | Period: \. 28 | 29 | Bang: \! 30 | 31 | Plus: \+ 32 | 33 | Minus: \- 34 | 35 | 36 | 37 | These should not, because they occur within a code block: 38 | 39 | Backslash: \\ 40 | 41 | Backtick: \` 42 | 43 | Asterisk: \* 44 | 45 | Underscore: \_ 46 | 47 | Left brace: \{ 48 | 49 | Right brace: \} 50 | 51 | Left bracket: \[ 52 | 53 | Right bracket: \] 54 | 55 | Left paren: \( 56 | 57 | Right paren: \) 58 | 59 | Greater-than: \> 60 | 61 | Hash: \# 62 | 63 | Period: \. 64 | 65 | Bang: \! 66 | 67 | Plus: \+ 68 | 69 | Minus: \- 70 | 71 | 72 | Nor should these, which occur in code spans: 73 | 74 | Backslash: `\\` 75 | 76 | Backtick: `` \` `` 77 | 78 | Asterisk: `\*` 79 | 80 | Underscore: `\_` 81 | 82 | Left brace: `\{` 83 | 84 | Right brace: `\}` 85 | 86 | Left bracket: `\[` 87 | 88 | Right bracket: `\]` 89 | 90 | Left paren: `\(` 91 | 92 | Right paren: `\)` 93 | 94 | Greater-than: `\>` 95 | 96 | Hash: `\#` 97 | 98 | Period: `\.` 99 | 100 | Bang: `\!` 101 | 102 | Plus: `\+` 103 | 104 | Minus: `\-` 105 | 106 | 107 | These should get escaped, even though they're matching pairs for 108 | other Markdown constructs: 109 | 110 | \*asterisks\* 111 | 112 | \_underscores\_ 113 | 114 | \`backticks\` 115 | 116 | This is a code span with a literal backslash-backtick sequence: `` \` `` 117 | 118 | This is a tag with unescaped backticks bar. 119 | 120 | This is a tag with backslashes bar. 121 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Blockquotes with code blocks.html: -------------------------------------------------------------------------------- 1 |
2 |

Example:

3 | 4 |
sub status {
 5 |     print "working";
 6 | }
 7 | 
8 | 9 |

Or:

10 | 11 |
sub status {
12 |     return "working";
13 | }
14 | 
15 |
16 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Blockquotes with code blocks.text: -------------------------------------------------------------------------------- 1 | > Example: 2 | > 3 | > sub status { 4 | > print "working"; 5 | > } 6 | > 7 | > Or: 8 | > 9 | > sub status { 10 | > return "working"; 11 | > } 12 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Code Blocks.html: -------------------------------------------------------------------------------- 1 |
code block on the first line
 2 | 
3 | 4 |

Regular text.

5 | 6 |
code block indented by spaces
 7 | 
8 | 9 |

Regular text.

10 | 11 |
the lines in this block  
12 | all contain trailing spaces  
13 | 
14 | 15 |

Regular Text.

16 | 17 |
code block on the last line
18 | 
19 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Code Blocks.text: -------------------------------------------------------------------------------- 1 | code block on the first line 2 | 3 | Regular text. 4 | 5 | code block indented by spaces 6 | 7 | Regular text. 8 | 9 | the lines in this block 10 | all contain trailing spaces 11 | 12 | Regular Text. 13 | 14 | code block on the last line -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Code Spans.html: -------------------------------------------------------------------------------- 1 |

<test a=" content of attribute ">

2 | 3 |

Fix for backticks within HTML tag: like this

4 | 5 |

Here's how you put `backticks` in a code span.

6 | 7 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Code Spans.text: -------------------------------------------------------------------------------- 1 | `` 2 | 3 | Fix for backticks within HTML tag: like this 4 | 5 | Here's how you put `` `backticks` `` in a code span. 6 | 7 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Hard-wrapped paragraphs with list-like lines.html: -------------------------------------------------------------------------------- 1 |

In Markdown 1.0.0 and earlier. Version 2 | 8. This line turns into a list item. 3 | Because a hard-wrapped line in the 4 | middle of a paragraph looked like a 5 | list item.

6 | 7 |

Here's one with a bullet. 8 | * criminey.

9 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Hard-wrapped paragraphs with list-like lines.text: -------------------------------------------------------------------------------- 1 | In Markdown 1.0.0 and earlier. Version 2 | 8. This line turns into a list item. 3 | Because a hard-wrapped line in the 4 | middle of a paragraph looked like a 5 | list item. 6 | 7 | Here's one with a bullet. 8 | * criminey. 9 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Horizontal rules.html: -------------------------------------------------------------------------------- 1 |

Dashes:

2 | 3 |
4 | 5 |
6 | 7 |
8 | 9 |
10 | 11 |
---
12 | 
13 | 14 |
15 | 16 |
17 | 18 |
19 | 20 |
21 | 22 |
- - -
23 | 
24 | 25 |

Asterisks:

26 | 27 |
28 | 29 |
30 | 31 |
32 | 33 |
34 | 35 |
***
36 | 
37 | 38 |
39 | 40 |
41 | 42 |
43 | 44 |
45 | 46 |
* * *
47 | 
48 | 49 |

Underscores:

50 | 51 |
52 | 53 |
54 | 55 |
56 | 57 |
58 | 59 |
___
60 | 
61 | 62 |
63 | 64 |
65 | 66 |
67 | 68 |
69 | 70 |
_ _ _
71 | 
72 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Horizontal rules.text: -------------------------------------------------------------------------------- 1 | Dashes: 2 | 3 | --- 4 | 5 | --- 6 | 7 | --- 8 | 9 | --- 10 | 11 | --- 12 | 13 | - - - 14 | 15 | - - - 16 | 17 | - - - 18 | 19 | - - - 20 | 21 | - - - 22 | 23 | 24 | Asterisks: 25 | 26 | *** 27 | 28 | *** 29 | 30 | *** 31 | 32 | *** 33 | 34 | *** 35 | 36 | * * * 37 | 38 | * * * 39 | 40 | * * * 41 | 42 | * * * 43 | 44 | * * * 45 | 46 | 47 | Underscores: 48 | 49 | ___ 50 | 51 | ___ 52 | 53 | ___ 54 | 55 | ___ 56 | 57 | ___ 58 | 59 | _ _ _ 60 | 61 | _ _ _ 62 | 63 | _ _ _ 64 | 65 | _ _ _ 66 | 67 | _ _ _ 68 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Inline HTML (Advanced).html: -------------------------------------------------------------------------------- 1 |

Simple block on one line:

2 | 3 |
foo
4 | 5 |

And nested without indentation:

6 | 7 |
8 |
9 |
10 | foo 11 |
12 |
13 |
14 |
bar
15 |
16 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Inline HTML (Advanced).text: -------------------------------------------------------------------------------- 1 | Simple block on one line: 2 | 3 |
foo
4 | 5 | And nested without indentation: 6 | 7 |
8 |
9 |
10 | foo 11 |
12 |
13 |
14 |
bar
15 |
16 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Inline HTML (Simple).html: -------------------------------------------------------------------------------- 1 |

Here's a simple block:

2 | 3 |
4 | foo 5 |
6 | 7 |

This should be a code block, though:

8 | 9 |
<div>
10 |     foo
11 | </div>
12 | 
13 | 14 |

As should this:

15 | 16 |
<div>foo</div>
17 | 
18 | 19 |

Now, nested:

20 | 21 |
22 |
23 |
24 | foo 25 |
26 |
27 |
28 | 29 |

This should just be an HTML comment:

30 | 31 | 32 | 33 |

Multiline:

34 | 35 | 39 | 40 |

Code block:

41 | 42 |
<!-- Comment -->
43 | 
44 | 45 |

Just plain comment, with trailing spaces on the line:

46 | 47 | 48 | 49 |

Code:

50 | 51 |
<hr />
52 | 
53 | 54 |

Hr's:

55 | 56 |
57 | 58 |
59 | 60 |
61 | 62 |
63 | 64 |
65 | 66 |
67 | 68 |
69 | 70 |
71 | 72 |
73 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Inline HTML (Simple).text: -------------------------------------------------------------------------------- 1 | Here's a simple block: 2 | 3 |
4 | foo 5 |
6 | 7 | This should be a code block, though: 8 | 9 |
10 | foo 11 |
12 | 13 | As should this: 14 | 15 |
foo
16 | 17 | Now, nested: 18 | 19 |
20 |
21 |
22 | foo 23 |
24 |
25 |
26 | 27 | This should just be an HTML comment: 28 | 29 | 30 | 31 | Multiline: 32 | 33 | 37 | 38 | Code block: 39 | 40 | 41 | 42 | Just plain comment, with trailing spaces on the line: 43 | 44 | 45 | 46 | Code: 47 | 48 |
49 | 50 | Hr's: 51 | 52 |
53 | 54 |
55 | 56 |
57 | 58 |
59 | 60 |
61 | 62 |
63 | 64 |
65 | 66 |
67 | 68 |
69 | 70 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Inline HTML comments.html: -------------------------------------------------------------------------------- 1 |

Paragraph one.

2 | 3 | 4 | 5 | 8 | 9 |

Paragraph two.

10 | 11 | 12 | 13 |

The end.

14 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Inline HTML comments.text: -------------------------------------------------------------------------------- 1 | Paragraph one. 2 | 3 | 4 | 5 | 8 | 9 | Paragraph two. 10 | 11 | 12 | 13 | The end. 14 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Links, inline style.html: -------------------------------------------------------------------------------- 1 |

Just a URL.

2 | 3 |

URL and title.

4 | 5 |

URL and title.

6 | 7 |

URL and title.

8 | 9 |

URL and title.

10 | 11 |

Empty.

12 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Links, inline style.text: -------------------------------------------------------------------------------- 1 | Just a [URL](/url/). 2 | 3 | [URL and title](/url/ "title"). 4 | 5 | [URL and title](/url/ "title preceded by two spaces"). 6 | 7 | [URL and title](/url/ "title preceded by a tab"). 8 | 9 | [URL and title](/url/ "title has spaces afterward" ). 10 | 11 | 12 | [Empty](). 13 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Links, reference style.html: -------------------------------------------------------------------------------- 1 |

Foo bar.

2 | 3 |

Foo bar.

4 | 5 |

Foo bar.

6 | 7 |

With embedded [brackets].

8 | 9 |

Indented once.

10 | 11 |

Indented twice.

12 | 13 |

Indented thrice.

14 | 15 |

Indented [four][] times.

16 | 17 |
[four]: /url
18 | 
19 | 20 |
21 | 22 |

this should work

23 | 24 |

So should this.

25 | 26 |

And this.

27 | 28 |

And this.

29 | 30 |

And this.

31 | 32 |

But not [that] [].

33 | 34 |

Nor [that][].

35 | 36 |

Nor [that].

37 | 38 |

[Something in brackets like this should work]

39 | 40 |

[Same with this.]

41 | 42 |

In this case, this points to something else.

43 | 44 |

Backslashing should suppress [this] and [this].

45 | 46 |
47 | 48 |

Here's one where the link 49 | breaks across lines.

50 | 51 |

Here's another where the link 52 | breaks across lines, but with a line-ending space.

53 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Links, reference style.text: -------------------------------------------------------------------------------- 1 | Foo [bar] [1]. 2 | 3 | Foo [bar][1]. 4 | 5 | Foo [bar] 6 | [1]. 7 | 8 | [1]: /url/ "Title" 9 | 10 | 11 | With [embedded [brackets]] [b]. 12 | 13 | 14 | Indented [once][]. 15 | 16 | Indented [twice][]. 17 | 18 | Indented [thrice][]. 19 | 20 | Indented [four][] times. 21 | 22 | [once]: /url 23 | 24 | [twice]: /url 25 | 26 | [thrice]: /url 27 | 28 | [four]: /url 29 | 30 | 31 | [b]: /url/ 32 | 33 | * * * 34 | 35 | [this] [this] should work 36 | 37 | So should [this][this]. 38 | 39 | And [this] []. 40 | 41 | And [this][]. 42 | 43 | And [this]. 44 | 45 | But not [that] []. 46 | 47 | Nor [that][]. 48 | 49 | Nor [that]. 50 | 51 | [Something in brackets like [this][] should work] 52 | 53 | [Same with [this].] 54 | 55 | In this case, [this](/somethingelse/) points to something else. 56 | 57 | Backslashing should suppress \[this] and [this\]. 58 | 59 | [this]: foo 60 | 61 | 62 | * * * 63 | 64 | Here's one where the [link 65 | breaks] across lines. 66 | 67 | Here's another where the [link 68 | breaks] across lines, but with a line-ending space. 69 | 70 | 71 | [link breaks]: /url/ 72 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Links, shortcut references.html: -------------------------------------------------------------------------------- 1 |

This is the simple case.

2 | 3 |

This one has a line 4 | break.

5 | 6 |

This one has a line 7 | break with a line-ending space.

8 | 9 |

this and the other

10 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Links, shortcut references.text: -------------------------------------------------------------------------------- 1 | This is the [simple case]. 2 | 3 | [simple case]: /simple 4 | 5 | 6 | 7 | This one has a [line 8 | break]. 9 | 10 | This one has a [line 11 | break] with a line-ending space. 12 | 13 | [line break]: /foo 14 | 15 | 16 | [this] [that] and the [other] 17 | 18 | [this]: /this 19 | [that]: /that 20 | [other]: /other 21 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Literal quotes in titles.html: -------------------------------------------------------------------------------- 1 |

Foo bar.

2 | 3 |

Foo bar.

4 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Literal quotes in titles.text: -------------------------------------------------------------------------------- 1 | Foo [bar][]. 2 | 3 | Foo [bar](/url/ "Title with "quotes" inside"). 4 | 5 | 6 | [bar]: /url/ "Title with "quotes" inside" 7 | 8 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Nested blockquotes.html: -------------------------------------------------------------------------------- 1 |
2 |

foo

3 | 4 |
5 |

bar

6 |
7 | 8 |

foo

9 |
10 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Nested blockquotes.text: -------------------------------------------------------------------------------- 1 | > foo 2 | > 3 | > > bar 4 | > 5 | > foo 6 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Ordered and unordered lists.html: -------------------------------------------------------------------------------- 1 |

Unordered

2 | 3 |

Asterisks tight:

4 | 5 |
    6 |
  • asterisk 1
  • 7 |
  • asterisk 2
  • 8 |
  • asterisk 3
  • 9 |
10 | 11 |

Asterisks loose:

12 | 13 |
    14 |
  • asterisk 1

  • 15 |
  • asterisk 2

  • 16 |
  • asterisk 3

  • 17 |
18 | 19 |
20 | 21 |

Pluses tight:

22 | 23 |
    24 |
  • Plus 1
  • 25 |
  • Plus 2
  • 26 |
  • Plus 3
  • 27 |
28 | 29 |

Pluses loose:

30 | 31 |
    32 |
  • Plus 1

  • 33 |
  • Plus 2

  • 34 |
  • Plus 3

  • 35 |
36 | 37 |
38 | 39 |

Minuses tight:

40 | 41 |
    42 |
  • Minus 1
  • 43 |
  • Minus 2
  • 44 |
  • Minus 3
  • 45 |
46 | 47 |

Minuses loose:

48 | 49 |
    50 |
  • Minus 1

  • 51 |
  • Minus 2

  • 52 |
  • Minus 3

  • 53 |
54 | 55 |

Ordered

56 | 57 |

Tight:

58 | 59 |
    60 |
  1. First
  2. 61 |
  3. Second
  4. 62 |
  5. Third
  6. 63 |
64 | 65 |

and:

66 | 67 |
    68 |
  1. One
  2. 69 |
  3. Two
  4. 70 |
  5. Three
  6. 71 |
72 | 73 |

Loose using tabs:

74 | 75 |
    76 |
  1. First

  2. 77 |
  3. Second

  4. 78 |
  5. Third

  6. 79 |
80 | 81 |

and using spaces:

82 | 83 |
    84 |
  1. One

  2. 85 |
  3. Two

  4. 86 |
  5. Three

  6. 87 |
88 | 89 |

Multiple paragraphs:

90 | 91 |
    92 |
  1. Item 1, graf one.

    93 | 94 |

    Item 2. graf two. The quick brown fox jumped over the lazy dog's 95 | back.

  2. 96 |
  3. Item 2.

  4. 97 |
  5. Item 3.

  6. 98 |
99 | 100 |

Nested

101 | 102 |
    103 |
  • Tab 104 |
      105 |
    • Tab 106 |
        107 |
      • Tab
      • 108 |
    • 109 |
  • 110 |
111 | 112 |

Here's another:

113 | 114 |
    115 |
  1. First
  2. 116 |
  3. Second: 117 |
      118 |
    • Fee
    • 119 |
    • Fie
    • 120 |
    • Foe
    • 121 |
  4. 122 |
  5. Third
  6. 123 |
124 | 125 |

Same thing but with paragraphs:

126 | 127 |
    128 |
  1. First

  2. 129 |
  3. Second:

    130 | 131 |
      132 |
    • Fee
    • 133 |
    • Fie
    • 134 |
    • Foe
    • 135 |
  4. 136 |
  5. Third

  6. 137 |
138 | 139 | 140 |

This was an error in Markdown 1.0.1:

141 | 142 |
    143 |
  • this

    144 | 145 |
    • sub
    146 | 147 |

    that

  • 148 |
149 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Ordered and unordered lists.text: -------------------------------------------------------------------------------- 1 | ## Unordered 2 | 3 | Asterisks tight: 4 | 5 | * asterisk 1 6 | * asterisk 2 7 | * asterisk 3 8 | 9 | 10 | Asterisks loose: 11 | 12 | * asterisk 1 13 | 14 | * asterisk 2 15 | 16 | * asterisk 3 17 | 18 | * * * 19 | 20 | Pluses tight: 21 | 22 | + Plus 1 23 | + Plus 2 24 | + Plus 3 25 | 26 | 27 | Pluses loose: 28 | 29 | + Plus 1 30 | 31 | + Plus 2 32 | 33 | + Plus 3 34 | 35 | * * * 36 | 37 | 38 | Minuses tight: 39 | 40 | - Minus 1 41 | - Minus 2 42 | - Minus 3 43 | 44 | 45 | Minuses loose: 46 | 47 | - Minus 1 48 | 49 | - Minus 2 50 | 51 | - Minus 3 52 | 53 | 54 | ## Ordered 55 | 56 | Tight: 57 | 58 | 1. First 59 | 2. Second 60 | 3. Third 61 | 62 | and: 63 | 64 | 1. One 65 | 2. Two 66 | 3. Three 67 | 68 | 69 | Loose using tabs: 70 | 71 | 1. First 72 | 73 | 2. Second 74 | 75 | 3. Third 76 | 77 | and using spaces: 78 | 79 | 1. One 80 | 81 | 2. Two 82 | 83 | 3. Three 84 | 85 | Multiple paragraphs: 86 | 87 | 1. Item 1, graf one. 88 | 89 | Item 2. graf two. The quick brown fox jumped over the lazy dog's 90 | back. 91 | 92 | 2. Item 2. 93 | 94 | 3. Item 3. 95 | 96 | 97 | 98 | ## Nested 99 | 100 | * Tab 101 | * Tab 102 | * Tab 103 | 104 | Here's another: 105 | 106 | 1. First 107 | 2. Second: 108 | * Fee 109 | * Fie 110 | * Foe 111 | 3. Third 112 | 113 | Same thing but with paragraphs: 114 | 115 | 1. First 116 | 117 | 2. Second: 118 | * Fee 119 | * Fie 120 | * Foe 121 | 122 | 3. Third 123 | 124 | 125 | This was an error in Markdown 1.0.1: 126 | 127 | * this 128 | 129 | * sub 130 | 131 | that 132 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Strong and em together.html: -------------------------------------------------------------------------------- 1 |

This is strong and em.

2 | 3 |

So is this word.

4 | 5 |

This is strong and em.

6 | 7 |

So is this word.

8 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Strong and em together.text: -------------------------------------------------------------------------------- 1 | ***This is strong and em.*** 2 | 3 | So is ***this*** word. 4 | 5 | ___This is strong and em.___ 6 | 7 | So is ___this___ word. 8 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Tabs.html: -------------------------------------------------------------------------------- 1 |
    2 |
  • this is a list item 3 | indented with tabs

  • 4 |
  • this is a list item 5 | indented with spaces

  • 6 |
7 | 8 |

Code:

9 | 10 |
this code block is indented by one tab
11 | 
12 | 13 |

And:

14 | 15 |
    this code block is indented by two tabs
16 | 
17 | 18 |

And:

19 | 20 |
+   this is an example list item
21 |     indented with tabs
22 | 
23 | +   this is an example list item
24 |     indented with spaces
25 | 
26 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Tabs.text: -------------------------------------------------------------------------------- 1 | + this is a list item 2 | indented with tabs 3 | 4 | + this is a list item 5 | indented with spaces 6 | 7 | Code: 8 | 9 | this code block is indented by one tab 10 | 11 | And: 12 | 13 | this code block is indented by two tabs 14 | 15 | And: 16 | 17 | + this is an example list item 18 | indented with tabs 19 | 20 | + this is an example list item 21 | indented with spaces 22 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Tidyness.html: -------------------------------------------------------------------------------- 1 |
2 |

A list within a blockquote:

3 |
    4 |
  • asterisk 1
  • 5 |
  • asterisk 2
  • 6 |
  • asterisk 3
  • 7 |
8 |
9 | -------------------------------------------------------------------------------- /Hoedown/test/MarkdownTest_1.0.3/Tests/Tidyness.text: -------------------------------------------------------------------------------- 1 | > A list within a blockquote: 2 | > 3 | > * asterisk 1 4 | > * asterisk 2 5 | > * asterisk 3 6 | -------------------------------------------------------------------------------- /Hoedown/test/Tests/CommentsInMiddleOfLine.html: -------------------------------------------------------------------------------- 1 |

It would be super-keen to be able to use MOE directives in Markdown.

3 | 4 |

But I'd really, really 5 | 6 | like to be able to use them in the middle of a line.

7 | -------------------------------------------------------------------------------- /Hoedown/test/Tests/CommentsInMiddleOfLine.text: -------------------------------------------------------------------------------- 1 | It would be super-keen to be able to use [MOE](https://github.com/google/moe) 2 | directives in Markdown. 3 | 4 | 5 | 6 | But I'd really, really 7 | like to be able to use them in the middle of a line. 8 | 9 | -------------------------------------------------------------------------------- /Hoedown/test/Tests/Escape character.html: -------------------------------------------------------------------------------- 1 |

==Highlight==

2 | 3 |

~~Strikethrough~~

4 | 5 |

_Underscore_

6 | 7 |

_Underscore_

8 | 9 |

_Underscore_

10 | 11 |

_Underscore_

12 | 13 |

_Underscore_

14 | 15 |

*Asterisk*

16 | 17 |

*Asterisk*

18 | 19 |

*Asterisk*

20 | 21 |

*Asterisk*

22 | 23 |

*Asterisk*

24 | 25 |

[Bracket]

26 | 27 |

(Parenthesis)

28 | 29 |

<Chevron>

30 | 31 |

Super^script

32 | 33 |

`Backtick`

34 | 35 |

"Quote"

36 | 37 |

Foo\

38 | 39 |

Foo\*

40 | 41 |

Foo\\Bar\

42 | 43 |

*Foo\Bar\*

44 | 45 |

Foo]

46 | 47 |

Foo\

48 | 49 |

Foo\]

50 | 51 |

Foo\\

52 | -------------------------------------------------------------------------------- /Hoedown/test/Tests/Escape character.text: -------------------------------------------------------------------------------- 1 | \==Highlight\== 2 | 3 | \~~Strikethrough\~~ 4 | 5 | \_Underscore\_ 6 | 7 | \__Underscore\__ 8 | 9 | _\_Underscore_\_ 10 | 11 | \__Underscore_\_ 12 | 13 | _\_Underscore\__ 14 | 15 | \*Asterisk\* 16 | 17 | \**Asterisk\** 18 | 19 | \**Asterisk*\* 20 | 21 | *\*Asterisk\** 22 | 23 | *\*Asterisk*\* 24 | 25 | \[Bracket\] 26 | 27 | \(Parenthesis\) 28 | 29 | \ 30 | 31 | Super\^script 32 | 33 | \`Backtick\` 34 | 35 | \"Quote\" 36 | 37 | **Foo\\** 38 | 39 | *Foo\\\** 40 | 41 | **Foo\\\Bar\\** 42 | 43 | *Foo\\Bar\\\* 44 | 45 | [Foo\]](http://example.com) 46 | 47 | [Foo\\](http://example.com) 48 | 49 | [Foo\\\]](http://example.com) 50 | 51 | [Foo\\\\](http://example.com) 52 | -------------------------------------------------------------------------------- /Hoedown/test/Tests/Formatting in Table of Contents.html: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /Hoedown/test/Tests/Formatting in Table of Contents.text: -------------------------------------------------------------------------------- 1 | # Header with special & characters 2 | 3 | ## With `Code` 4 | 5 | ### With *Emphasis* 6 | -------------------------------------------------------------------------------- /Hoedown/test/Tests/Images.html: -------------------------------------------------------------------------------- 1 |

This is an image.

2 | 3 |

This is a tricky !image.

4 | 5 |

This is another tricky case: !not image.

6 | 7 |

This is a reference image.

8 | 9 |

Terminating !

10 | -------------------------------------------------------------------------------- /Hoedown/test/Tests/Images.text: -------------------------------------------------------------------------------- 1 | This is an ![image](/url). 2 | 3 | This is a tricky !![image](/url). 4 | 5 | This is another tricky case: \![not image](/url). 6 | 7 | This is a reference ![image][ref]. 8 | 9 | [ref]: /url2 10 | 11 | Terminating ! 12 | -------------------------------------------------------------------------------- /Hoedown/test/Tests/Math.html: -------------------------------------------------------------------------------- 1 |

\[ 2 | 1*2*3 multi-line math 3 | \]

4 | 5 |

\( 1*2*3 inline-math \)

6 | 7 |

\[ 1*2*3 math with dollar \]

8 | 9 |

\[ 1*2*3 \$ \\ \text{dollar with escapes} \]

10 | 11 |

\( \\ \text{backslash with escapes} \$ 1*2*3 \)

12 | 13 |

( not really math )

14 | 15 |

$$ also not math $$

16 | 17 |

this \(*should* be\) math

18 | 19 |

this\( *should* also be\) math

20 | 21 |

and \(this *should* \)too

22 | 23 |

Something \{ like math but \} is not

24 | 25 |

Also \(like math but \) is not

26 | 27 |

\\( should be *math* as well \\\)

28 | 29 |

This is \( math, and the \\\( inner one \\\) should be \) preserved

30 | 31 |

\[ did you <em> know </em> this is math? \]

32 | -------------------------------------------------------------------------------- /Hoedown/test/Tests/Math.text: -------------------------------------------------------------------------------- 1 | \\[ 2 | 1*2*3 multi-line math 3 | \\] 4 | 5 | \\( 1*2*3 inline-math \\) 6 | 7 | $$ 1*2*3 math with dollar $$ 8 | 9 | $$ 1*2*3 \$ \\ \text{dollar with escapes} $$ 10 | 11 | \\( \\ \text{backslash with escapes} \$ 1*2*3 \\) 12 | 13 | \( not *really* math \) 14 | 15 | \$$ also *not* math \$$ 16 | 17 | this $$*should* be$$ math 18 | 19 | this$$ *should* also be$$ math 20 | 21 | and $$this *should* $$too 22 | 23 | Something \\{ like *math* but \\} is not 24 | 25 | Also \\\(like *math* but \\\) is not 26 | 27 | \\\\( should be *math* as well \\\\) 28 | 29 | This is \\( math, and the \\\( inner one \\\) should be \\) preserved 30 | 31 | $$ did you know this is math? $$ 32 | -------------------------------------------------------------------------------- /Hoedown/test/Tests/Table.html: -------------------------------------------------------------------------------- 1 |

Standard table

2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
headline1headline2
123
17 | 18 | 19 |

Cell alignment

20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 |
headline1headline2headline3
123
37 | 38 | 39 |

Malformed table: missing cell at row in body

40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 |
headline1headline2headline3
12
34
56
67 | -------------------------------------------------------------------------------- /Hoedown/test/Tests/Table.text: -------------------------------------------------------------------------------- 1 | # Standard table 2 | 3 | |headline1|headline2| 4 | |---------|---------| 5 | |123 | | 6 | 7 | 8 | # Cell alignment 9 | 10 | |headline1|headline2|headline3| 11 | |:-------|:------:|------:| 12 | |123||| 13 | 14 | 15 | # Malformed table: missing cell at row in body 16 | 17 | |headline1|headline2|headline3| 18 | |-------|-------|-------| 19 | |12 20 | |34|| 21 | |56| 22 | -------------------------------------------------------------------------------- /Hoedown/test/Tests/Underline.html: -------------------------------------------------------------------------------- 1 |

This underline will work.

2 | -------------------------------------------------------------------------------- /Hoedown/test/Tests/Underline.text: -------------------------------------------------------------------------------- 1 | This _underline_ will work. 2 | -------------------------------------------------------------------------------- /Hoedown/test/runner.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | import difflib 5 | import json 6 | import os 7 | import re 8 | import subprocess 9 | import unittest 10 | 11 | TEST_ROOT = os.path.dirname(__file__) 12 | PROJECT_ROOT = os.path.dirname(TEST_ROOT) 13 | HOEDOWN = [os.path.abspath(os.path.join(PROJECT_ROOT, 'hoedown'))] 14 | TIDY = ['tidy', '--show-body-only', '1', '--show-warnings', '0', 15 | '--quiet', '1'] 16 | CONFIG_PATH = os.path.join(TEST_ROOT, 'config.json') 17 | SLUGIFY_PATTERN = re.compile(r'\W') 18 | 19 | 20 | def with_metaclass(meta, *bases): 21 | """Metaclass injection utility from six. 22 | 23 | See: https://pythonhosted.org/six/ 24 | """ 25 | class metaclass(meta): 26 | def __new__(cls, name, this_bases, d): 27 | return meta(name, bases, d) 28 | return type.__new__(metaclass, 'temporary_class', (), {}) 29 | 30 | 31 | class TestFailed(AssertionError): 32 | def __init__(self, name, expected, got): 33 | super(TestFailed, self).__init__(self) 34 | diff = difflib.unified_diff( 35 | expected.splitlines(), got.splitlines(), 36 | fromfile='Expected', tofile='Got', 37 | ) 38 | self.description = '{name}\n{diff}'.format( 39 | name=name, diff='\n'.join(diff), 40 | ) 41 | 42 | def __str__(self): 43 | return self.description 44 | 45 | 46 | def _test_func(test_case): 47 | flags = test_case.get('flags') or [] 48 | hoedown_proc = subprocess.Popen( 49 | HOEDOWN + flags + [os.path.join(TEST_ROOT, test_case['input'])], 50 | stdout=subprocess.PIPE, 51 | ) 52 | stdoutdata = hoedown_proc.communicate()[0] 53 | 54 | got_tidy_proc = subprocess.Popen( 55 | TIDY, stdin=subprocess.PIPE, stdout=subprocess.PIPE, 56 | ) 57 | got = got_tidy_proc.communicate(input=stdoutdata)[0].strip() 58 | 59 | expected_tidy_proc = subprocess.Popen( 60 | TIDY + [os.path.join(TEST_ROOT, test_case['output'])], 61 | stdout=subprocess.PIPE, 62 | ) 63 | expected = expected_tidy_proc.communicate()[0].strip() 64 | 65 | # Cleanup. 66 | hoedown_proc.stdout.close() 67 | got_tidy_proc.stdout.close() 68 | expected_tidy_proc.stdout.close() 69 | 70 | try: 71 | assert expected == got 72 | except AssertionError: 73 | raise TestFailed(test_case['input'], expected, got) 74 | 75 | 76 | def _make_test(test_case): 77 | return lambda self: _test_func(test_case) 78 | 79 | 80 | class MarkdownTestsMeta(type): 81 | """Meta class for ``MarkdownTestCase`` to inject test cases on the fly. 82 | """ 83 | def __new__(meta, name, bases, attrs): 84 | with open(CONFIG_PATH) as f: 85 | config = json.load(f) 86 | 87 | for test in config['tests']: 88 | input_name = test['input'] 89 | attr_name = 'test_' + SLUGIFY_PATTERN.sub( 90 | '_', os.path.splitext(input_name)[0].lower(), 91 | ) 92 | func = _make_test(test) 93 | func.__doc__ = input_name 94 | if test.get('skip', False): 95 | func = unittest.skip(input_name)(func) 96 | if test.get('fail', False): 97 | func = unittest.expectsFailure(func) 98 | attrs[attr_name] = func 99 | return type.__new__(meta, name, bases, attrs) 100 | 101 | 102 | class MarkdownTests(with_metaclass(MarkdownTestsMeta, unittest.TestCase)): 103 | pass 104 | 105 | 106 | if __name__ == '__main__': 107 | unittest.main() 108 | -------------------------------------------------------------------------------- /MarkdownView.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.28010.2036 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MarkdownView", "HTMLView\MarkdownView.vcxproj", "{4484CE9C-8224-484D-AEB9-03B2A9449DEF}" 7 | ProjectSection(ProjectDependencies) = postProject 8 | {68DC0090-5AA4-4450-AD7B-2EAC4F35E583} = {68DC0090-5AA4-4450-AD7B-2EAC4F35E583} 9 | EndProjectSection 10 | EndProject 11 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hoedown", "Hoedown\hoedown.vcxproj", "{43D67A53-AB8C-4B9B-A610-0D3A8E66C555}" 12 | ProjectSection(ProjectDependencies) = postProject 13 | {68DC0090-5AA4-4450-AD7B-2EAC4F35E583} = {68DC0090-5AA4-4450-AD7B-2EAC4F35E583} 14 | {7A6D11D0-D731-4B55-A541-9D4BF4B8D4AC} = {7A6D11D0-D731-4B55-A541-9D4BF4B8D4AC} 15 | EndProjectSection 16 | EndProject 17 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hoedown-lib", "Hoedown\hoedown-lib.vcxproj", "{68DC0090-5AA4-4450-AD7B-2EAC4F35E583}" 18 | EndProject 19 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "smartypants", "Hoedown\smartypants.vcxproj", "{7A6D11D0-D731-4B55-A541-9D4BF4B8D4AC}" 20 | ProjectSection(ProjectDependencies) = postProject 21 | {68DC0090-5AA4-4450-AD7B-2EAC4F35E583} = {68DC0090-5AA4-4450-AD7B-2EAC4F35E583} 22 | EndProjectSection 23 | EndProject 24 | Global 25 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 26 | Debug|Win32 = Debug|Win32 27 | Debug|x64 = Debug|x64 28 | Release|Win32 = Release|Win32 29 | Release|x64 = Release|x64 30 | EndGlobalSection 31 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 32 | {4484CE9C-8224-484D-AEB9-03B2A9449DEF}.Debug|Win32.ActiveCfg = Debug|Win32 33 | {4484CE9C-8224-484D-AEB9-03B2A9449DEF}.Debug|Win32.Build.0 = Debug|Win32 34 | {4484CE9C-8224-484D-AEB9-03B2A9449DEF}.Debug|x64.ActiveCfg = Debug|x64 35 | {4484CE9C-8224-484D-AEB9-03B2A9449DEF}.Debug|x64.Build.0 = Debug|x64 36 | {4484CE9C-8224-484D-AEB9-03B2A9449DEF}.Release|Win32.ActiveCfg = Release|Win32 37 | {4484CE9C-8224-484D-AEB9-03B2A9449DEF}.Release|Win32.Build.0 = Release|Win32 38 | {4484CE9C-8224-484D-AEB9-03B2A9449DEF}.Release|x64.ActiveCfg = Release|x64 39 | {4484CE9C-8224-484D-AEB9-03B2A9449DEF}.Release|x64.Build.0 = Release|x64 40 | {43D67A53-AB8C-4B9B-A610-0D3A8E66C555}.Debug|Win32.ActiveCfg = Debug|Win32 41 | {43D67A53-AB8C-4B9B-A610-0D3A8E66C555}.Debug|Win32.Build.0 = Debug|Win32 42 | {43D67A53-AB8C-4B9B-A610-0D3A8E66C555}.Debug|x64.ActiveCfg = Debug|x64 43 | {43D67A53-AB8C-4B9B-A610-0D3A8E66C555}.Debug|x64.Build.0 = Debug|x64 44 | {43D67A53-AB8C-4B9B-A610-0D3A8E66C555}.Release|Win32.ActiveCfg = Release|Win32 45 | {43D67A53-AB8C-4B9B-A610-0D3A8E66C555}.Release|Win32.Build.0 = Release|Win32 46 | {43D67A53-AB8C-4B9B-A610-0D3A8E66C555}.Release|x64.ActiveCfg = Release|x64 47 | {43D67A53-AB8C-4B9B-A610-0D3A8E66C555}.Release|x64.Build.0 = Release|x64 48 | {68DC0090-5AA4-4450-AD7B-2EAC4F35E583}.Debug|Win32.ActiveCfg = Debug|Win32 49 | {68DC0090-5AA4-4450-AD7B-2EAC4F35E583}.Debug|Win32.Build.0 = Debug|Win32 50 | {68DC0090-5AA4-4450-AD7B-2EAC4F35E583}.Debug|x64.ActiveCfg = Debug|x64 51 | {68DC0090-5AA4-4450-AD7B-2EAC4F35E583}.Debug|x64.Build.0 = Debug|x64 52 | {68DC0090-5AA4-4450-AD7B-2EAC4F35E583}.Release|Win32.ActiveCfg = Release|Win32 53 | {68DC0090-5AA4-4450-AD7B-2EAC4F35E583}.Release|Win32.Build.0 = Release|Win32 54 | {68DC0090-5AA4-4450-AD7B-2EAC4F35E583}.Release|x64.ActiveCfg = Release|x64 55 | {68DC0090-5AA4-4450-AD7B-2EAC4F35E583}.Release|x64.Build.0 = Release|x64 56 | {7A6D11D0-D731-4B55-A541-9D4BF4B8D4AC}.Debug|Win32.ActiveCfg = Debug|Win32 57 | {7A6D11D0-D731-4B55-A541-9D4BF4B8D4AC}.Debug|Win32.Build.0 = Debug|Win32 58 | {7A6D11D0-D731-4B55-A541-9D4BF4B8D4AC}.Debug|x64.ActiveCfg = Debug|x64 59 | {7A6D11D0-D731-4B55-A541-9D4BF4B8D4AC}.Debug|x64.Build.0 = Debug|x64 60 | {7A6D11D0-D731-4B55-A541-9D4BF4B8D4AC}.Release|Win32.ActiveCfg = Release|Win32 61 | {7A6D11D0-D731-4B55-A541-9D4BF4B8D4AC}.Release|Win32.Build.0 = Release|Win32 62 | {7A6D11D0-D731-4B55-A541-9D4BF4B8D4AC}.Release|x64.ActiveCfg = Release|x64 63 | {7A6D11D0-D731-4B55-A541-9D4BF4B8D4AC}.Release|x64.Build.0 = Release|x64 64 | EndGlobalSection 65 | GlobalSection(SolutionProperties) = preSolution 66 | HideSolutionNode = FALSE 67 | EndGlobalSection 68 | GlobalSection(ExtensibilityGlobals) = postSolution 69 | SolutionGuid = {C1144FB4-DF60-4529-9A25-8B389BB7F947} 70 | EndGlobalSection 71 | EndGlobal 72 | -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | # WLX Markdown Viewer 2 | 3 | HTML + Markdown lister plugin for Total Commander (32/64-bit version) 4 | 5 | Based on [HTMLView 1.2.6 source](http://sites.google.com/site/htmlview/), this plugin supports the original HTMLView functionality and displays Markdown files via [hoedown](https://github.com/hoedown/hoedown). Markdown rendering should work reliably for UTF-8 and UTF-16 encoded files (file format is detected with [text-encoding-detect](https://github.com/AutoItConsulting/text-encoding-detect)). For other encodings, Internet Explorer-based autodetection is used, so results may vary. 6 | 7 | ## Fine Tuning 8 | 9 | Plugin configuration is specified in `MarkdownView.ini`. Markdown-related settings are: 10 | 11 | * `MarkdownExtensions`: file extensions recognized by the plugin as markdown files. 12 | * `HoedownArgs`: custom arguments passed to the hoedown engine (control fine settings of markdown rendering). 13 | * `UseSmartypants`: controls whether `smartypants` should be invoked after processing. 14 | * `CustomCSS`: a path to a CSS sheet for customizing the resulting look of the document. A collection of four sheets from [Markdown CSS](https://markdowncss.github.io/) and six Github-inspired sheets courtesy of S. Kuznetsov is included into the package. 15 | 16 | For more information on `hoedown` arguments and `smartypants` functionality, check [this quick reference](https://htmlpreview.github.io?https://raw.githubusercontent.com/rg-software/wlx-markdown-viewer/master/hoedown.html). 17 | 18 | ## Internet Explorer Update 19 | 20 | The plugin is based on an obsolete Internet Explorer engine, which can be upgraded via [registry hacks](https://github.com/rg-software/wlx-markdown-viewer/raw/master/ie_upgrade_registry.zip) (check [MSDN](https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/general-info/ee330730(v=vs.85)?redirectedfrom=MSDN#browser-emulation) for details.) 21 | 22 | ## Setup 23 | 24 | The binary plugin archive comes with the setup script. Just enter the archive, and confirm installation. 25 | 26 | ## Development 27 | 28 | The current project file can be compiled with Visual Studio 2022. However, if Windows XP support is needed, Visual Studio 2019 version 16.7 or earlier [must be used](https://learn.microsoft.com/en-us/cpp/build/configuring-programs-for-windows-xp?view=msvc-170#windows-xp-deployment). In any case, the code is currently compiled with `141_xp` toolset (enable `Windows XP support for C++` option in the optional components of the `Desktop development with C++` workload to install it). Note that `/Zc:threadSafeInit-` compiler switch is needed for Windows XP. 29 | -------------------------------------------------------------------------------- /boost/config.hpp: -------------------------------------------------------------------------------- 1 | // Boost config.hpp configuration header file ------------------------------// 2 | 3 | // (C) Copyright John Maddock 2002. 4 | // Use, modification and distribution are subject to the 5 | // Boost Software License, Version 1.0. (See accompanying file 6 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | 8 | // See http://www.boost.org/libs/config for most recent version. 9 | 10 | // Boost config.hpp policy and rationale documentation has been moved to 11 | // http://www.boost.org/libs/config 12 | // 13 | // CAUTION: This file is intended to be completely stable - 14 | // DO NOT MODIFY THIS FILE! 15 | // 16 | 17 | #ifndef BOOST_CONFIG_HPP 18 | #define BOOST_CONFIG_HPP 19 | 20 | // if we don't have a user config, then use the default location: 21 | #if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG) 22 | # define BOOST_USER_CONFIG 23 | #if 0 24 | // For dependency trackers: 25 | # include 26 | #endif 27 | #endif 28 | // include it first: 29 | #ifdef BOOST_USER_CONFIG 30 | # include BOOST_USER_CONFIG 31 | #endif 32 | 33 | // if we don't have a compiler config set, try and find one: 34 | #if !defined(BOOST_COMPILER_CONFIG) && !defined(BOOST_NO_COMPILER_CONFIG) && !defined(BOOST_NO_CONFIG) 35 | # include 36 | #endif 37 | // if we have a compiler config, include it now: 38 | #ifdef BOOST_COMPILER_CONFIG 39 | # include BOOST_COMPILER_CONFIG 40 | #endif 41 | 42 | // if we don't have a std library config set, try and find one: 43 | #if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG) && defined(__cplusplus) 44 | # include 45 | #endif 46 | // if we have a std library config, include it now: 47 | #ifdef BOOST_STDLIB_CONFIG 48 | # include BOOST_STDLIB_CONFIG 49 | #endif 50 | 51 | // if we don't have a platform config set, try and find one: 52 | #if !defined(BOOST_PLATFORM_CONFIG) && !defined(BOOST_NO_PLATFORM_CONFIG) && !defined(BOOST_NO_CONFIG) 53 | # include 54 | #endif 55 | // if we have a platform config, include it now: 56 | #ifdef BOOST_PLATFORM_CONFIG 57 | # include BOOST_PLATFORM_CONFIG 58 | #endif 59 | 60 | // get config suffix code: 61 | #include 62 | 63 | #ifdef BOOST_HAS_PRAGMA_ONCE 64 | #pragma once 65 | #endif 66 | 67 | #endif // BOOST_CONFIG_HPP 68 | -------------------------------------------------------------------------------- /boost/config/abi/borland_prefix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // for C++ Builder the following options effect the ABI: 7 | // 8 | // -b (on or off - effect emum sizes) 9 | // -Vx (on or off - empty members) 10 | // -Ve (on or off - empty base classes) 11 | // -aX (alignment - 5 options). 12 | // -pX (Calling convention - 4 options) 13 | // -VmX (member pointer size and layout - 5 options) 14 | // -VC (on or off, changes name mangling) 15 | // -Vl (on or off, changes struct layout). 16 | 17 | // In addition the following warnings are sufficiently annoying (and 18 | // unfixable) to have them turned off by default: 19 | // 20 | // 8027 - functions containing [for|while] loops are not expanded inline 21 | // 8026 - functions taking class by value arguments are not expanded inline 22 | 23 | #pragma nopushoptwarn 24 | # pragma option push -a8 -Vx- -Ve- -b- -pc -Vmv -VC- -Vl- -w-8027 -w-8026 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /boost/config/abi/borland_suffix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | # pragma option pop 7 | #pragma nopushoptwarn 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /boost/config/abi/msvc_prefix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // 7 | // Boost binaries are built with the compiler's default ABI settings, 8 | // if the user changes their default alignment in the VS IDE then their 9 | // code will no longer be binary compatible with the bjam built binaries 10 | // unless this header is included to force Boost code into a consistent ABI. 11 | // 12 | // Note that inclusion of this header is only necessary for libraries with 13 | // separate source, header only libraries DO NOT need this as long as all 14 | // translation units are built with the same options. 15 | // 16 | #if defined(_M_X64) 17 | # pragma pack(push,16) 18 | #else 19 | # pragma pack(push,8) 20 | #endif 21 | 22 | 23 | -------------------------------------------------------------------------------- /boost/config/abi/msvc_suffix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #pragma pack(pop) 7 | 8 | 9 | -------------------------------------------------------------------------------- /boost/config/abi_prefix.hpp: -------------------------------------------------------------------------------- 1 | // abi_prefix header -------------------------------------------------------// 2 | 3 | // (c) Copyright John Maddock 2003 4 | 5 | // Use, modification and distribution are subject to the Boost Software License, 6 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt). 8 | 9 | #ifndef BOOST_CONFIG_ABI_PREFIX_HPP 10 | # define BOOST_CONFIG_ABI_PREFIX_HPP 11 | #else 12 | # error double inclusion of header boost/config/abi_prefix.hpp is an error 13 | #endif 14 | 15 | #include 16 | 17 | // this must occur after all other includes and before any code appears: 18 | #ifdef BOOST_HAS_ABI_HEADERS 19 | # include BOOST_ABI_PREFIX 20 | #endif 21 | 22 | #if defined( __BORLANDC__ ) 23 | #pragma nopushoptwarn 24 | #endif 25 | 26 | -------------------------------------------------------------------------------- /boost/config/abi_suffix.hpp: -------------------------------------------------------------------------------- 1 | // abi_sufffix header -------------------------------------------------------// 2 | 3 | // (c) Copyright John Maddock 2003 4 | 5 | // Use, modification and distribution are subject to the Boost Software License, 6 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt). 8 | 9 | // This header should be #included AFTER code that was preceded by a #include 10 | // . 11 | 12 | #ifndef BOOST_CONFIG_ABI_PREFIX_HPP 13 | # error Header boost/config/abi_suffix.hpp must only be used after boost/config/abi_prefix.hpp 14 | #else 15 | # undef BOOST_CONFIG_ABI_PREFIX_HPP 16 | #endif 17 | 18 | // the suffix header occurs after all of our code: 19 | #ifdef BOOST_HAS_ABI_HEADERS 20 | # include BOOST_ABI_SUFFIX 21 | #endif 22 | 23 | #if defined( __BORLANDC__ ) 24 | #pragma nopushoptwarn 25 | #endif 26 | 27 | 28 | -------------------------------------------------------------------------------- /boost/config/compiler/comeau.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001. 2 | // (C) Copyright Douglas Gregor 2001. 3 | // (C) Copyright Peter Dimov 2001. 4 | // (C) Copyright Aleksey Gurtovoy 2003. 5 | // (C) Copyright Beman Dawes 2003. 6 | // (C) Copyright Jens Maurer 2003. 7 | // Use, modification and distribution are subject to the 8 | // Boost Software License, Version 1.0. (See accompanying file 9 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 10 | 11 | // See http://www.boost.org for most recent version. 12 | 13 | // Comeau C++ compiler setup: 14 | 15 | #include 16 | 17 | #if (__COMO_VERSION__ <= 4245) 18 | 19 | # if defined(_MSC_VER) && _MSC_VER <= 1300 20 | # if _MSC_VER > 100 21 | // only set this in non-strict mode: 22 | # define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP 23 | # endif 24 | # endif 25 | 26 | // Void returns don't work when emulating VC 6 (Peter Dimov) 27 | // TODO: look up if this doesn't apply to the whole 12xx range 28 | # if defined(_MSC_VER) && (_MSC_VER < 1300) 29 | # define BOOST_NO_VOID_RETURNS 30 | # endif 31 | 32 | #endif // version 4245 33 | 34 | // 35 | // enable __int64 support in VC emulation mode 36 | // 37 | # if defined(_MSC_VER) && (_MSC_VER >= 1200) 38 | # define BOOST_HAS_MS_INT64 39 | # endif 40 | 41 | #define BOOST_COMPILER "Comeau compiler version " BOOST_STRINGIZE(__COMO_VERSION__) 42 | 43 | // 44 | // versions check: 45 | // we don't know Comeau prior to version 4245: 46 | #if __COMO_VERSION__ < 4245 47 | # error "Compiler not configured - please reconfigure" 48 | #endif 49 | // 50 | // last known and checked version is 4245: 51 | #if (__COMO_VERSION__ > 4245) 52 | # if defined(BOOST_ASSERT_CONFIG) 53 | # error "Unknown compiler version - please run the configure tests and report the results" 54 | # endif 55 | #endif 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /boost/config/compiler/compaq_cxx.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // Tru64 C++ compiler setup (now HP): 9 | 10 | #define BOOST_COMPILER "HP Tru64 C++ " BOOST_STRINGIZE(__DECCXX_VER) 11 | 12 | #include 13 | 14 | // 15 | // versions check: 16 | // Nothing to do here? 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /boost/config/compiler/diab.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Brian Kuhl 2016. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // Check this is a recent EDG based compiler, otherwise we don't support it here: 7 | 8 | 9 | #ifndef __EDG_VERSION__ 10 | # error "Unknown Diab compiler version - please run the configure tests and report the results" 11 | #endif 12 | 13 | #include "boost/config/compiler/common_edg.hpp" 14 | 15 | #define BOOST_NO_TWO_PHASE_NAME_LOOKUP 16 | #define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS 17 | 18 | #define BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE 19 | #define BOOST_LOG_NO_MEMBER_TEMPLATE_FRIENDS 20 | #define BOOST_REGEX_NO_EXTERNAL_TEMPLATES 21 | 22 | #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST 23 | #define BOOST_NO_CXX11_HDR_CODECVT 24 | #define BOOST_NO_CXX11_NUMERIC_LIMITS 25 | 26 | #define BOOST_COMPILER "Wind River Diab " BOOST_STRINGIZE(__VERSION_NUMBER__) 27 | -------------------------------------------------------------------------------- /boost/config/compiler/greenhills.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // Greenhills C++ compiler setup: 9 | 10 | #define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs) 11 | 12 | #include 13 | 14 | // 15 | // versions check: 16 | // we don't support Greenhills prior to version 0: 17 | #if __ghs < 0 18 | # error "Compiler not supported or configured - please reconfigure" 19 | #endif 20 | // 21 | // last known and checked version is 0: 22 | #if (__ghs > 0) 23 | # if defined(BOOST_ASSERT_CONFIG) 24 | # error "Unknown compiler version - please run the configure tests and report the results" 25 | # endif 26 | #endif 27 | 28 | 29 | -------------------------------------------------------------------------------- /boost/config/compiler/kai.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001. 2 | // (C) Copyright David Abrahams 2002. 3 | // (C) Copyright Aleksey Gurtovoy 2002. 4 | // Use, modification and distribution are subject to the 5 | // Boost Software License, Version 1.0. (See accompanying file 6 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | 8 | // See http://www.boost.org for most recent version. 9 | 10 | // Kai C++ compiler setup: 11 | 12 | #include 13 | 14 | # if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG) 15 | // at least on Sun, the contents of is not in namespace std 16 | # define BOOST_NO_STDC_NAMESPACE 17 | # endif 18 | 19 | // see also common_edg.hpp which needs a special check for __KCC 20 | # if !defined(_EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS) 21 | # define BOOST_NO_EXCEPTIONS 22 | # endif 23 | 24 | // 25 | // last known and checked version is 4001: 26 | #if (__KCC_VERSION > 4001) 27 | # if defined(BOOST_ASSERT_CONFIG) 28 | # error "Unknown compiler version - please run the configure tests and report the results" 29 | # endif 30 | #endif 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /boost/config/compiler/nvcc.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Eric Jourdanneau, Joel Falcou 2010 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // NVIDIA CUDA C++ compiler setup 9 | 10 | #ifndef BOOST_COMPILER 11 | # define BOOST_COMPILER "NVIDIA CUDA C++ Compiler" 12 | #endif 13 | 14 | #if defined(__CUDACC_VER_MAJOR__) && defined(__CUDACC_VER_MINOR__) && defined(__CUDACC_VER_BUILD__) 15 | # define BOOST_CUDA_VERSION (__CUDACC_VER_MAJOR__ * 1000000 + __CUDACC_VER_MINOR__ * 10000 + __CUDACC_VER_BUILD__) 16 | #else 17 | // We don't really know what the CUDA version is, but it's definitely before 7.5: 18 | # define BOOST_CUDA_VERSION 7000000 19 | #endif 20 | 21 | // NVIDIA Specific support 22 | // BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device 23 | #define BOOST_GPU_ENABLED __host__ __device__ 24 | 25 | // A bug in version 7.0 of CUDA prevents use of variadic templates in some occasions 26 | // https://svn.boost.org/trac/boost/ticket/11897 27 | // This is fixed in 7.5. As the following version macro was introduced in 7.5 an existance 28 | // check is enough to detect versions < 7.5 29 | #if BOOST_CUDA_VERSION < 7050000 30 | # define BOOST_NO_CXX11_VARIADIC_TEMPLATES 31 | #endif 32 | // The same bug is back again in 8.0: 33 | #if (BOOST_CUDA_VERSION > 8000000) && (BOOST_CUDA_VERSION < 8010000) 34 | # define BOOST_NO_CXX11_VARIADIC_TEMPLATES 35 | #endif 36 | // CUDA (8.0) has no constexpr support in msvc mode: 37 | #if defined(_MSC_VER) && (BOOST_CUDA_VERSION < 9000000) 38 | # define BOOST_NO_CXX11_CONSTEXPR 39 | #endif 40 | 41 | #ifdef __CUDACC__ 42 | // 43 | // When compiing .cu files, there's a bunch of stuff that doesn't work with msvc: 44 | // 45 | #if defined(_MSC_VER) 46 | # define BOOST_NO_CXX14_DIGIT_SEPARATORS 47 | # define BOOST_NO_CXX11_UNICODE_LITERALS 48 | #endif 49 | // 50 | // And this one effects the NVCC front end, 51 | // See https://svn.boost.org/trac/boost/ticket/13049 52 | // 53 | #if (BOOST_CUDA_VERSION >= 8000000) && (BOOST_CUDA_VERSION < 8010000) 54 | # define BOOST_NO_CXX11_NOEXCEPT 55 | #endif 56 | 57 | #endif 58 | 59 | -------------------------------------------------------------------------------- /boost/config/compiler/pgi.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Noel Belcourt 2007. 2 | // Copyright 2017, NVIDIA CORPORATION. 3 | // Use, modification and distribution are subject to the 4 | // Boost Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | // See http://www.boost.org for most recent version. 8 | 9 | // PGI C++ compiler setup: 10 | 11 | #define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__ 12 | #define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) 13 | 14 | // PGI is mostly GNU compatible. So start with that. 15 | #include 16 | 17 | // Now adjust for things that are different. 18 | 19 | // __float128 is a typedef, not a distinct type. 20 | #undef BOOST_HAS_FLOAT128 21 | 22 | // __int128 is not supported. 23 | #undef BOOST_HAS_INT128 24 | -------------------------------------------------------------------------------- /boost/config/compiler/sgi_mipspro.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2002. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // SGI C++ compiler setup: 9 | 10 | #define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION) 11 | 12 | #include 13 | 14 | // 15 | // Threading support: 16 | // Turn this on unconditionally here, it will get turned off again later 17 | // if no threading API is detected. 18 | // 19 | #define BOOST_HAS_THREADS 20 | #define BOOST_NO_TWO_PHASE_NAME_LOOKUP 21 | 22 | #undef BOOST_NO_SWPRINTF 23 | #undef BOOST_DEDUCED_TYPENAME 24 | 25 | // 26 | // version check: 27 | // probably nothing to do here? 28 | 29 | 30 | -------------------------------------------------------------------------------- /boost/config/detail/posix_features.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | 7 | // See http://www.boost.org for most recent version. 8 | 9 | // All POSIX feature tests go in this file, 10 | // Note that we test _POSIX_C_SOURCE and _XOPEN_SOURCE as well 11 | // _POSIX_VERSION and _XOPEN_VERSION: on some systems POSIX API's 12 | // may be present but none-functional unless _POSIX_C_SOURCE and 13 | // _XOPEN_SOURCE have been defined to the right value (it's up 14 | // to the user to do this *before* including any header, although 15 | // in most cases the compiler will do this for you). 16 | 17 | # if defined(BOOST_HAS_UNISTD_H) 18 | # include 19 | 20 | // XOpen has , but is this the correct version check? 21 | # if defined(_XOPEN_VERSION) && (_XOPEN_VERSION >= 3) 22 | # define BOOST_HAS_NL_TYPES_H 23 | # endif 24 | 25 | // POSIX version 6 requires 26 | # if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 200100) 27 | # define BOOST_HAS_STDINT_H 28 | # endif 29 | 30 | // POSIX version 2 requires 31 | # if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199009L) 32 | # define BOOST_HAS_DIRENT_H 33 | # endif 34 | 35 | // POSIX version 3 requires to have sigaction: 36 | # if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199506L) 37 | # define BOOST_HAS_SIGACTION 38 | # endif 39 | // POSIX defines _POSIX_THREADS > 0 for pthread support, 40 | // however some platforms define _POSIX_THREADS without 41 | // a value, hence the (_POSIX_THREADS+0 >= 0) check. 42 | // Strictly speaking this may catch platforms with a 43 | // non-functioning stub , but such occurrences should 44 | // occur very rarely if at all. 45 | # if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_MPTASKS) 46 | # define BOOST_HAS_PTHREADS 47 | # endif 48 | 49 | // BOOST_HAS_NANOSLEEP: 50 | // This is predicated on _POSIX_TIMERS or _XOPEN_REALTIME: 51 | # if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0)) \ 52 | || (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0)) 53 | # define BOOST_HAS_NANOSLEEP 54 | # endif 55 | 56 | // BOOST_HAS_CLOCK_GETTIME: 57 | // This is predicated on _POSIX_TIMERS (also on _XOPEN_REALTIME 58 | // but at least one platform - linux - defines that flag without 59 | // defining clock_gettime): 60 | # if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0)) 61 | # define BOOST_HAS_CLOCK_GETTIME 62 | # endif 63 | 64 | // BOOST_HAS_SCHED_YIELD: 65 | // This is predicated on _POSIX_PRIORITY_SCHEDULING or 66 | // on _POSIX_THREAD_PRIORITY_SCHEDULING or on _XOPEN_REALTIME. 67 | # if defined(_POSIX_PRIORITY_SCHEDULING) && (_POSIX_PRIORITY_SCHEDULING+0 > 0)\ 68 | || (defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING+0 > 0))\ 69 | || (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0)) 70 | # define BOOST_HAS_SCHED_YIELD 71 | # endif 72 | 73 | // BOOST_HAS_GETTIMEOFDAY: 74 | // BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE: 75 | // These are predicated on _XOPEN_VERSION, and appears to be first released 76 | // in issue 4, version 2 (_XOPEN_VERSION > 500). 77 | // Likewise for the functions log1p and expm1. 78 | # if defined(_XOPEN_VERSION) && (_XOPEN_VERSION+0 >= 500) 79 | # define BOOST_HAS_GETTIMEOFDAY 80 | # if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE+0 >= 500) 81 | # define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 82 | # endif 83 | # ifndef BOOST_HAS_LOG1P 84 | # define BOOST_HAS_LOG1P 85 | # endif 86 | # ifndef BOOST_HAS_EXPM1 87 | # define BOOST_HAS_EXPM1 88 | # endif 89 | # endif 90 | 91 | # endif 92 | 93 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /boost/config/header_deprecated.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_CONFIG_HEADER_DEPRECATED_HPP_INCLUDED 2 | #define BOOST_CONFIG_HEADER_DEPRECATED_HPP_INCLUDED 3 | 4 | // Copyright 2017 Peter Dimov. 5 | // 6 | // Distributed under the Boost Software License, Version 1.0. 7 | // 8 | // See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt 10 | // 11 | // BOOST_HEADER_DEPRECATED("") 12 | // 13 | // Expands to the equivalent of 14 | // BOOST_PRAGMA_MESSAGE("This header is deprecated. Use instead.") 15 | // 16 | // Note that this header is C compatible. 17 | 18 | #include 19 | 20 | #if defined(BOOST_ALLOW_DEPRECATED_HEADERS) 21 | # define BOOST_HEADER_DEPRECATED(a) 22 | #else 23 | # define BOOST_HEADER_DEPRECATED(a) BOOST_PRAGMA_MESSAGE("This header is deprecated. Use " a " instead.") 24 | #endif 25 | 26 | #endif // BOOST_CONFIG_HEADER_DEPRECATED_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /boost/config/helper_macros.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_CONFIG_HELPER_MACROS_HPP_INCLUDED 2 | #define BOOST_CONFIG_HELPER_MACROS_HPP_INCLUDED 3 | 4 | // Copyright 2001 John Maddock. 5 | // Copyright 2017 Peter Dimov. 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // 9 | // See accompanying file LICENSE_1_0.txt or copy at 10 | // http://www.boost.org/LICENSE_1_0.txt 11 | // 12 | // BOOST_STRINGIZE(X) 13 | // BOOST_JOIN(X, Y) 14 | // 15 | // Note that this header is C compatible. 16 | 17 | // 18 | // Helper macro BOOST_STRINGIZE: 19 | // Converts the parameter X to a string after macro replacement 20 | // on X has been performed. 21 | // 22 | #define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X) 23 | #define BOOST_DO_STRINGIZE(X) #X 24 | 25 | // 26 | // Helper macro BOOST_JOIN: 27 | // The following piece of macro magic joins the two 28 | // arguments together, even when one of the arguments is 29 | // itself a macro (see 16.3.1 in C++ standard). The key 30 | // is that macro expansion of macro arguments does not 31 | // occur in BOOST_DO_JOIN2 but does in BOOST_DO_JOIN. 32 | // 33 | #define BOOST_JOIN(X, Y) BOOST_DO_JOIN(X, Y) 34 | #define BOOST_DO_JOIN(X, Y) BOOST_DO_JOIN2(X,Y) 35 | #define BOOST_DO_JOIN2(X, Y) X##Y 36 | 37 | #endif // BOOST_CONFIG_HELPER_MACROS_HPP_INCLUDED 38 | -------------------------------------------------------------------------------- /boost/config/no_tr1/cmath.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2008. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // The aim of this header is just to include but to do 7 | // so in a way that does not result in recursive inclusion of 8 | // the Boost TR1 components if boost/tr1/tr1/cmath is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_CMATH 14 | # define BOOST_CONFIG_CMATH 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_CMATH_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_CMATH_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_CMATH_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /boost/config/no_tr1/complex.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2005. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // The aim of this header is just to include but to do 7 | // so in a way that does not result in recursive inclusion of 8 | // the Boost TR1 components if boost/tr1/tr1/complex is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_COMPLEX 14 | # define BOOST_CONFIG_COMPLEX 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_COMPLEX_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_COMPLEX_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_COMPLEX_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /boost/config/no_tr1/functional.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2005. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // The aim of this header is just to include but to do 7 | // so in a way that does not result in recursive inclusion of 8 | // the Boost TR1 components if boost/tr1/tr1/functional is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_FUNCTIONAL 14 | # define BOOST_CONFIG_FUNCTIONAL 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_FUNCTIONAL_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /boost/config/no_tr1/memory.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2005. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // The aim of this header is just to include but to do 7 | // so in a way that does not result in recursive inclusion of 8 | // the Boost TR1 components if boost/tr1/tr1/memory is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_MEMORY 14 | # define BOOST_CONFIG_MEMORY 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_MEMORY_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_MEMORY_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_MEMORY_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /boost/config/no_tr1/utility.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2005. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // The aim of this header is just to include but to do 7 | // so in a way that does not result in recursive inclusion of 8 | // the Boost TR1 components if boost/tr1/tr1/utility is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_UTILITY 14 | # define BOOST_CONFIG_UTILITY 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_UTILITY_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_UTILITY_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_UTILITY_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /boost/config/platform/aix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2002. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // IBM/Aix specific config options: 9 | 10 | #define BOOST_PLATFORM "IBM Aix" 11 | 12 | #define BOOST_HAS_UNISTD_H 13 | #define BOOST_HAS_NL_TYPES_H 14 | #define BOOST_HAS_NANOSLEEP 15 | #define BOOST_HAS_CLOCK_GETTIME 16 | 17 | // This needs support in "boost/cstdint.hpp" exactly like FreeBSD. 18 | // This platform has header named which includes all 19 | // the things needed. 20 | #define BOOST_HAS_STDINT_H 21 | 22 | // Threading API's: 23 | #define BOOST_HAS_PTHREADS 24 | #define BOOST_HAS_PTHREAD_DELAY_NP 25 | #define BOOST_HAS_SCHED_YIELD 26 | //#define BOOST_HAS_PTHREAD_YIELD 27 | 28 | // boilerplate code: 29 | #include 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /boost/config/platform/amigaos.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2002. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | #define BOOST_PLATFORM "AmigaOS" 9 | 10 | #define BOOST_DISABLE_THREADS 11 | #define BOOST_NO_CWCHAR 12 | #define BOOST_NO_STD_WSTRING 13 | #define BOOST_NO_INTRINSIC_WCHAR_T 14 | 15 | 16 | -------------------------------------------------------------------------------- /boost/config/platform/beos.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // BeOS specific config options: 9 | 10 | #define BOOST_PLATFORM "BeOS" 11 | 12 | #define BOOST_NO_CWCHAR 13 | #define BOOST_NO_CWCTYPE 14 | #define BOOST_HAS_UNISTD_H 15 | 16 | #define BOOST_HAS_BETHREADS 17 | 18 | #ifndef BOOST_DISABLE_THREADS 19 | # define BOOST_HAS_THREADS 20 | #endif 21 | 22 | // boilerplate code: 23 | #include 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /boost/config/platform/bsd.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // (C) Copyright Darin Adler 2001. 3 | // (C) Copyright Douglas Gregor 2002. 4 | // Use, modification and distribution are subject to the 5 | // Boost Software License, Version 1.0. (See accompanying file 6 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | 8 | // See http://www.boost.org for most recent version. 9 | 10 | // generic BSD config options: 11 | 12 | #if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__) 13 | #error "This platform is not BSD" 14 | #endif 15 | 16 | #ifdef __FreeBSD__ 17 | #define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__) 18 | #elif defined(__NetBSD__) 19 | #define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__) 20 | #elif defined(__OpenBSD__) 21 | #define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__) 22 | #elif defined(__DragonFly__) 23 | #define BOOST_PLATFORM "DragonFly " BOOST_STRINGIZE(__DragonFly__) 24 | #endif 25 | 26 | // 27 | // is this the correct version check? 28 | // FreeBSD has but does not 29 | // advertise the fact in : 30 | // 31 | #if (defined(__FreeBSD__) && (__FreeBSD__ >= 3)) || defined(__DragonFly__) 32 | # define BOOST_HAS_NL_TYPES_H 33 | #endif 34 | 35 | // 36 | // FreeBSD 3.x has pthreads support, but defines _POSIX_THREADS in 37 | // and not in 38 | // 39 | #if (defined(__FreeBSD__) && (__FreeBSD__ <= 3))\ 40 | || defined(__OpenBSD__) || defined(__DragonFly__) 41 | # define BOOST_HAS_PTHREADS 42 | #endif 43 | 44 | // 45 | // No wide character support in the BSD header files: 46 | // 47 | #if defined(__NetBSD__) 48 | #define __NetBSD_GCC__ (__GNUC__ * 1000000 \ 49 | + __GNUC_MINOR__ * 1000 \ 50 | + __GNUC_PATCHLEVEL__) 51 | // XXX - the following is required until c++config.h 52 | // defines _GLIBCXX_HAVE_SWPRINTF and friends 53 | // or the preprocessor conditionals are removed 54 | // from the cwchar header. 55 | #define _GLIBCXX_HAVE_SWPRINTF 1 56 | #endif 57 | 58 | #if !((defined(__FreeBSD__) && (__FreeBSD__ >= 5)) \ 59 | || (defined(__NetBSD_GCC__) && (__NetBSD_GCC__ >= 2095003)) || defined(__DragonFly__)) 60 | # define BOOST_NO_CWCHAR 61 | #endif 62 | // 63 | // The BSD has macros only, no functions: 64 | // 65 | #if !defined(__OpenBSD__) || defined(__DragonFly__) 66 | # define BOOST_NO_CTYPE_FUNCTIONS 67 | #endif 68 | 69 | // 70 | // thread API's not auto detected: 71 | // 72 | #define BOOST_HAS_SCHED_YIELD 73 | #define BOOST_HAS_NANOSLEEP 74 | #define BOOST_HAS_GETTIMEOFDAY 75 | #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 76 | #define BOOST_HAS_SIGACTION 77 | 78 | // boilerplate code: 79 | #define BOOST_HAS_UNISTD_H 80 | #include 81 | 82 | 83 | 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /boost/config/platform/cloudabi.hpp: -------------------------------------------------------------------------------- 1 | // Copyright Nuxi, https://nuxi.nl/ 2015. 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #define BOOST_PLATFORM "CloudABI" 7 | 8 | #define BOOST_HAS_DIRENT_H 9 | #define BOOST_HAS_STDINT_H 10 | #define BOOST_HAS_UNISTD_H 11 | 12 | #define BOOST_HAS_CLOCK_GETTIME 13 | #define BOOST_HAS_EXPM1 14 | #define BOOST_HAS_GETTIMEOFDAY 15 | #define BOOST_HAS_LOG1P 16 | #define BOOST_HAS_NANOSLEEP 17 | #define BOOST_HAS_PTHREADS 18 | #define BOOST_HAS_SCHED_YIELD 19 | -------------------------------------------------------------------------------- /boost/config/platform/cray.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2011. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | 7 | // See http://www.boost.org for most recent version. 8 | 9 | // SGI Irix specific config options: 10 | 11 | #define BOOST_PLATFORM "Cray" 12 | 13 | // boilerplate code: 14 | #define BOOST_HAS_UNISTD_H 15 | #include 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /boost/config/platform/cygwin.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // cygwin specific config options: 9 | 10 | #define BOOST_PLATFORM "Cygwin" 11 | #define BOOST_HAS_DIRENT_H 12 | #define BOOST_HAS_LOG1P 13 | #define BOOST_HAS_EXPM1 14 | 15 | // 16 | // Threading API: 17 | // See if we have POSIX threads, if we do use them, otherwise 18 | // revert to native Win threads. 19 | #define BOOST_HAS_UNISTD_H 20 | #include 21 | #if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) 22 | # define BOOST_HAS_PTHREADS 23 | # define BOOST_HAS_SCHED_YIELD 24 | # define BOOST_HAS_GETTIMEOFDAY 25 | # define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 26 | //# define BOOST_HAS_SIGACTION 27 | #else 28 | # if !defined(BOOST_HAS_WINTHREADS) 29 | # define BOOST_HAS_WINTHREADS 30 | # endif 31 | # define BOOST_HAS_FTIME 32 | #endif 33 | 34 | // 35 | // find out if we have a stdint.h, there should be a better way to do this: 36 | // 37 | #include 38 | #ifdef _STDINT_H 39 | #define BOOST_HAS_STDINT_H 40 | #endif 41 | #if __GNUC__ > 5 && !defined(BOOST_HAS_STDINT_H) 42 | # define BOOST_HAS_STDINT_H 43 | #endif 44 | 45 | /// Cygwin has no fenv.h 46 | #define BOOST_NO_FENV_H 47 | 48 | // Cygwin has it's own which breaks unless the correct compiler flags are used: 49 | #ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX 50 | #include 51 | #if !(__XSI_VISIBLE >= 500 || __POSIX_VISIBLE >= 200112) 52 | # define BOOST_NO_CXX14_HDR_SHARED_MUTEX 53 | #endif 54 | #endif 55 | 56 | // boilerplate code: 57 | #include 58 | 59 | // 60 | // Cygwin lies about XSI conformance, there is no nl_types.h: 61 | // 62 | #ifdef BOOST_HAS_NL_TYPES_H 63 | # undef BOOST_HAS_NL_TYPES_H 64 | #endif 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /boost/config/platform/haiku.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Jessica Hamilton 2014. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // Haiku specific config options: 9 | 10 | #define BOOST_PLATFORM "Haiku" 11 | 12 | #define BOOST_HAS_UNISTD_H 13 | #define BOOST_HAS_STDINT_H 14 | 15 | #ifndef BOOST_DISABLE_THREADS 16 | # define BOOST_HAS_THREADS 17 | #endif 18 | 19 | #define BOOST_NO_CXX11_HDR_TYPE_TRAITS 20 | #define BOOST_NO_CXX11_ATOMIC_SMART_PTR 21 | #define BOOST_NO_CXX11_STATIC_ASSERT 22 | #define BOOST_NO_CXX11_VARIADIC_MACROS 23 | 24 | // 25 | // thread API's not auto detected: 26 | // 27 | #define BOOST_HAS_SCHED_YIELD 28 | #define BOOST_HAS_GETTIMEOFDAY 29 | 30 | // boilerplate code: 31 | #include 32 | -------------------------------------------------------------------------------- /boost/config/platform/hpux.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // (C) Copyright Jens Maurer 2001 - 2003. 3 | // (C) Copyright David Abrahams 2002. 4 | // (C) Copyright Toon Knapen 2003. 5 | // (C) Copyright Boris Gubenko 2006 - 2007. 6 | // Use, modification and distribution are subject to the 7 | // Boost Software License, Version 1.0. (See accompanying file 8 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 9 | 10 | // See http://www.boost.org for most recent version. 11 | 12 | // hpux specific config options: 13 | 14 | #define BOOST_PLATFORM "HP-UX" 15 | 16 | // In principle, HP-UX has a nice under the name 17 | // However, it has the following problem: 18 | // Use of UINT32_C(0) results in "0u l" for the preprocessed source 19 | // (verifyable with gcc 2.95.3) 20 | #if (defined(__GNUC__) && (__GNUC__ >= 3)) || defined(__HP_aCC) 21 | # define BOOST_HAS_STDINT_H 22 | #endif 23 | 24 | #if !(defined(__HP_aCC) || !defined(_INCLUDE__STDC_A1_SOURCE)) 25 | # define BOOST_NO_SWPRINTF 26 | #endif 27 | #if defined(__HP_aCC) && !defined(_INCLUDE__STDC_A1_SOURCE) 28 | # define BOOST_NO_CWCTYPE 29 | #endif 30 | 31 | #if defined(__GNUC__) 32 | # if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3)) 33 | // GNU C on HP-UX does not support threads (checked up to gcc 3.3) 34 | # define BOOST_DISABLE_THREADS 35 | # elif !defined(BOOST_DISABLE_THREADS) 36 | // threads supported from gcc-3.3 onwards: 37 | # define BOOST_HAS_THREADS 38 | # define BOOST_HAS_PTHREADS 39 | # endif 40 | #elif defined(__HP_aCC) && !defined(BOOST_DISABLE_THREADS) 41 | # define BOOST_HAS_PTHREADS 42 | #endif 43 | 44 | // boilerplate code: 45 | #define BOOST_HAS_UNISTD_H 46 | #include 47 | 48 | // the following are always available: 49 | #ifndef BOOST_HAS_GETTIMEOFDAY 50 | # define BOOST_HAS_GETTIMEOFDAY 51 | #endif 52 | #ifndef BOOST_HAS_SCHED_YIELD 53 | # define BOOST_HAS_SCHED_YIELD 54 | #endif 55 | #ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 56 | # define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 57 | #endif 58 | #ifndef BOOST_HAS_NL_TYPES_H 59 | # define BOOST_HAS_NL_TYPES_H 60 | #endif 61 | #ifndef BOOST_HAS_NANOSLEEP 62 | # define BOOST_HAS_NANOSLEEP 63 | #endif 64 | #ifndef BOOST_HAS_GETTIMEOFDAY 65 | # define BOOST_HAS_GETTIMEOFDAY 66 | #endif 67 | #ifndef BOOST_HAS_DIRENT_H 68 | # define BOOST_HAS_DIRENT_H 69 | #endif 70 | #ifndef BOOST_HAS_CLOCK_GETTIME 71 | # define BOOST_HAS_CLOCK_GETTIME 72 | #endif 73 | #ifndef BOOST_HAS_SIGACTION 74 | # define BOOST_HAS_SIGACTION 75 | #endif 76 | #ifndef BOOST_HAS_NRVO 77 | # ifndef __parisc 78 | # define BOOST_HAS_NRVO 79 | # endif 80 | #endif 81 | #ifndef BOOST_HAS_LOG1P 82 | # define BOOST_HAS_LOG1P 83 | #endif 84 | #ifndef BOOST_HAS_EXPM1 85 | # define BOOST_HAS_EXPM1 86 | #endif 87 | 88 | -------------------------------------------------------------------------------- /boost/config/platform/irix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // (C) Copyright Jens Maurer 2003. 3 | // Use, modification and distribution are subject to the 4 | // Boost Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | 8 | // See http://www.boost.org for most recent version. 9 | 10 | // SGI Irix specific config options: 11 | 12 | #define BOOST_PLATFORM "SGI Irix" 13 | 14 | #define BOOST_NO_SWPRINTF 15 | // 16 | // these are not auto detected by POSIX feature tests: 17 | // 18 | #define BOOST_HAS_GETTIMEOFDAY 19 | #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 20 | 21 | #ifdef __GNUC__ 22 | // GNU C on IRIX does not support threads (checked up to gcc 3.3) 23 | # define BOOST_DISABLE_THREADS 24 | #endif 25 | 26 | // boilerplate code: 27 | #define BOOST_HAS_UNISTD_H 28 | #include 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /boost/config/platform/linux.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // (C) Copyright Jens Maurer 2001 - 2003. 3 | // Use, modification and distribution are subject to the 4 | // Boost Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | // See http://www.boost.org for most recent version. 8 | 9 | // linux specific config options: 10 | 11 | #define BOOST_PLATFORM "linux" 12 | 13 | // make sure we have __GLIBC_PREREQ if available at all 14 | #ifdef __cplusplus 15 | #include 16 | #else 17 | #include 18 | #endif 19 | 20 | // 21 | // added to glibc 2.1.1 22 | // We can only test for 2.1 though: 23 | // 24 | #if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1))) 25 | // defines int64_t unconditionally, but defines 26 | // int64_t only if __GNUC__. Thus, assume a fully usable 27 | // only when using GCC. Update 2017: this appears not to be the case for 28 | // recent glibc releases, see bug report: https://svn.boost.org/trac/boost/ticket/13045 29 | # if defined(__GNUC__) || ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 5))) 30 | # define BOOST_HAS_STDINT_H 31 | # endif 32 | #endif 33 | 34 | #if defined(__LIBCOMO__) 35 | // 36 | // como on linux doesn't have std:: c functions: 37 | // NOTE: versions of libcomo prior to beta28 have octal version numbering, 38 | // e.g. version 25 is 21 (dec) 39 | // 40 | # if __LIBCOMO_VERSION__ <= 20 41 | # define BOOST_NO_STDC_NAMESPACE 42 | # endif 43 | 44 | # if __LIBCOMO_VERSION__ <= 21 45 | # define BOOST_NO_SWPRINTF 46 | # endif 47 | 48 | #endif 49 | 50 | // 51 | // If glibc is past version 2 then we definitely have 52 | // gettimeofday, earlier versions may or may not have it: 53 | // 54 | #if defined(__GLIBC__) && (__GLIBC__ >= 2) 55 | # define BOOST_HAS_GETTIMEOFDAY 56 | #endif 57 | 58 | #ifdef __USE_POSIX199309 59 | # define BOOST_HAS_NANOSLEEP 60 | #endif 61 | 62 | #if defined(__GLIBC__) && defined(__GLIBC_PREREQ) 63 | // __GLIBC_PREREQ is available since 2.1.2 64 | 65 | // swprintf is available since glibc 2.2.0 66 | # if !__GLIBC_PREREQ(2,2) || (!defined(__USE_ISOC99) && !defined(__USE_UNIX98)) 67 | # define BOOST_NO_SWPRINTF 68 | # endif 69 | #else 70 | # define BOOST_NO_SWPRINTF 71 | #endif 72 | 73 | // boilerplate code: 74 | #define BOOST_HAS_UNISTD_H 75 | #include 76 | #if defined(__USE_GNU) && !defined(__ANDROID__) && !defined(ANDROID) 77 | #define BOOST_HAS_PTHREAD_YIELD 78 | #endif 79 | 80 | #ifndef __GNUC__ 81 | // 82 | // if the compiler is not gcc we still need to be able to parse 83 | // the GNU system headers, some of which (mainly ) 84 | // use GNU specific extensions: 85 | // 86 | # ifndef __extension__ 87 | # define __extension__ 88 | # endif 89 | # ifndef __const__ 90 | # define __const__ const 91 | # endif 92 | # ifndef __volatile__ 93 | # define __volatile__ volatile 94 | # endif 95 | # ifndef __signed__ 96 | # define __signed__ signed 97 | # endif 98 | # ifndef __typeof__ 99 | # define __typeof__ typeof 100 | # endif 101 | # ifndef __inline__ 102 | # define __inline__ inline 103 | # endif 104 | #endif 105 | 106 | 107 | -------------------------------------------------------------------------------- /boost/config/platform/macos.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // (C) Copyright Darin Adler 2001 - 2002. 3 | // (C) Copyright Bill Kempf 2002. 4 | // Use, modification and distribution are subject to the 5 | // Boost Software License, Version 1.0. (See accompanying file 6 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | 8 | // See http://www.boost.org for most recent version. 9 | 10 | // Mac OS specific config options: 11 | 12 | #define BOOST_PLATFORM "Mac OS" 13 | 14 | #if __MACH__ && !defined(_MSL_USING_MSL_C) 15 | 16 | // Using the Mac OS X system BSD-style C library. 17 | 18 | # ifndef BOOST_HAS_UNISTD_H 19 | # define BOOST_HAS_UNISTD_H 20 | # endif 21 | // 22 | // Begin by including our boilerplate code for POSIX 23 | // feature detection, this is safe even when using 24 | // the MSL as Metrowerks supply their own 25 | // to replace the platform-native BSD one. G++ users 26 | // should also always be able to do this on MaxOS X. 27 | // 28 | # include 29 | # ifndef BOOST_HAS_STDINT_H 30 | # define BOOST_HAS_STDINT_H 31 | # endif 32 | 33 | // 34 | // BSD runtime has pthreads, sigaction, sched_yield and gettimeofday, 35 | // of these only pthreads are advertised in , so set the 36 | // other options explicitly: 37 | // 38 | # define BOOST_HAS_SCHED_YIELD 39 | # define BOOST_HAS_GETTIMEOFDAY 40 | # define BOOST_HAS_SIGACTION 41 | 42 | # if (__GNUC__ < 3) && !defined( __APPLE_CC__) 43 | 44 | // GCC strange "ignore std" mode works better if you pretend everything 45 | // is in the std namespace, for the most part. 46 | 47 | # define BOOST_NO_STDC_NAMESPACE 48 | # endif 49 | 50 | # if (__GNUC__ >= 4) 51 | 52 | // Both gcc and intel require these. 53 | # define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 54 | # define BOOST_HAS_NANOSLEEP 55 | 56 | # endif 57 | 58 | #else 59 | 60 | // Using the MSL C library. 61 | 62 | // We will eventually support threads in non-Carbon builds, but we do 63 | // not support this yet. 64 | # if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON ) 65 | 66 | # if !defined(BOOST_HAS_PTHREADS) 67 | // MPTasks support is deprecated/removed from Boost: 68 | //# define BOOST_HAS_MPTASKS 69 | # elif ( __dest_os == __mac_os_x ) 70 | // We are doing a Carbon/Mach-O/MSL build which has pthreads, but only the 71 | // gettimeofday and no posix. 72 | # define BOOST_HAS_GETTIMEOFDAY 73 | # endif 74 | 75 | #ifdef BOOST_HAS_PTHREADS 76 | # define BOOST_HAS_THREADS 77 | #endif 78 | 79 | // The remote call manager depends on this. 80 | # define BOOST_BIND_ENABLE_PASCAL 81 | 82 | # endif 83 | 84 | #endif 85 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /boost/config/platform/qnxnto.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Jim Douglas 2005. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // QNX specific config options: 9 | 10 | #define BOOST_PLATFORM "QNX" 11 | 12 | #define BOOST_HAS_UNISTD_H 13 | #include 14 | 15 | // QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h 16 | // or log1p and expm1: 17 | #undef BOOST_HAS_NL_TYPES_H 18 | #undef BOOST_HAS_LOG1P 19 | #undef BOOST_HAS_EXPM1 20 | 21 | #define BOOST_HAS_PTHREADS 22 | #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 23 | 24 | #define BOOST_HAS_GETTIMEOFDAY 25 | #define BOOST_HAS_CLOCK_GETTIME 26 | #define BOOST_HAS_NANOSLEEP 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /boost/config/platform/solaris.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // (C) Copyright Jens Maurer 2003. 3 | // Use, modification and distribution are subject to the 4 | // Boost Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | // See http://www.boost.org for most recent version. 8 | 9 | // sun specific config options: 10 | 11 | #define BOOST_PLATFORM "Sun Solaris" 12 | 13 | #define BOOST_HAS_GETTIMEOFDAY 14 | 15 | // boilerplate code: 16 | #define BOOST_HAS_UNISTD_H 17 | #include 18 | 19 | // 20 | // pthreads don't actually work with gcc unless _PTHREADS is defined: 21 | // 22 | #if defined(__GNUC__) && defined(_POSIX_THREADS) && !defined(_PTHREADS) 23 | # undef BOOST_HAS_PTHREADS 24 | #endif 25 | 26 | #define BOOST_HAS_STDINT_H 27 | #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 28 | #define BOOST_HAS_LOG1P 29 | #define BOOST_HAS_EXPM1 30 | 31 | 32 | -------------------------------------------------------------------------------- /boost/config/platform/symbian.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Yuriy Krasnoschek 2009. 2 | // (C) Copyright John Maddock 2001 - 2003. 3 | // (C) Copyright Jens Maurer 2001 - 2003. 4 | // Use, modification and distribution are subject to the 5 | // Boost Software License, Version 1.0. (See accompanying file 6 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | 8 | // See http://www.boost.org for most recent version. 9 | 10 | // symbian specific config options: 11 | 12 | 13 | #define BOOST_PLATFORM "Symbian" 14 | #define BOOST_SYMBIAN 1 15 | 16 | 17 | #if defined(__S60_3X__) 18 | // Open C / C++ plugin was introdused in this SDK, earlier versions don't have CRT / STL 19 | # define BOOST_S60_3rd_EDITION_FP2_OR_LATER_SDK 20 | // make sure we have __GLIBC_PREREQ if available at all 21 | #ifdef __cplusplus 22 | #include 23 | #else 24 | #include 25 | #endif// boilerplate code: 26 | # define BOOST_HAS_UNISTD_H 27 | # include 28 | // S60 SDK defines _POSIX_VERSION as POSIX.1 29 | # ifndef BOOST_HAS_STDINT_H 30 | # define BOOST_HAS_STDINT_H 31 | # endif 32 | # ifndef BOOST_HAS_GETTIMEOFDAY 33 | # define BOOST_HAS_GETTIMEOFDAY 34 | # endif 35 | # ifndef BOOST_HAS_DIRENT_H 36 | # define BOOST_HAS_DIRENT_H 37 | # endif 38 | # ifndef BOOST_HAS_SIGACTION 39 | # define BOOST_HAS_SIGACTION 40 | # endif 41 | # ifndef BOOST_HAS_PTHREADS 42 | # define BOOST_HAS_PTHREADS 43 | # endif 44 | # ifndef BOOST_HAS_NANOSLEEP 45 | # define BOOST_HAS_NANOSLEEP 46 | # endif 47 | # ifndef BOOST_HAS_SCHED_YIELD 48 | # define BOOST_HAS_SCHED_YIELD 49 | # endif 50 | # ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 51 | # define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 52 | # endif 53 | # ifndef BOOST_HAS_LOG1P 54 | # define BOOST_HAS_LOG1P 55 | # endif 56 | # ifndef BOOST_HAS_EXPM1 57 | # define BOOST_HAS_EXPM1 58 | # endif 59 | # ifndef BOOST_POSIX_API 60 | # define BOOST_POSIX_API 61 | # endif 62 | // endianess support 63 | # include 64 | // Symbian SDK provides _BYTE_ORDER instead of __BYTE_ORDER 65 | # ifndef __LITTLE_ENDIAN 66 | # ifdef _LITTLE_ENDIAN 67 | # define __LITTLE_ENDIAN _LITTLE_ENDIAN 68 | # else 69 | # define __LITTLE_ENDIAN 1234 70 | # endif 71 | # endif 72 | # ifndef __BIG_ENDIAN 73 | # ifdef _BIG_ENDIAN 74 | # define __BIG_ENDIAN _BIG_ENDIAN 75 | # else 76 | # define __BIG_ENDIAN 4321 77 | # endif 78 | # endif 79 | # ifndef __BYTE_ORDER 80 | # define __BYTE_ORDER __LITTLE_ENDIAN // Symbian is LE 81 | # endif 82 | // Known limitations 83 | # define BOOST_ASIO_DISABLE_SERIAL_PORT 84 | # define BOOST_DATE_TIME_NO_LOCALE 85 | # define BOOST_NO_STD_WSTRING 86 | # define BOOST_EXCEPTION_DISABLE 87 | # define BOOST_NO_EXCEPTIONS 88 | 89 | #else // TODO: More platform support e.g. UIQ 90 | # error "Unsuppoted Symbian SDK" 91 | #endif 92 | 93 | #if defined(__WINSCW__) && !defined(BOOST_DISABLE_WIN32) 94 | # define BOOST_DISABLE_WIN32 // winscw defines WIN32 macro 95 | #endif 96 | 97 | 98 | -------------------------------------------------------------------------------- /boost/config/platform/vms.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Artyom Beilis 2010. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef BOOST_CONFIG_PLATFORM_VMS_HPP 7 | #define BOOST_CONFIG_PLATFORM_VMS_HPP 8 | 9 | #define BOOST_PLATFORM "OpenVMS" 10 | 11 | #undef BOOST_HAS_STDINT_H 12 | #define BOOST_HAS_UNISTD_H 13 | #define BOOST_HAS_NL_TYPES_H 14 | #define BOOST_HAS_GETTIMEOFDAY 15 | #define BOOST_HAS_DIRENT_H 16 | #define BOOST_HAS_PTHREADS 17 | #define BOOST_HAS_NANOSLEEP 18 | #define BOOST_HAS_CLOCK_GETTIME 19 | #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 20 | #define BOOST_HAS_LOG1P 21 | #define BOOST_HAS_EXPM1 22 | #define BOOST_HAS_THREADS 23 | #undef BOOST_HAS_SCHED_YIELD 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /boost/config/platform/win32.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // (C) Copyright Bill Kempf 2001. 3 | // (C) Copyright Aleksey Gurtovoy 2003. 4 | // (C) Copyright Rene Rivera 2005. 5 | // Use, modification and distribution are subject to the 6 | // Boost Software License, Version 1.0. (See accompanying file 7 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 8 | 9 | // See http://www.boost.org for most recent version. 10 | 11 | // Win32 specific config options: 12 | 13 | #define BOOST_PLATFORM "Win32" 14 | 15 | // Get the information about the MinGW runtime, i.e. __MINGW32_*VERSION. 16 | #if defined(__MINGW32__) 17 | # include <_mingw.h> 18 | #endif 19 | 20 | #if defined(__GNUC__) && !defined(BOOST_NO_SWPRINTF) 21 | # define BOOST_NO_SWPRINTF 22 | #endif 23 | 24 | // Default defines for BOOST_SYMBOL_EXPORT and BOOST_SYMBOL_IMPORT 25 | // If a compiler doesn't support __declspec(dllexport)/__declspec(dllimport), 26 | // its boost/config/compiler/ file must define BOOST_SYMBOL_EXPORT and 27 | // BOOST_SYMBOL_IMPORT 28 | #ifndef BOOST_SYMBOL_EXPORT 29 | # define BOOST_HAS_DECLSPEC 30 | # define BOOST_SYMBOL_EXPORT __declspec(dllexport) 31 | # define BOOST_SYMBOL_IMPORT __declspec(dllimport) 32 | #endif 33 | 34 | #if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0))) 35 | # define BOOST_HAS_STDINT_H 36 | # ifndef __STDC_LIMIT_MACROS 37 | # define __STDC_LIMIT_MACROS 38 | # endif 39 | # define BOOST_HAS_DIRENT_H 40 | # define BOOST_HAS_UNISTD_H 41 | #endif 42 | 43 | #if defined(__MINGW32__) && (__GNUC__ >= 4) 44 | // Mingw has these functions but there are persistent problems 45 | // with calls to these crashing, so disable for now: 46 | //# define BOOST_HAS_EXPM1 47 | //# define BOOST_HAS_LOG1P 48 | # define BOOST_HAS_GETTIMEOFDAY 49 | #endif 50 | // 51 | // Win32 will normally be using native Win32 threads, 52 | // but there is a pthread library avaliable as an option, 53 | // we used to disable this when BOOST_DISABLE_WIN32 was 54 | // defined but no longer - this should allow some 55 | // files to be compiled in strict mode - while maintaining 56 | // a consistent setting of BOOST_HAS_THREADS across 57 | // all translation units (needed for shared_ptr etc). 58 | // 59 | 60 | #ifndef BOOST_HAS_PTHREADS 61 | # define BOOST_HAS_WINTHREADS 62 | #endif 63 | 64 | // 65 | // WinCE configuration: 66 | // 67 | #if defined(_WIN32_WCE) || defined(UNDER_CE) 68 | # define BOOST_NO_ANSI_APIS 69 | // Windows CE does not have a conforming signature for swprintf 70 | # define BOOST_NO_SWPRINTF 71 | #else 72 | # define BOOST_HAS_GETSYSTEMTIMEASFILETIME 73 | # define BOOST_HAS_THREADEX 74 | # define BOOST_HAS_GETSYSTEMTIMEASFILETIME 75 | #endif 76 | 77 | // 78 | // Windows Runtime 79 | // 80 | #if defined(WINAPI_FAMILY) && \ 81 | (WINAPI_FAMILY == WINAPI_FAMILY_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) 82 | # define BOOST_NO_ANSI_APIS 83 | #endif 84 | 85 | #ifndef BOOST_DISABLE_WIN32 86 | // WEK: Added 87 | #define BOOST_HAS_FTIME 88 | #define BOOST_WINDOWS 1 89 | 90 | #endif 91 | -------------------------------------------------------------------------------- /boost/config/platform/zos.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Dynatrace 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. 4 | // See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt 6 | 7 | // See http://www.boost.org for most recent version. 8 | 9 | // Platform setup for IBM z/OS. 10 | 11 | #define BOOST_PLATFORM "IBM z/OS" 12 | 13 | #include // For __UU, __C99, __TR1, ... 14 | 15 | #if defined(__UU) 16 | # define BOOST_HAS_GETTIMEOFDAY 17 | #endif 18 | 19 | #if defined(_OPEN_THREADS) || defined(__SUSV3_THR) 20 | # define BOOST_HAS_PTHREADS 21 | # define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 22 | # define BOOST_HAS_THREADS 23 | #endif 24 | 25 | #if defined(__SUSV3) || defined(__SUSV3_THR) 26 | # define BOOST_HAS_SCHED_YIELD 27 | #endif 28 | 29 | #define BOOST_HAS_SIGACTION 30 | #define BOOST_HAS_UNISTD_H 31 | #define BOOST_HAS_DIRENT_H 32 | #define BOOST_HAS_NL_TYPES_H 33 | -------------------------------------------------------------------------------- /boost/config/pragma_message.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_CONFIG_PRAGMA_MESSAGE_HPP_INCLUDED 2 | #define BOOST_CONFIG_PRAGMA_MESSAGE_HPP_INCLUDED 3 | 4 | // Copyright 2017 Peter Dimov. 5 | // 6 | // Distributed under the Boost Software License, Version 1.0. 7 | // 8 | // See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt 10 | // 11 | // BOOST_PRAGMA_MESSAGE("message") 12 | // 13 | // Expands to the equivalent of #pragma message("message") 14 | // 15 | // Note that this header is C compatible. 16 | 17 | #include 18 | 19 | #if defined(BOOST_DISABLE_PRAGMA_MESSAGE) 20 | # define BOOST_PRAGMA_MESSAGE(x) 21 | #elif defined(__INTEL_COMPILER) 22 | # define BOOST_PRAGMA_MESSAGE(x) __pragma(message(__FILE__ "(" BOOST_STRINGIZE(__LINE__) "): note: " x)) 23 | #elif defined(__GNUC__) 24 | # define BOOST_PRAGMA_MESSAGE(x) _Pragma(BOOST_STRINGIZE(message(x))) 25 | #elif defined(_MSC_VER) 26 | # define BOOST_PRAGMA_MESSAGE(x) __pragma(message(__FILE__ "(" BOOST_STRINGIZE(__LINE__) "): note: " x)) 27 | #else 28 | # define BOOST_PRAGMA_MESSAGE(x) 29 | #endif 30 | 31 | #endif // BOOST_CONFIG_PRAGMA_MESSAGE_HPP_INCLUDED 32 | -------------------------------------------------------------------------------- /boost/config/requires_threads.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | 7 | #ifndef BOOST_CONFIG_REQUIRES_THREADS_HPP 8 | #define BOOST_CONFIG_REQUIRES_THREADS_HPP 9 | 10 | #ifndef BOOST_CONFIG_HPP 11 | # include 12 | #endif 13 | 14 | #if defined(BOOST_DISABLE_THREADS) 15 | 16 | // 17 | // special case to handle versions of gcc which don't currently support threads: 18 | // 19 | #if defined(__GNUC__) && ((__GNUC__ < 3) || (__GNUC_MINOR__ <= 3) || !defined(BOOST_STRICT_CONFIG)) 20 | // 21 | // this is checked up to gcc 3.3: 22 | // 23 | #if defined(__sgi) || defined(__hpux) 24 | # error "Multi-threaded programs are not supported by gcc on HPUX or Irix (last checked with gcc 3.3)" 25 | #endif 26 | 27 | #endif 28 | 29 | # error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS" 30 | 31 | #elif !defined(BOOST_HAS_THREADS) 32 | 33 | # if defined __COMO__ 34 | // Comeau C++ 35 | # error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_MT (Windows) or -D_REENTRANT (Unix)" 36 | 37 | #elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC) 38 | // Intel 39 | #ifdef _WIN32 40 | # error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd" 41 | #else 42 | # error "Compiler threading support is not turned on. Please set the correct command line options for threading: -openmp" 43 | #endif 44 | 45 | # elif defined __GNUC__ 46 | // GNU C++: 47 | # error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)" 48 | 49 | #elif defined __sgi 50 | // SGI MIPSpro C++ 51 | # error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_SGI_MP_SOURCE" 52 | 53 | #elif defined __DECCXX 54 | // Compaq Tru64 Unix cxx 55 | # error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread" 56 | 57 | #elif defined __BORLANDC__ 58 | // Borland 59 | # error "Compiler threading support is not turned on. Please set the correct command line options for threading: -tWM" 60 | 61 | #elif defined __MWERKS__ 62 | // Metrowerks CodeWarrior 63 | # error "Compiler threading support is not turned on. Please set the correct command line options for threading: either -runtime sm, -runtime smd, -runtime dm, or -runtime dmd" 64 | 65 | #elif defined __SUNPRO_CC 66 | // Sun Workshop Compiler C++ 67 | # error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt" 68 | 69 | #elif defined __HP_aCC 70 | // HP aCC 71 | # error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt" 72 | 73 | #elif defined(__IBMCPP__) 74 | // IBM Visual Age 75 | # error "Compiler threading support is not turned on. Please compile the code with the xlC_r compiler" 76 | 77 | #elif defined _MSC_VER 78 | // Microsoft Visual C++ 79 | // 80 | // Must remain the last #elif since some other vendors (Metrowerks, for 81 | // example) also #define _MSC_VER 82 | # error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd" 83 | 84 | #else 85 | 86 | # error "Compiler threading support is not turned on. Please consult your compiler's documentation for the appropriate options to use" 87 | 88 | #endif // compilers 89 | 90 | #endif // BOOST_HAS_THREADS 91 | 92 | #endif // BOOST_CONFIG_REQUIRES_THREADS_HPP 93 | -------------------------------------------------------------------------------- /boost/config/stdlib/libcomo.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2002 - 2003. 2 | // (C) Copyright Jens Maurer 2002 - 2003. 3 | // (C) Copyright Beman Dawes 2002 - 2003. 4 | // Use, modification and distribution are subject to the 5 | // Boost Software License, Version 1.0. (See accompanying file 6 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 | 8 | // See http://www.boost.org for most recent version. 9 | 10 | // Comeau STL: 11 | 12 | #if !defined(__LIBCOMO__) 13 | # include 14 | # if !defined(__LIBCOMO__) 15 | # error "This is not the Comeau STL!" 16 | # endif 17 | #endif 18 | 19 | // 20 | // std::streambuf is non-standard 21 | // NOTE: versions of libcomo prior to beta28 have octal version numbering, 22 | // e.g. version 25 is 21 (dec) 23 | #if __LIBCOMO_VERSION__ <= 22 24 | # define BOOST_NO_STD_WSTREAMBUF 25 | #endif 26 | 27 | #if (__LIBCOMO_VERSION__ <= 31) && defined(_WIN32) 28 | #define BOOST_NO_SWPRINTF 29 | #endif 30 | 31 | #if __LIBCOMO_VERSION__ >= 31 32 | # define BOOST_HAS_HASH 33 | # define BOOST_HAS_SLIST 34 | #endif 35 | 36 | // C++0x headers not yet implemented 37 | // 38 | # define BOOST_NO_CXX11_HDR_ARRAY 39 | # define BOOST_NO_CXX11_HDR_CHRONO 40 | # define BOOST_NO_CXX11_HDR_CODECVT 41 | # define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE 42 | # define BOOST_NO_CXX11_HDR_FORWARD_LIST 43 | # define BOOST_NO_CXX11_HDR_FUTURE 44 | # define BOOST_NO_CXX11_HDR_INITIALIZER_LIST 45 | # define BOOST_NO_CXX11_HDR_MUTEX 46 | # define BOOST_NO_CXX11_HDR_RANDOM 47 | # define BOOST_NO_CXX11_HDR_RATIO 48 | # define BOOST_NO_CXX11_HDR_REGEX 49 | # define BOOST_NO_CXX11_HDR_SYSTEM_ERROR 50 | # define BOOST_NO_CXX11_HDR_THREAD 51 | # define BOOST_NO_CXX11_HDR_TUPLE 52 | # define BOOST_NO_CXX11_HDR_TYPE_TRAITS 53 | # define BOOST_NO_CXX11_HDR_TYPEINDEX 54 | # define BOOST_NO_CXX11_HDR_UNORDERED_MAP 55 | # define BOOST_NO_CXX11_HDR_UNORDERED_SET 56 | # define BOOST_NO_CXX11_NUMERIC_LIMITS 57 | # define BOOST_NO_CXX11_ALLOCATOR 58 | # define BOOST_NO_CXX11_POINTER_TRAITS 59 | # define BOOST_NO_CXX11_ATOMIC_SMART_PTR 60 | # define BOOST_NO_CXX11_SMART_PTR 61 | # define BOOST_NO_CXX11_HDR_FUNCTIONAL 62 | # define BOOST_NO_CXX11_HDR_ATOMIC 63 | # define BOOST_NO_CXX11_STD_ALIGN 64 | # define BOOST_NO_CXX11_ADDRESSOF 65 | 66 | #if defined(__has_include) 67 | #if !__has_include() 68 | # define BOOST_NO_CXX14_HDR_SHARED_MUTEX 69 | #elif __cplusplus < 201402 70 | # define BOOST_NO_CXX14_HDR_SHARED_MUTEX 71 | #endif 72 | #else 73 | # define BOOST_NO_CXX14_HDR_SHARED_MUTEX 74 | #endif 75 | 76 | // C++14 features 77 | # define BOOST_NO_CXX14_STD_EXCHANGE 78 | 79 | // C++17 features 80 | # define BOOST_NO_CXX17_STD_APPLY 81 | # define BOOST_NO_CXX17_STD_INVOKE 82 | # define BOOST_NO_CXX17_ITERATOR_TRAITS 83 | 84 | // 85 | // Intrinsic type_traits support. 86 | // The SGI STL has it's own __type_traits class, which 87 | // has intrinsic compiler support with SGI's compilers. 88 | // Whatever map SGI style type traits to boost equivalents: 89 | // 90 | #define BOOST_HAS_SGI_TYPE_TRAITS 91 | 92 | #define BOOST_STDLIB "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__) 93 | -------------------------------------------------------------------------------- /boost/config/stdlib/modena.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Jens Maurer 2001. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // Modena C++ standard library (comes with KAI C++) 9 | 10 | #if !defined(MSIPL_COMPILE_H) 11 | # include 12 | # if !defined(__MSIPL_COMPILE_H) 13 | # error "This is not the Modena C++ library!" 14 | # endif 15 | #endif 16 | 17 | #ifndef MSIPL_NL_TYPES 18 | #define BOOST_NO_STD_MESSAGES 19 | #endif 20 | 21 | #ifndef MSIPL_WCHART 22 | #define BOOST_NO_STD_WSTRING 23 | #endif 24 | 25 | // C++0x headers not yet implemented 26 | // 27 | # define BOOST_NO_CXX11_HDR_ARRAY 28 | # define BOOST_NO_CXX11_HDR_CHRONO 29 | # define BOOST_NO_CXX11_HDR_CODECVT 30 | # define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE 31 | # define BOOST_NO_CXX11_HDR_FORWARD_LIST 32 | # define BOOST_NO_CXX11_HDR_FUTURE 33 | # define BOOST_NO_CXX11_HDR_INITIALIZER_LIST 34 | # define BOOST_NO_CXX11_HDR_MUTEX 35 | # define BOOST_NO_CXX11_HDR_RANDOM 36 | # define BOOST_NO_CXX11_HDR_RATIO 37 | # define BOOST_NO_CXX11_HDR_REGEX 38 | # define BOOST_NO_CXX11_HDR_SYSTEM_ERROR 39 | # define BOOST_NO_CXX11_HDR_THREAD 40 | # define BOOST_NO_CXX11_HDR_TUPLE 41 | # define BOOST_NO_CXX11_HDR_TYPE_TRAITS 42 | # define BOOST_NO_CXX11_HDR_TYPEINDEX 43 | # define BOOST_NO_CXX11_HDR_UNORDERED_MAP 44 | # define BOOST_NO_CXX11_HDR_UNORDERED_SET 45 | # define BOOST_NO_CXX11_NUMERIC_LIMITS 46 | # define BOOST_NO_CXX11_ALLOCATOR 47 | # define BOOST_NO_CXX11_POINTER_TRAITS 48 | # define BOOST_NO_CXX11_ATOMIC_SMART_PTR 49 | # define BOOST_NO_CXX11_SMART_PTR 50 | # define BOOST_NO_CXX11_HDR_FUNCTIONAL 51 | # define BOOST_NO_CXX11_HDR_ATOMIC 52 | # define BOOST_NO_CXX11_STD_ALIGN 53 | # define BOOST_NO_CXX11_ADDRESSOF 54 | 55 | #if defined(__has_include) 56 | #if !__has_include() 57 | # define BOOST_NO_CXX14_HDR_SHARED_MUTEX 58 | #elif __cplusplus < 201402 59 | # define BOOST_NO_CXX14_HDR_SHARED_MUTEX 60 | #endif 61 | #else 62 | # define BOOST_NO_CXX14_HDR_SHARED_MUTEX 63 | #endif 64 | 65 | // C++14 features 66 | # define BOOST_NO_CXX14_STD_EXCHANGE 67 | 68 | // C++17 features 69 | # define BOOST_NO_CXX17_STD_APPLY 70 | # define BOOST_NO_CXX17_STD_INVOKE 71 | # define BOOST_NO_CXX17_ITERATOR_TRAITS 72 | 73 | #define BOOST_STDLIB "Modena C++ standard library" 74 | 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /boost/config/stdlib/msl.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001. 2 | // (C) Copyright Darin Adler 2001. 3 | // Use, modification and distribution are subject to the 4 | // Boost Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | // See http://www.boost.org for most recent version. 8 | 9 | // Metrowerks standard library: 10 | 11 | #ifndef __MSL_CPP__ 12 | # include 13 | # ifndef __MSL_CPP__ 14 | # error This is not the MSL standard library! 15 | # endif 16 | #endif 17 | 18 | #if __MSL_CPP__ >= 0x6000 // Pro 6 19 | # define BOOST_HAS_HASH 20 | # define BOOST_STD_EXTENSION_NAMESPACE Metrowerks 21 | #endif 22 | #define BOOST_HAS_SLIST 23 | 24 | #if __MSL_CPP__ < 0x6209 25 | # define BOOST_NO_STD_MESSAGES 26 | #endif 27 | 28 | // check C lib version for 29 | #include 30 | 31 | #if defined(__MSL__) && (__MSL__ >= 0x5000) 32 | # define BOOST_HAS_STDINT_H 33 | # if !defined(__PALMOS_TRAPS__) 34 | # define BOOST_HAS_UNISTD_H 35 | # endif 36 | // boilerplate code: 37 | # include 38 | #endif 39 | 40 | #if defined(_MWMT) || _MSL_THREADSAFE 41 | # define BOOST_HAS_THREADS 42 | #endif 43 | 44 | #ifdef _MSL_NO_EXPLICIT_FUNC_TEMPLATE_ARG 45 | # define BOOST_NO_STD_USE_FACET 46 | # define BOOST_HAS_TWO_ARG_USE_FACET 47 | #endif 48 | 49 | // C++0x headers not yet implemented 50 | // 51 | # define BOOST_NO_CXX11_HDR_ARRAY 52 | # define BOOST_NO_CXX11_HDR_CHRONO 53 | # define BOOST_NO_CXX11_HDR_CODECVT 54 | # define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE 55 | # define BOOST_NO_CXX11_HDR_FORWARD_LIST 56 | # define BOOST_NO_CXX11_HDR_FUTURE 57 | # define BOOST_NO_CXX11_HDR_INITIALIZER_LIST 58 | # define BOOST_NO_CXX11_HDR_MUTEX 59 | # define BOOST_NO_CXX11_HDR_RANDOM 60 | # define BOOST_NO_CXX11_HDR_RATIO 61 | # define BOOST_NO_CXX11_HDR_REGEX 62 | # define BOOST_NO_CXX11_HDR_SYSTEM_ERROR 63 | # define BOOST_NO_CXX11_HDR_THREAD 64 | # define BOOST_NO_CXX11_HDR_TUPLE 65 | # define BOOST_NO_CXX11_HDR_TYPE_TRAITS 66 | # define BOOST_NO_CXX11_HDR_TYPEINDEX 67 | # define BOOST_NO_CXX11_HDR_UNORDERED_MAP 68 | # define BOOST_NO_CXX11_HDR_UNORDERED_SET 69 | # define BOOST_NO_CXX11_NUMERIC_LIMITS 70 | # define BOOST_NO_CXX11_ALLOCATOR 71 | # define BOOST_NO_CXX11_POINTER_TRAITS 72 | # define BOOST_NO_CXX11_ATOMIC_SMART_PTR 73 | # define BOOST_NO_CXX11_SMART_PTR 74 | # define BOOST_NO_CXX11_HDR_FUNCTIONAL 75 | # define BOOST_NO_CXX11_HDR_ATOMIC 76 | # define BOOST_NO_CXX11_STD_ALIGN 77 | # define BOOST_NO_CXX11_ADDRESSOF 78 | 79 | #if defined(__has_include) 80 | #if !__has_include() 81 | # define BOOST_NO_CXX14_HDR_SHARED_MUTEX 82 | #elif __cplusplus < 201402 83 | # define BOOST_NO_CXX14_HDR_SHARED_MUTEX 84 | #endif 85 | #else 86 | # define BOOST_NO_CXX14_HDR_SHARED_MUTEX 87 | #endif 88 | 89 | // C++14 features 90 | # define BOOST_NO_CXX14_STD_EXCHANGE 91 | 92 | // C++17 features 93 | # define BOOST_NO_CXX17_STD_APPLY 94 | # define BOOST_NO_CXX17_STD_INVOKE 95 | # define BOOST_NO_CXX17_ITERATOR_TRAITS 96 | 97 | #define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__) 98 | -------------------------------------------------------------------------------- /boost/config/stdlib/vacpp.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2002. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | #if __IBMCPP__ <= 501 9 | # define BOOST_NO_STD_ALLOCATOR 10 | #endif 11 | 12 | #define BOOST_HAS_MACRO_USE_FACET 13 | #define BOOST_NO_STD_MESSAGES 14 | 15 | // Apple doesn't seem to reliably defined a *unix* macro 16 | #if !defined(CYGWIN) && ( defined(__unix__) \ 17 | || defined(__unix) \ 18 | || defined(unix) \ 19 | || defined(__APPLE__) \ 20 | || defined(__APPLE) \ 21 | || defined(APPLE)) 22 | # include 23 | #endif 24 | 25 | // C++0x headers not yet implemented 26 | // 27 | # define BOOST_NO_CXX11_HDR_ARRAY 28 | # define BOOST_NO_CXX11_HDR_CHRONO 29 | # define BOOST_NO_CXX11_HDR_CODECVT 30 | # define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE 31 | # define BOOST_NO_CXX11_HDR_FORWARD_LIST 32 | # define BOOST_NO_CXX11_HDR_FUTURE 33 | # define BOOST_NO_CXX11_HDR_INITIALIZER_LIST 34 | # define BOOST_NO_CXX11_HDR_MUTEX 35 | # define BOOST_NO_CXX11_HDR_RANDOM 36 | # define BOOST_NO_CXX11_HDR_RATIO 37 | # define BOOST_NO_CXX11_HDR_REGEX 38 | # define BOOST_NO_CXX11_HDR_SYSTEM_ERROR 39 | # define BOOST_NO_CXX11_HDR_THREAD 40 | # define BOOST_NO_CXX11_HDR_TUPLE 41 | # define BOOST_NO_CXX11_HDR_TYPE_TRAITS 42 | # define BOOST_NO_CXX11_HDR_TYPEINDEX 43 | # define BOOST_NO_CXX11_HDR_UNORDERED_MAP 44 | # define BOOST_NO_CXX11_HDR_UNORDERED_SET 45 | # define BOOST_NO_CXX11_NUMERIC_LIMITS 46 | # define BOOST_NO_CXX11_ALLOCATOR 47 | # define BOOST_NO_CXX11_POINTER_TRAITS 48 | # define BOOST_NO_CXX11_ATOMIC_SMART_PTR 49 | # define BOOST_NO_CXX11_SMART_PTR 50 | # define BOOST_NO_CXX11_HDR_FUNCTIONAL 51 | # define BOOST_NO_CXX11_HDR_ATOMIC 52 | # define BOOST_NO_CXX11_STD_ALIGN 53 | # define BOOST_NO_CXX11_ADDRESSOF 54 | 55 | #if defined(__has_include) 56 | #if !__has_include() 57 | # define BOOST_NO_CXX14_HDR_SHARED_MUTEX 58 | #elif __cplusplus < 201402 59 | # define BOOST_NO_CXX14_HDR_SHARED_MUTEX 60 | #endif 61 | #else 62 | # define BOOST_NO_CXX14_HDR_SHARED_MUTEX 63 | #endif 64 | 65 | // C++14 features 66 | # define BOOST_NO_CXX14_STD_EXCHANGE 67 | 68 | // C++17 features 69 | # define BOOST_NO_CXX17_STD_APPLY 70 | # define BOOST_NO_CXX17_STD_INVOKE 71 | # define BOOST_NO_CXX17_ITERATOR_TRAITS 72 | 73 | #define BOOST_STDLIB "Visual Age default standard library" 74 | -------------------------------------------------------------------------------- /boost/config/stdlib/xlcpp_zos.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Dynatrace 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. 4 | // See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt 6 | 7 | // See http://www.boost.org for most recent version. 8 | 9 | // Standard library setup for IBM z/OS XL C/C++ compiler. 10 | 11 | // Oldest library version currently supported is 2.1 (V2R1) 12 | #if __TARGET_LIB__ < 0x42010000 13 | # error "Library version not supported or configured - please reconfigure" 14 | #endif 15 | 16 | #if __TARGET_LIB__ > 0x42010000 17 | # if defined(BOOST_ASSERT_CONFIG) 18 | # error "Unknown library version - please run the configure tests and report the results" 19 | # endif 20 | #endif 21 | 22 | #define BOOST_STDLIB "IBM z/OS XL C/C++ standard library" 23 | 24 | #define BOOST_HAS_MACRO_USE_FACET 25 | 26 | #define BOOST_NO_CXX11_HDR_TYPE_TRAITS 27 | #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST 28 | 29 | #define BOOST_NO_CXX11_ADDRESSOF 30 | #define BOOST_NO_CXX11_SMART_PTR 31 | #define BOOST_NO_CXX11_ATOMIC_SMART_PTR 32 | #define BOOST_NO_CXX11_NUMERIC_LIMITS 33 | #define BOOST_NO_CXX11_ALLOCATOR 34 | #define BOOST_NO_CXX11_POINTER_TRAITS 35 | #define BOOST_NO_CXX11_HDR_FUNCTIONAL 36 | #define BOOST_NO_CXX11_HDR_UNORDERED_SET 37 | #define BOOST_NO_CXX11_HDR_UNORDERED_MAP 38 | #define BOOST_NO_CXX11_HDR_TYPEINDEX 39 | #define BOOST_NO_CXX11_HDR_TUPLE 40 | #define BOOST_NO_CXX11_HDR_THREAD 41 | #define BOOST_NO_CXX11_HDR_SYSTEM_ERROR 42 | #define BOOST_NO_CXX11_HDR_REGEX 43 | #define BOOST_NO_CXX11_HDR_RATIO 44 | #define BOOST_NO_CXX11_HDR_RANDOM 45 | #define BOOST_NO_CXX11_HDR_MUTEX 46 | #define BOOST_NO_CXX11_HDR_FUTURE 47 | #define BOOST_NO_CXX11_HDR_FORWARD_LIST 48 | #define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE 49 | #define BOOST_NO_CXX11_HDR_CODECVT 50 | #define BOOST_NO_CXX11_HDR_CHRONO 51 | #define BOOST_NO_CXX11_HDR_ATOMIC 52 | #define BOOST_NO_CXX11_HDR_ARRAY 53 | #define BOOST_NO_CXX11_STD_ALIGN 54 | 55 | #define BOOST_NO_CXX14_STD_EXCHANGE 56 | #define BOOST_NO_CXX14_HDR_SHARED_MUTEX 57 | 58 | #define BOOST_NO_CXX17_STD_INVOKE 59 | #define BOOST_NO_CXX17_STD_APPLY 60 | #define BOOST_NO_CXX17_ITERATOR_TRAITS 61 | -------------------------------------------------------------------------------- /boost/config/warning_disable.hpp: -------------------------------------------------------------------------------- 1 | // Copyright John Maddock 2008 2 | // Use, modification, and distribution is subject to the Boost Software 3 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // This file exists to turn off some overly-pedantic warning emitted 7 | // by certain compilers. You should include this header only in: 8 | // 9 | // * A test case, before any other headers, or, 10 | // * A library source file before any other headers. 11 | // 12 | // IT SHOULD NOT BE INCLUDED BY ANY BOOST HEADER. 13 | // 14 | // YOU SHOULD NOT INCLUDE IT IF YOU CAN REASONABLY FIX THE WARNING. 15 | // 16 | // The only warnings disabled here are those that are: 17 | // 18 | // * Quite unreasonably pedantic. 19 | // * Generally only emitted by a single compiler. 20 | // * Can't easily be fixed: for example if the vendors own std lib 21 | // code emits these warnings! 22 | // 23 | // Note that THIS HEADER MUST NOT INCLUDE ANY OTHER HEADERS: 24 | // not even std library ones! Doing so may turn the warning 25 | // off too late to be of any use. For example the VC++ C4996 26 | // warning can be emitted from if that header is included 27 | // before or by this one :-( 28 | // 29 | 30 | #ifndef BOOST_CONFIG_WARNING_DISABLE_HPP 31 | #define BOOST_CONFIG_WARNING_DISABLE_HPP 32 | 33 | #if defined(_MSC_VER) && (_MSC_VER >= 1400) 34 | // Error 'function': was declared deprecated 35 | // http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx 36 | // This error is emitted when you use some perfectly conforming 37 | // std lib functions in a perfectly correct way, and also by 38 | // some of Microsoft's own std lib code ! 39 | # pragma warning(disable:4996) 40 | #endif 41 | #if defined(__INTEL_COMPILER) || defined(__ICL) 42 | // As above: gives warning when a "deprecated" 43 | // std library function is encountered. 44 | # pragma warning(disable:1786) 45 | #endif 46 | 47 | #endif // BOOST_CONFIG_WARNING_DISABLE_HPP 48 | -------------------------------------------------------------------------------- /boost/locale/boundary.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2009-2011 Artyom Beilis (Tonkikh) 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. (See 5 | // accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | #ifndef BOOST_LOCALE_BOUNDARY_HPP_INCLUDED 9 | #define BOOST_LOCALE_BOUNDARY_HPP_INCLUDED 10 | 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | #endif 18 | // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 19 | -------------------------------------------------------------------------------- /boost/locale/config.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2009-2011 Artyom Beilis (Tonkikh) 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. (See 5 | // accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | #ifndef BOOST_LOCALE_CONFIG_HPP_INCLUDED 9 | #define BOOST_LOCALE_CONFIG_HPP_INCLUDED 10 | 11 | #include 12 | 13 | // 14 | // Automatically link to the correct build variant where possible. 15 | // 16 | #if !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_LOCALE_NO_LIB) && !defined(BOOST_LOCALE_SOURCE) 17 | // 18 | // Set the name of our library, this will get undef'ed by auto_link.hpp 19 | // once it's done with it: 20 | // 21 | #define BOOST_LIB_NAME boost_locale 22 | // 23 | // If we're importing code from a dll, then tell auto_link.hpp about it: 24 | // 25 | #if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_LOCALE_DYN_LINK) 26 | # define BOOST_DYN_LINK 27 | #endif 28 | // 29 | // And include the header that does the work: 30 | // 31 | #include 32 | #endif // auto-linking disabled 33 | 34 | 35 | #endif // boost/locale/config.hpp 36 | // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 37 | 38 | -------------------------------------------------------------------------------- /boost/locale/definitions.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2009-2011 Artyom Beilis (Tonkikh) 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. (See 5 | // accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | #ifndef BOOST_LOCALE_DEFINITIONS_HPP_INCLUDED 9 | #define BOOST_LOCALE_DEFINITIONS_HPP_INCLUDED 10 | 11 | #include 12 | 13 | // Support older ICU versions 14 | #ifndef BOOST_SYMBOL_VISIBLE 15 | # define BOOST_SYMBOL_VISIBLE 16 | #endif 17 | 18 | #ifdef BOOST_HAS_DECLSPEC 19 | # if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_LOCALE_DYN_LINK) 20 | # ifdef BOOST_LOCALE_SOURCE 21 | # define BOOST_LOCALE_DECL BOOST_SYMBOL_EXPORT 22 | # else 23 | # define BOOST_LOCALE_DECL BOOST_SYMBOL_IMPORT 24 | # endif // BOOST_LOCALE_SOURCE 25 | # endif // DYN_LINK 26 | #endif // BOOST_HAS_DECLSPEC 27 | 28 | #ifndef BOOST_LOCALE_DECL 29 | # define BOOST_LOCALE_DECL 30 | #endif 31 | 32 | #endif // boost/locale/config.hpp 33 | // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 34 | 35 | -------------------------------------------------------------------------------- /boost/locale/encoding_errors.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2009-2011 Artyom Beilis (Tonkikh) 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. (See 5 | // accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | #ifndef BOOST_LOCALE_ENCODING_ERRORS_HPP_INCLUDED 9 | #define BOOST_LOCALE_ENCODING_ERRORS_HPP_INCLUDED 10 | 11 | #include 12 | #ifdef BOOST_MSVC 13 | # pragma warning(push) 14 | # pragma warning(disable : 4275 4251 4231 4660) 15 | #endif 16 | #include 17 | 18 | 19 | 20 | namespace boost { 21 | namespace locale { 22 | namespace conv { 23 | /// 24 | /// \addtogroup codepage 25 | /// 26 | /// @{ 27 | 28 | /// 29 | /// \brief The excepton that is thrown in case of conversion error 30 | /// 31 | class BOOST_SYMBOL_VISIBLE conversion_error : public std::runtime_error { 32 | public: 33 | conversion_error() : std::runtime_error("Conversion failed") {} 34 | }; 35 | 36 | /// 37 | /// \brief This exception is thrown in case of use of unsupported 38 | /// or invalid character set 39 | /// 40 | class BOOST_SYMBOL_VISIBLE invalid_charset_error : public std::runtime_error { 41 | public: 42 | 43 | /// Create an error for charset \a charset 44 | invalid_charset_error(std::string charset) : 45 | std::runtime_error("Invalid or unsupported charset:" + charset) 46 | { 47 | } 48 | }; 49 | 50 | 51 | /// 52 | /// enum that defines conversion policy 53 | /// 54 | typedef enum { 55 | skip = 0, ///< Skip illegal/unconvertable characters 56 | stop = 1, ///< Stop conversion and throw conversion_error 57 | default_method = skip ///< Default method - skip 58 | } method_type; 59 | 60 | 61 | /// @} 62 | 63 | } // conv 64 | 65 | } // locale 66 | } // boost 67 | 68 | #ifdef BOOST_MSVC 69 | #pragma warning(pop) 70 | #endif 71 | 72 | #endif 73 | 74 | // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 75 | 76 | -------------------------------------------------------------------------------- /boost/locale/encoding_utf.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2009-2011 Artyom Beilis (Tonkikh) 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. (See 5 | // accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | #ifndef BOOST_LOCALE_ENCODING_UTF_HPP_INCLUDED 9 | #define BOOST_LOCALE_ENCODING_UTF_HPP_INCLUDED 10 | 11 | #include 12 | #include 13 | #include 14 | #ifdef BOOST_MSVC 15 | # pragma warning(push) 16 | # pragma warning(disable : 4275 4251 4231 4660) 17 | #endif 18 | 19 | 20 | 21 | namespace boost { 22 | namespace locale { 23 | namespace conv { 24 | /// 25 | /// \addtogroup codepage 26 | /// 27 | /// @{ 28 | 29 | /// 30 | /// Convert a Unicode text in range [begin,end) to other Unicode encoding 31 | /// 32 | template 33 | std::basic_string 34 | utf_to_utf(CharIn const *begin,CharIn const *end,method_type how = default_method) 35 | { 36 | std::basic_string result; 37 | result.reserve(end-begin); 38 | typedef std::back_insert_iterator > inserter_type; 39 | inserter_type inserter(result); 40 | utf::code_point c; 41 | while(begin!=end) { 42 | c=utf::utf_traits::template decode(begin,end); 43 | if(c==utf::illegal || c==utf::incomplete) { 44 | if(how==stop) 45 | throw conversion_error(); 46 | } 47 | else { 48 | utf::utf_traits::template encode(c,inserter); 49 | } 50 | } 51 | return result; 52 | } 53 | 54 | /// 55 | /// Convert a Unicode NUL terminated string \a str other Unicode encoding 56 | /// 57 | template 58 | std::basic_string 59 | utf_to_utf(CharIn const *str,method_type how = default_method) 60 | { 61 | CharIn const *end = str; 62 | while(*end) 63 | end++; 64 | return utf_to_utf(str,end,how); 65 | } 66 | 67 | 68 | /// 69 | /// Convert a Unicode string \a str other Unicode encoding 70 | /// 71 | template 72 | std::basic_string 73 | utf_to_utf(std::basic_string const &str,method_type how = default_method) 74 | { 75 | return utf_to_utf(str.c_str(),str.c_str()+str.size(),how); 76 | } 77 | 78 | 79 | /// @} 80 | 81 | } // conv 82 | 83 | } // locale 84 | } // boost 85 | 86 | #ifdef BOOST_MSVC 87 | #pragma warning(pop) 88 | #endif 89 | 90 | #endif 91 | 92 | // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 93 | 94 | -------------------------------------------------------------------------------- /boost/locale/hold_ptr.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2010 Artyom Beilis (Tonkikh) 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. (See 5 | // accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | #ifndef BOOST_LOCALE_HOLD_PTR_H 9 | #define BOOST_LOCALE_HOLD_PTR_H 10 | 11 | namespace boost { 12 | namespace locale { 13 | /// 14 | /// \brief a smart pointer similar to std::auto_ptr but it is non-copyable and the 15 | /// underlying object has the same constness as the pointer itself (unlike an ordinary pointer). 16 | /// 17 | template 18 | class hold_ptr { 19 | hold_ptr(hold_ptr const &other); // non copyable 20 | hold_ptr const &operator=(hold_ptr const &other); // non assignable 21 | public: 22 | /// 23 | /// Create new empty pointer 24 | /// 25 | hold_ptr() : ptr_(0) {} 26 | /// 27 | /// Create a pointer that holds \a v, ownership is transferred to smart pointer 28 | /// 29 | explicit hold_ptr(T *v) : ptr_(v) {} 30 | 31 | /// 32 | /// Destroy smart pointer and the object it owns. 33 | /// 34 | ~hold_ptr() 35 | { 36 | delete ptr_; 37 | } 38 | 39 | /// 40 | /// Get a const pointer to the object 41 | /// 42 | T const *get() const { return ptr_; } 43 | /// 44 | /// Get a mutable pointer to the object 45 | /// 46 | T *get() { return ptr_; } 47 | 48 | /// 49 | /// Get a const reference to the object 50 | /// 51 | T const &operator *() const { return *ptr_; } 52 | /// 53 | /// Get a mutable reference to the object 54 | /// 55 | T &operator *() { return *ptr_; } 56 | /// 57 | /// Get a const pointer to the object 58 | /// 59 | T const *operator->() const { return ptr_; } 60 | /// 61 | /// Get a mutable pointer to the object 62 | /// 63 | T *operator->() { return ptr_; } 64 | 65 | /// 66 | /// Transfer an ownership on the pointer to user 67 | /// 68 | T *release() { T *tmp=ptr_; ptr_=0; return tmp; } 69 | 70 | /// 71 | /// Set new value to pointer, previous object is destroyed, ownership on new object is transferred 72 | /// 73 | void reset(T *p=0) 74 | { 75 | if(ptr_) delete ptr_; 76 | ptr_=p; 77 | } 78 | /// Swap two pointers 79 | void swap(hold_ptr &other) 80 | { 81 | T *tmp=other.ptr_; 82 | other.ptr_=ptr_; 83 | ptr_=tmp; 84 | } 85 | private: 86 | T *ptr_; 87 | }; 88 | 89 | } // locale 90 | } // boost 91 | 92 | #endif 93 | // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 94 | -------------------------------------------------------------------------------- /boost/locale/info.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2009-2011 Artyom Beilis (Tonkikh) 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. (See 5 | // accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | #ifndef BOOST_LOCALE_INFO_HPP_INCLUDED 9 | #define BOOST_LOCALE_INFO_HPP_INCLUDED 10 | #include 11 | #ifdef BOOST_MSVC 12 | # pragma warning(push) 13 | # pragma warning(disable : 4275 4251 4231 4660) 14 | #endif 15 | #include 16 | #include 17 | 18 | 19 | namespace boost { 20 | namespace locale { 21 | 22 | /// 23 | /// \brief a facet that holds general information about locale 24 | /// 25 | /// This facet should be always created in order to make all Boost.Locale functions work 26 | /// 27 | class BOOST_LOCALE_DECL info : public std::locale::facet 28 | { 29 | public: 30 | static std::locale::id id; ///< This member uniquely defines this facet, required by STL 31 | 32 | /// 33 | /// String information about the locale 34 | /// 35 | enum string_propery { 36 | language_property, ///< ISO 639 language id 37 | country_property, ///< ISO 3166 country id 38 | variant_property, ///< Variant for locale 39 | encoding_property, ///< encoding name 40 | name_property ///< locale name 41 | }; 42 | 43 | /// 44 | /// Integer information about locale 45 | /// 46 | enum integer_property { 47 | utf8_property ///< Non zero value if uses UTF-8 encoding 48 | }; 49 | 50 | 51 | /// 52 | /// Standard facet's constructor 53 | /// 54 | info(size_t refs = 0) : std::locale::facet(refs) 55 | { 56 | } 57 | /// 58 | /// Get language name 59 | /// 60 | std::string language() const 61 | { 62 | return get_string_property(language_property); 63 | } 64 | /// 65 | /// Get country name 66 | /// 67 | std::string country() const 68 | { 69 | return get_string_property(country_property); 70 | } 71 | /// 72 | /// Get locale variant 73 | /// 74 | std::string variant() const 75 | { 76 | return get_string_property(variant_property); 77 | } 78 | /// 79 | /// Get encoding 80 | /// 81 | std::string encoding() const 82 | { 83 | return get_string_property(encoding_property); 84 | } 85 | 86 | /// 87 | /// Get the name of the locale, like en_US.UTF-8 88 | /// 89 | std::string name() const 90 | { 91 | return get_string_property(name_property); 92 | } 93 | 94 | /// 95 | /// True if the underlying encoding is UTF-8 (for char streams and strings) 96 | /// 97 | bool utf8() const 98 | { 99 | return get_integer_property(utf8_property) != 0; 100 | } 101 | 102 | #if defined (__SUNPRO_CC) && defined (_RWSTD_VER) 103 | std::locale::id& __get_id (void) const { return id; } 104 | #endif 105 | protected: 106 | /// 107 | /// Get string property by its id \a v 108 | /// 109 | virtual std::string get_string_property(string_propery v) const = 0; 110 | /// 111 | /// Get integer property by its id \a v 112 | /// 113 | virtual int get_integer_property(integer_property v) const = 0; 114 | }; 115 | 116 | } 117 | } 118 | 119 | #ifdef BOOST_MSVC 120 | #pragma warning(pop) 121 | #endif 122 | 123 | #endif 124 | 125 | // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 126 | -------------------------------------------------------------------------------- /boost/locale/time_zone.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2009-2011 Artyom Beilis (Tonkikh) 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. (See 5 | // accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | #ifndef BOOST_LOCALE_TIME_ZONE_HPP_INCLUDED 9 | #define BOOST_LOCALE_TIME_ZONE_HPP_INCLUDED 10 | 11 | #include 12 | #ifdef BOOST_MSVC 13 | # pragma warning(push) 14 | # pragma warning(disable : 4275 4251 4231 4660) 15 | #endif 16 | 17 | #include 18 | 19 | 20 | namespace boost { 21 | namespace locale { 22 | /// 23 | /// \addtogroup date_time 24 | /// 25 | /// @{ 26 | 27 | /// 28 | /// \brief namespace that holds functions for operating with global 29 | /// time zone 30 | /// 31 | namespace time_zone { 32 | /// 33 | /// Get global time zone identifier. If empty, system time zone is used 34 | /// 35 | BOOST_LOCALE_DECL std::string global(); 36 | /// 37 | /// Set global time zone identifier returning previous one. If empty, system time zone is used 38 | /// 39 | BOOST_LOCALE_DECL std::string global(std::string const &new_tz); 40 | } 41 | 42 | /// @} 43 | 44 | } // locale 45 | } // boost 46 | 47 | #ifdef BOOST_MSVC 48 | #pragma warning(pop) 49 | #endif 50 | 51 | 52 | #endif 53 | 54 | // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 55 | -------------------------------------------------------------------------------- /boost/locale/utf8_codecvt.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2015 Artyom Beilis (Tonkikh) 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. (See 5 | // accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | #ifndef BOOST_LOCALE_UTF8_CODECVT_HPP 9 | #define BOOST_LOCALE_UTF8_CODECVT_HPP 10 | 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | namespace boost { 17 | namespace locale { 18 | 19 | /// 20 | /// \brief Geneneric utf8 codecvt facet, it allows to convert UTF-8 strings to UTF-16 and UTF-32 using wchar_t, char32_t and char16_t 21 | /// 22 | template 23 | class utf8_codecvt : public generic_codecvt > 24 | { 25 | public: 26 | 27 | struct state_type {}; 28 | 29 | utf8_codecvt(size_t refs = 0) : generic_codecvt >(refs) 30 | { 31 | } 32 | 33 | static int max_encoding_length() 34 | { 35 | return 4; 36 | } 37 | 38 | static state_type initial_state(generic_codecvt_base::initial_convertion_state /* unused */) 39 | { 40 | return state_type(); 41 | } 42 | static utf::code_point to_unicode(state_type &,char const *&begin,char const *end) 43 | { 44 | char const *p=begin; 45 | 46 | utf::code_point c = utf::utf_traits::decode(p,end); 47 | if(c!=utf::illegal && c!=utf::incomplete) 48 | begin = p; 49 | return c; 50 | } 51 | 52 | static utf::code_point from_unicode(state_type &,utf::code_point u,char *begin,char const *end) 53 | { 54 | if(!utf::is_valid_codepoint(u)) 55 | return utf::illegal; 56 | int width; 57 | if((width=utf::utf_traits::width(u)) > end - begin) 58 | return utf::incomplete; 59 | utf::utf_traits::encode(u,begin); 60 | return width; 61 | } 62 | }; 63 | 64 | } // locale 65 | } // namespace boost 66 | 67 | #endif 68 | /// 69 | // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 70 | -------------------------------------------------------------------------------- /boost/nowide/cenv.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2012 Artyom Beilis (Tonkikh) 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. (See 5 | // accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | #ifndef BOOST_NOWIDE_CENV_H_INCLUDED 9 | #define BOOST_NOWIDE_CENV_H_INCLUDED 10 | 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | #ifdef BOOST_WINDOWS 19 | #include 20 | #endif 21 | 22 | namespace boost { 23 | namespace nowide { 24 | #if !defined(BOOST_WINDOWS) && !defined(BOOST_NOWIDE_DOXYGEN) 25 | using ::getenv; 26 | using ::setenv; 27 | using ::unsetenv; 28 | using ::putenv; 29 | #else 30 | /// 31 | /// \brief UTF-8 aware getenv. Returns 0 if the variable is not set. 32 | /// 33 | /// This function is not thread safe or reenterable as defined by the standard library 34 | /// 35 | inline char *getenv(char const *key) 36 | { 37 | static stackstring value; 38 | 39 | wshort_stackstring name; 40 | if(!name.convert(key)) 41 | return 0; 42 | 43 | static const size_t buf_size = 64; 44 | wchar_t buf[buf_size]; 45 | std::vector tmp; 46 | wchar_t *ptr = buf; 47 | size_t n = GetEnvironmentVariableW(name.c_str(),buf,buf_size); 48 | if(n == 0 && GetLastError() == 203) // ERROR_ENVVAR_NOT_FOUND 49 | return 0; 50 | if(n >= buf_size) { 51 | tmp.resize(n+1,L'\0'); 52 | n = GetEnvironmentVariableW(name.c_str(),&tmp[0],static_cast(tmp.size() - 1)); 53 | // The size may have changed 54 | if(n >= tmp.size() - 1) 55 | return 0; 56 | ptr = &tmp[0]; 57 | } 58 | if(!value.convert(ptr)) 59 | return 0; 60 | return value.c_str(); 61 | } 62 | /// 63 | /// \brief UTF-8 aware setenv, \a key - the variable name, \a value is a new UTF-8 value, 64 | /// 65 | /// if override is not 0, that the old value is always overridded, otherwise, 66 | /// if the variable exists it remains unchanged 67 | /// 68 | inline int setenv(char const *key,char const *value,int override) 69 | { 70 | wshort_stackstring name; 71 | if(!name.convert(key)) 72 | return -1; 73 | if(!override) { 74 | wchar_t unused[2]; 75 | if(!(GetEnvironmentVariableW(name.c_str(),unused,2)==0 && GetLastError() == 203)) // ERROR_ENVVAR_NOT_FOUND 76 | return 0; 77 | } 78 | wstackstring wval; 79 | if(!wval.convert(value)) 80 | return -1; 81 | if(SetEnvironmentVariableW(name.c_str(),wval.c_str())) 82 | return 0; 83 | return -1; 84 | } 85 | /// 86 | /// \brief Remove enviroment variable \a key 87 | /// 88 | inline int unsetenv(char const *key) 89 | { 90 | wshort_stackstring name; 91 | if(!name.convert(key)) 92 | return -1; 93 | if(SetEnvironmentVariableW(name.c_str(),0)) 94 | return 0; 95 | return -1; 96 | } 97 | /// 98 | /// \brief UTF-8 aware putenv implementation, expects string in format KEY=VALUE 99 | /// 100 | inline int putenv(char *string) 101 | { 102 | char const *key = string; 103 | char const *key_end = string; 104 | while(*key_end!='=' && key_end!='\0') 105 | key_end++; 106 | if(*key_end == '\0') 107 | return -1; 108 | wshort_stackstring wkey; 109 | if(!wkey.convert(key,key_end)) 110 | return -1; 111 | 112 | wstackstring wvalue; 113 | if(!wvalue.convert(key_end+1)) 114 | return -1; 115 | 116 | if(SetEnvironmentVariableW(wkey.c_str(),wvalue.c_str())) 117 | return 0; 118 | return -1; 119 | } 120 | #endif 121 | } // nowide 122 | } // namespace boost 123 | 124 | #endif 125 | /// 126 | // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 127 | -------------------------------------------------------------------------------- /boost/nowide/config.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2012 Artyom Beilis (Tonkikh) 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. (See 5 | // accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | #ifndef BOOST_NOWIDE_CONFIG_HPP_INCLUDED 9 | #define BOOST_NOWIDE_CONFIG_HPP_INCLUDED 10 | 11 | #include 12 | 13 | #ifndef BOOST_SYMBOL_VISIBLE 14 | # define BOOST_SYMBOL_VISIBLE 15 | #endif 16 | 17 | #ifdef BOOST_HAS_DECLSPEC 18 | # if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_NOWIDE_DYN_LINK) 19 | # ifdef BOOST_NOWIDE_SOURCE 20 | # define BOOST_NOWIDE_DECL BOOST_SYMBOL_EXPORT 21 | # else 22 | # define BOOST_NOWIDE_DECL BOOST_SYMBOL_IMPORT 23 | # endif // BOOST_NOWIDE_SOURCE 24 | # endif // DYN_LINK 25 | #endif // BOOST_HAS_DECLSPEC 26 | 27 | #ifndef BOOST_NOWIDE_DECL 28 | # define BOOST_NOWIDE_DECL 29 | #endif 30 | 31 | // 32 | // Automatically link to the correct build variant where possible. 33 | // 34 | #if !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_NOWIDE_NO_LIB) && !defined(BOOST_NOWIDE_SOURCE) 35 | // 36 | // Set the name of our library, this will get undef'ed by auto_link.hpp 37 | // once it's done with it: 38 | // 39 | #define BOOST_LIB_NAME boost_nowide 40 | // 41 | // If we're importing code from a dll, then tell auto_link.hpp about it: 42 | // 43 | #if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_NOWIDE_DYN_LINK) 44 | # define BOOST_DYN_LINK 45 | #endif 46 | // 47 | // And include the header that does the work: 48 | // 49 | #include 50 | #endif // auto-linking disabled 51 | 52 | 53 | #endif // boost/nowide/config.hpp 54 | // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 -------------------------------------------------------------------------------- /boost/nowide/cstdio.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2012 Artyom Beilis (Tonkikh) 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. (See 5 | // accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | #ifndef BOOST_NOWIDE_CSTDIO_H_INCLUDED 9 | #define BOOST_NOWIDE_CSTDIO_H_INCLUDED 10 | 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | #ifdef BOOST_MSVC 19 | # pragma warning(push) 20 | # pragma warning(disable : 4996) 21 | #endif 22 | 23 | 24 | namespace boost { 25 | namespace nowide { 26 | #if !defined(BOOST_WINDOWS) && !defined(BOOST_NOWIDE_DOXYGEN) 27 | using std::fopen; 28 | using std::freopen; 29 | using std::remove; 30 | using std::rename; 31 | #else 32 | 33 | /// 34 | /// \brief Same as freopen but file_name and mode are UTF-8 strings 35 | /// 36 | /// If invalid UTF-8 given, NULL is returned and errno is set to EINVAL 37 | /// 38 | inline FILE *freopen(char const *file_name,char const *mode,FILE *stream) 39 | { 40 | wstackstring wname; 41 | wshort_stackstring wmode; 42 | if(!wname.convert(file_name) || !wmode.convert(mode)) { 43 | errno = EINVAL; 44 | return 0; 45 | } 46 | return _wfreopen(wname.c_str(),wmode.c_str(),stream); 47 | } 48 | /// 49 | /// \brief Same as fopen but file_name and mode are UTF-8 strings 50 | /// 51 | /// If invalid UTF-8 given, NULL is returned and errno is set to EINVAL 52 | /// 53 | inline FILE *fopen(char const *file_name,char const *mode) 54 | { 55 | wstackstring wname; 56 | wshort_stackstring wmode; 57 | if(!wname.convert(file_name) || !wmode.convert(mode)) { 58 | errno = EINVAL; 59 | return 0; 60 | } 61 | return _wfopen(wname.c_str(),wmode.c_str()); 62 | } 63 | /// 64 | /// \brief Same as rename but old_name and new_name are UTF-8 strings 65 | /// 66 | /// If invalid UTF-8 given, -1 is returned and errno is set to EINVAL 67 | /// 68 | inline int rename(char const *old_name,char const *new_name) 69 | { 70 | wstackstring wold,wnew; 71 | if(!wold.convert(old_name) || !wnew.convert(new_name)) { 72 | errno = EINVAL; 73 | return -1; 74 | } 75 | return _wrename(wold.c_str(),wnew.c_str()); 76 | } 77 | /// 78 | /// \brief Same as rename but name is UTF-8 string 79 | /// 80 | /// If invalid UTF-8 given, -1 is returned and errno is set to EINVAL 81 | /// 82 | inline int remove(char const *name) 83 | { 84 | wstackstring wname; 85 | if(!wname.convert(name)) { 86 | errno = EINVAL; 87 | return -1; 88 | } 89 | return _wremove(wname.c_str()); 90 | } 91 | #endif 92 | } // nowide 93 | } // namespace boost 94 | 95 | #ifdef BOOST_MSVC 96 | #pragma warning(pop) 97 | #endif 98 | 99 | #endif 100 | /// 101 | // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 102 | -------------------------------------------------------------------------------- /boost/nowide/cstdlib.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2012 Artyom Beilis (Tonkikh) 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. (See 5 | // accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | #ifndef BOOST_NOWIDE_CSTDLIB_HPP_INCLUDED 9 | #define BOOST_NOWIDE_CSTDLIB_HPP_INCLUDED 10 | 11 | #include 12 | #include 13 | 14 | #endif 15 | /// 16 | // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 17 | -------------------------------------------------------------------------------- /boost/nowide/integration/filesystem.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2012 Artyom Beilis (Tonkikh) 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. (See 5 | // accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | #ifndef BOOST_NOWIDE_INTEGRATION_FILESYSTEM_HPP_INCLUDED 9 | #define BOOST_NOWIDE_INTEGRATION_FILESYSTEM_HPP_INCLUDED 10 | 11 | #include 12 | #include 13 | namespace boost { 14 | namespace nowide { 15 | /// 16 | /// Instal utf8_codecvt facet into boost::filesystem::path such all char strings are interpreted as utf-8 strings 17 | /// 18 | inline void nowide_filesystem() 19 | { 20 | std::locale tmp = std::locale(std::locale(),new boost::nowide::utf8_codecvt()); 21 | boost::filesystem::path::imbue(tmp); 22 | } 23 | } // nowide 24 | } // boost 25 | 26 | #endif 27 | /// 28 | // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 29 | -------------------------------------------------------------------------------- /boost/nowide/iostream.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2012 Artyom Beilis (Tonkikh) 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. (See 5 | // accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | #ifndef BOOST_NOWIDE_IOSTREAM_HPP_INCLUDED 9 | #define BOOST_NOWIDE_IOSTREAM_HPP_INCLUDED 10 | 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | #ifdef BOOST_MSVC 18 | # pragma warning(push) 19 | # pragma warning(disable : 4251) 20 | #endif 21 | 22 | 23 | namespace boost { 24 | namespace nowide { 25 | #if !defined(BOOST_WINDOWS) && !defined(BOOST_NOWIDE_DOXYGEN) 26 | using std::cout; 27 | using std::cerr; 28 | using std::cin; 29 | using std::clog; 30 | #else 31 | 32 | /// \cond INTERNAL 33 | namespace details { 34 | class console_output_buffer; 35 | class console_input_buffer; 36 | 37 | class BOOST_NOWIDE_DECL winconsole_ostream : public std::ostream { 38 | winconsole_ostream(winconsole_ostream const &); 39 | void operator=(winconsole_ostream const &); 40 | public: 41 | winconsole_ostream(int fd); 42 | ~winconsole_ostream(); 43 | private: 44 | boost::scoped_ptr d; 45 | }; 46 | 47 | class BOOST_NOWIDE_DECL winconsole_istream : public std::istream { 48 | winconsole_istream(winconsole_istream const &); 49 | void operator=(winconsole_istream const &); 50 | public: 51 | 52 | winconsole_istream(); 53 | ~winconsole_istream(); 54 | private: 55 | struct data; 56 | boost::scoped_ptr d; 57 | }; 58 | } // details 59 | 60 | /// \endcond 61 | 62 | /// 63 | /// \brief Same as std::cin, but uses UTF-8 64 | /// 65 | /// Note, the stream is not synchronized with stdio and not affected by std::ios::sync_with_stdio 66 | /// 67 | extern BOOST_NOWIDE_DECL details::winconsole_istream cin; 68 | /// 69 | /// \brief Same as std::cout, but uses UTF-8 70 | /// 71 | /// Note, the stream is not synchronized with stdio and not affected by std::ios::sync_with_stdio 72 | /// 73 | extern BOOST_NOWIDE_DECL details::winconsole_ostream cout; 74 | /// 75 | /// \brief Same as std::cerr, but uses UTF-8 76 | /// 77 | /// Note, the stream is not synchronized with stdio and not affected by std::ios::sync_with_stdio 78 | /// 79 | extern BOOST_NOWIDE_DECL details::winconsole_ostream cerr; 80 | /// 81 | /// \brief Same as std::clog, but uses UTF-8 82 | /// 83 | /// Note, the stream is not synchronized with stdio and not affected by std::ios::sync_with_stdio 84 | /// 85 | extern BOOST_NOWIDE_DECL details::winconsole_ostream clog; 86 | 87 | #endif 88 | 89 | } // nowide 90 | } // namespace boost 91 | 92 | #ifdef BOOST_MSVC 93 | # pragma warning(pop) 94 | #endif 95 | 96 | 97 | #endif 98 | /// 99 | // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 100 | -------------------------------------------------------------------------------- /boost/nowide/system.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2012 Artyom Beilis (Tonkikh) 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. (See 5 | // accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | #ifndef BOOST_NOWIDE_CSTDLIB_HPP 9 | #define BOOST_NOWIDE_CSTDLIB_HPP 10 | 11 | #include 12 | #include 13 | #include 14 | namespace boost { 15 | namespace nowide { 16 | 17 | #if !defined(BOOST_WINDOWS) && !defined(BOOST_NOWIDE_DOXYGEN) 18 | 19 | using ::system; 20 | 21 | #else // Windows 22 | 23 | /// 24 | /// Same as std::system but cmd is UTF-8. 25 | /// 26 | /// If the input is not valid UTF-8, -1 returned and errno set to EINVAL 27 | /// 28 | inline int system(char const *cmd) 29 | { 30 | if(!cmd) 31 | return _wsystem(0); 32 | wstackstring wcmd; 33 | if(!wcmd.convert(cmd)) { 34 | errno = EINVAL; 35 | return -1; 36 | } 37 | return _wsystem(wcmd.c_str()); 38 | } 39 | 40 | #endif 41 | } // nowide 42 | } // namespace boost 43 | 44 | #endif 45 | /// 46 | // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 47 | -------------------------------------------------------------------------------- /boost/nowide/windows.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2012 Artyom Beilis (Tonkikh) 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. (See 5 | // accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | #ifndef BOOST_NOWIDE_WINDOWS_HPP_INCLUDED 9 | #define BOOST_NOWIDE_WINDOWS_HPP_INCLUDED 10 | 11 | #include 12 | 13 | #ifdef BOOST_NOWIDE_USE_WINDOWS_H 14 | #include 15 | #else 16 | 17 | // 18 | // These are function prototypes... Allow to to include windows.h 19 | // 20 | extern "C" { 21 | 22 | __declspec(dllimport) wchar_t* __stdcall GetEnvironmentStringsW(void); 23 | __declspec(dllimport) int __stdcall FreeEnvironmentStringsW(wchar_t *); 24 | __declspec(dllimport) wchar_t* __stdcall GetCommandLineW(void); 25 | __declspec(dllimport) wchar_t** __stdcall CommandLineToArgvW(wchar_t const *,int *); 26 | __declspec(dllimport) unsigned long __stdcall GetLastError(); 27 | __declspec(dllimport) void* __stdcall LocalFree(void *); 28 | __declspec(dllimport) int __stdcall SetEnvironmentVariableW(wchar_t const *,wchar_t const *); 29 | __declspec(dllimport) unsigned long __stdcall GetEnvironmentVariableW(wchar_t const *,wchar_t *,unsigned long); 30 | 31 | } 32 | 33 | #endif 34 | 35 | 36 | 37 | #endif 38 | /// 39 | // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 40 | -------------------------------------------------------------------------------- /ie_upgrade_registry.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rg-software/wlx-markdown-viewer/b1e8a23473996b58b3a1edaef19bc964efe23cc1/ie_upgrade_registry.zip --------------------------------------------------------------------------------