summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2014-05-05 14:56:59 -0600
committerDrew DeVault <sir@cmpwn.com>2014-05-05 14:56:59 -0600
commitd4f3959ff402442fc16508e1d012b6d745462ad6 (patch)
tree502066e067f61e7add77d5b016fabe2176211f59
parent6c829cf0f68e3c1c07ebdd0c98f97524ba0cefde (diff)
Syntax highlighting
-rw-r--r--_config.yml2
-rw-r--r--_posts/2014-02-02-The-worst-bugs.md48
-rw-r--r--css/base.css2
-rw-r--r--css/syntax.css118
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 */