diff options
author | Drew DeVault <sir@cmpwn.com> | 2014-05-05 14:56:59 -0600 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2014-05-05 14:56:59 -0600 |
commit | d4f3959ff402442fc16508e1d012b6d745462ad6 (patch) | |
tree | 502066e067f61e7add77d5b016fabe2176211f59 | |
parent | 6c829cf0f68e3c1c07ebdd0c98f97524ba0cefde (diff) |
Syntax highlighting
-rw-r--r-- | _config.yml | 2 | ||||
-rw-r--r-- | _posts/2014-02-02-The-worst-bugs.md | 48 | ||||
-rw-r--r-- | css/base.css | 2 | ||||
-rw-r--r-- | css/syntax.css | 118 |
4 files changed, 89 insertions, 81 deletions
diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..6adbc4b --- /dev/null +++ b/_config.yml @@ -0,0 +1,2 @@ +markdown: kramdown +highlighter: pygments diff --git a/_posts/2014-02-02-The-worst-bugs.md b/_posts/2014-02-02-The-worst-bugs.md index e3d6047..79d6968 100644 --- a/_posts/2014-02-02-The-worst-bugs.md +++ b/_posts/2014-02-02-The-worst-bugs.md @@ -95,25 +95,29 @@ bug hid itself whenever this happened. I decided to dive into the kernel's getKey function. Here's the start of the function, as it appeared at the time: - getKey: - call hasKeypadLock - jr _ - xor a - ret - _: push bc - ; ... +{% highlight nasm %} +getKey: + call hasKeypadLock + jr _ + xor a + ret +_: push bc +; ... +{% endhighlight %} I started going through this code line-by-line, trying to see if there was anything here that could concievably touch the thread table. I noticed a minor error here, and corrected it without thinking: - getKey: - call hasKeypadLock - jr z, _ - xor a - ret - _: push bc - ; ... +{% highlight nasm %} +getKey: + call hasKeypadLock + jr z, _ + xor a + ret +_: push bc +; ... +{% endhighlight %} The simple error I had corrected: getKey was pressing forward, even when the current thread didn't have control of the keyboard hardware. This was a silly @@ -126,14 +130,16 @@ and the bug was indeed resolved. Can you guess what happened here? Here's the other piece of the puzzle to help you out, translated more or less into C for readability: - int applibGetKey() { - int key = getKey(); - if (key == KEY_F5) { - launch_threadlist(); - suspend_thread(); - } - return key; +{% highlight c %} +int applibGetKey() { + int key = getKey(); + if (key == KEY_F5) { + launch_threadlist(); + suspend_thread(); } + return key; +} +{% endhighlight %} Two more details you might not have picked up on: diff --git a/css/base.css b/css/base.css index 17c4296..a98ab37 100644 --- a/css/base.css +++ b/css/base.css @@ -90,5 +90,5 @@ h2:after, h3:after, h4:after { pre { max-height: 300px; - overflow-x: scroll; + overflow-x: auto; } diff --git a/css/syntax.css b/css/syntax.css index 1e651cf..201f800 100644 --- a/css/syntax.css +++ b/css/syntax.css @@ -1,60 +1,60 @@ .highlight { background: #ffffff; } -.highlight .c { color: #999988; font-style: italic } /* Comment */ -.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ -.highlight .k { font-weight: bold } /* Keyword */ -.highlight .o { font-weight: bold } /* Operator */ -.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */ -.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ -.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ -.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #aa0000 } /* Generic.Error */ -.highlight .gh { color: #999999 } /* Generic.Heading */ -.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ -.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */ -.highlight .go { color: #888888 } /* Generic.Output */ -.highlight .gp { color: #555555 } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #aaaaaa } /* Generic.Subheading */ -.highlight .gt { color: #aa0000 } /* Generic.Traceback */ -.highlight .kc { font-weight: bold } /* Keyword.Constant */ -.highlight .kd { font-weight: bold } /* Keyword.Declaration */ -.highlight .kp { font-weight: bold } /* Keyword.Pseudo */ -.highlight .kr { font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */ -.highlight .m { color: #009999 } /* Literal.Number */ -.highlight .s { color: #d14 } /* Literal.String */ -.highlight .na { color: #008080 } /* Name.Attribute */ -.highlight .nb { color: #0086B3 } /* Name.Builtin */ -.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */ -.highlight .no { color: #008080 } /* Name.Constant */ -.highlight .ni { color: #800080 } /* Name.Entity */ -.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */ -.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */ -.highlight .nn { color: #555555 } /* Name.Namespace */ -.highlight .nt { color: #000080 } /* Name.Tag */ -.highlight .nv { color: #008080 } /* Name.Variable */ -.highlight .ow { font-weight: bold } /* Operator.Word */ -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mf { color: #009999 } /* Literal.Number.Float */ -.highlight .mh { color: #009999 } /* Literal.Number.Hex */ -.highlight .mi { color: #009999 } /* Literal.Number.Integer */ -.highlight .mo { color: #009999 } /* Literal.Number.Oct */ -.highlight .sb { color: #d14 } /* Literal.String.Backtick */ -.highlight .sc { color: #d14 } /* Literal.String.Char */ -.highlight .sd { color: #d14 } /* Literal.String.Doc */ -.highlight .s2 { color: #d14 } /* Literal.String.Double */ -.highlight .se { color: #d14 } /* Literal.String.Escape */ -.highlight .sh { color: #d14 } /* Literal.String.Heredoc */ -.highlight .si { color: #d14 } /* Literal.String.Interpol */ -.highlight .sx { color: #d14 } /* Literal.String.Other */ -.highlight .sr { color: #009926 } /* Literal.String.Regex */ -.highlight .s1 { color: #d14 } /* Literal.String.Single */ -.highlight .ss { color: #990073 } /* Literal.String.Symbol */ -.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */ -.highlight .vc { color: #008080 } /* Name.Variable.Class */ -.highlight .vg { color: #008080 } /* Name.Variable.Global */ -.highlight .vi { color: #008080 } /* Name.Variable.Instance */ -.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
\ No newline at end of file +.highlight code .c { color: #999988; font-style: italic } /* Comment */ +.highlight code .err { color: #a61717; background-color: #e3d2d2 } /* Error */ +.highlight code .k { font-weight: bold } /* Keyword */ +.highlight code .o { font-weight: bold } /* Operator */ +.highlight code .cm { color: #999988; font-style: italic } /* Comment.Multiline */ +.highlight code .cp { color: #999999; font-weight: bold } /* Comment.Preproc */ +.highlight code .c1 { color: #999988; font-style: italic } /* Comment.Single */ +.highlight code .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ +.highlight code .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ +.highlight code .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */ +.highlight code .ge { font-style: italic } /* Generic.Emph */ +.highlight code .gr { color: #aa0000 } /* Generic.Error */ +.highlight code .gh { color: #999999 } /* Generic.Heading */ +.highlight code .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ +.highlight code .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */ +.highlight code .go { color: #888888 } /* Generic.Output */ +.highlight code .gp { color: #555555 } /* Generic.Prompt */ +.highlight code .gs { font-weight: bold } /* Generic.Strong */ +.highlight code .gu { color: #aaaaaa } /* Generic.Subheading */ +.highlight code .gt { color: #aa0000 } /* Generic.Traceback */ +.highlight code .kc { font-weight: bold } /* Keyword.Constant */ +.highlight code .kd { font-weight: bold } /* Keyword.Declaration */ +.highlight code .kp { font-weight: bold } /* Keyword.Pseudo */ +.highlight code .kr { font-weight: bold } /* Keyword.Reserved */ +.highlight code .kt { color: #445588; font-weight: bold } /* Keyword.Type */ +.highlight code .m { color: #009999 } /* Literal.Number */ +.highlight code .s { color: #d14 } /* Literal.String */ +.highlight code .na { color: #008080 } /* Name.Attribute */ +.highlight code .nb { color: #0086B3 } /* Name.Builtin */ +.highlight code .nc { color: #445588; font-weight: bold } /* Name.Class */ +.highlight code .no { color: #008080 } /* Name.Constant */ +.highlight code .ni { color: #800080 } /* Name.Entity */ +.highlight code .ne { color: #990000; font-weight: bold } /* Name.Exception */ +.highlight code .nf { color: #990000; font-weight: bold } /* Name.Function */ +.highlight code .nn { color: #555555 } /* Name.Namespace */ +.highlight code .nt { color: #000080 } /* Name.Tag */ +.highlight code .nv { color: #008080 } /* Name.Variable */ +.highlight code .ow { font-weight: bold } /* Operator.Word */ +.highlight code .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight code .mf { color: #009999 } /* Literal.Number.Float */ +.highlight code .mh { color: #009999 } /* Literal.Number.Hex */ +.highlight code .mi { color: #009999 } /* Literal.Number.Integer */ +.highlight code .mo { color: #009999 } /* Literal.Number.Oct */ +.highlight code .sb { color: #d14 } /* Literal.String.Backtick */ +.highlight code .sc { color: #d14 } /* Literal.String.Char */ +.highlight code .sd { color: #d14 } /* Literal.String.Doc */ +.highlight code .s2 { color: #d14 } /* Literal.String.Double */ +.highlight code .se { color: #d14 } /* Literal.String.Escape */ +.highlight code .sh { color: #d14 } /* Literal.String.Heredoc */ +.highlight code .si { color: #d14 } /* Literal.String.Interpol */ +.highlight code .sx { color: #d14 } /* Literal.String.Other */ +.highlight code .sr { color: #009926 } /* Literal.String.Regex */ +.highlight code .s1 { color: #d14 } /* Literal.String.Single */ +.highlight code .ss { color: #990073 } /* Literal.String.Symbol */ +.highlight code .bp { color: #999999 } /* Name.Builtin.Pseudo */ +.highlight code .vc { color: #008080 } /* Name.Variable.Class */ +.highlight code .vg { color: #008080 } /* Name.Variable.Global */ +.highlight code .vi { color: #008080 } /* Name.Variable.Instance */ +.highlight code .il { color: #009999 } /* Literal.Number.Integer.Long */ |