BenBE's humble thoughts Thoughts the world doesn't need yet …


GeSHi on Git

Filed under: GeSHi — Schlagwörter: , , , , — BenBE @ 09:55:09

It’s FINALLY done!

GeSHi is now officially available on GitHub!

Text für „GeSHi on Git“ anzeigen
Direkt zum Beitrag

Flattr this!


Zero is too large!

Filed under: GeSHi — Schlagwörter: , , , , , — BenBE @ 22:36:02

Welcome to our new series of strange bugs. Today we’ve got a brand new candidate called emptyness which is a really great star on the floor of PHP bugs. I was being stumbled upon this one by Thomas Puls who mailed me about the fact, that if you highlight a single 0 with GeSHi, it magically disappears.

Text für „Zero is too large!“ anzeigen
Direkt zum Beitrag

Flattr this!


Doing updates

Filed under: GeSHi — Schlagwörter: , , , , , , — BenBE @ 13:07:46

What does it take to get Debian to update a package?

More than two years, about 50 mails, 10 people from 3 different Debian-related IRC channels, 4 bugs filed by upstream and 2 security-related issues reported to the Security team … Sound’s legit IMHO.

Text für „Doing updates“ anzeigen
Direkt zum Beitrag

Flattr this!


News in and around GeSHi

Filed under: GeSHi — Schlagwörter: , , , , , , , — BenBE @ 00:00:14

Being way overdue, and not only because some other projects askednagged for a release, I’m really pleased I finally had everything together last week so I could do the release of GeSHi Besides the 18 new language files there are also two important bugfixes addressing problems in contrib scripts.

Text für „News in and around GeSHi“ anzeigen
Direkt zum Beitrag

Flattr this!


Last steps towards GeSHi

Filed under: GeSHi — Schlagwörter: , , , , , , , , — BenBE @ 01:06:12

Hi guys,

I know it’s been quite a bit since the last release of GeSHi and even though there’s been some confusion about what the most recent version actually was, I’ll probably lighten up the confusion a bit and present some good news to all of you who are waiting for some of the most recently included language files. But first things first.

Text für „Last steps towards GeSHi“ anzeigen
Direkt zum Beitrag

Flattr this!


DCPU-16 highlighting

Filed under: GeSHi — Schlagwörter: , , , — BenBE @ 00:55:54

Not quite 0x0001 0000 0000 0000 years since the last post in this category but still long enough to justify emitting a new sign that there’s still some developement going on with GeSHi. And it’s quite a coincidence that Markus „Notch“ Persson is taking over GitHub with its own new language now being highlighted. And since most assembly languages are quite easy to highlight it’s only natural to add support for highlighting of this new language for GeSHi.

So there it is: After only about 10 minutes looking at the language specs the basic structure looked simple enough and since GeSHi already supported a bunch of different assembly languages it’s only natural to use another one of them as the template. In this case I decided go for Z80 assembly as the ZiLOG Z80 instruction set is quite simple and still the language file was elaborate enough to support all the features required by Notch’s new assembly language. Actually: I even could remove some features not required to properly highlight DCPU-16.

After a short clean-up of the language file – removing all the old instructions, registers and directives – it took only few more steps to fill in the list of supported instructions: In the case of the DCPU-16 instruction set this is a quite small set of only 16 instructions, 11 registers and 3 „memory shortcuts“. Thus there was not that much to copy from the specs, althoug the example given there looks quite nice when rendered with this new language file:

; Try some basic stuff
              SET A, 0x30              ; 7c01 0030
              SET [0x1000], 0x20       ; 7de1 1000 0020
              SUB A, [0x1000]          ; 7803 1000
              IFN A, 0x10              ; c00d 
                 SET PC, crash         ; 7dc1 001a [*]
; Do a loopy thing
              SET I, 10                ; a861
              SET A, 0x2000            ; 7c01 2000
:loop         SET [0x2000+I], [A]      ; 2161 2000
              SUB I, 1                 ; 8463
              IFN I, 0                 ; 806d
                 SET PC, loop          ; 7dc1 000d [*]
; Call a subroutine
              SET X, 0x4               ; 9031
              JSR testsub              ; 7c10 0018 [*]
              SET PC, crash            ; 7dc1 001a [*]

Text für „DCPU-16 highlighting“ anzeigen
Direkt zum Beitrag

Flattr this!


FizzBuzz BrainFuck

Filed under: Fun,GeSHi — Schlagwörter: , , — BenBE @ 01:17:35

Well yeah, after some nasty person dropped a link about why programmers are so bad at programming I somehow got to have a look at the Rosetta Code project’s site detailling this task and found (not to my surprise) that noone had solved that task — yet! So I sat down and implemented it. Usually this task should take you only about a few minutes but since I hardly ever programm anything in BrainFuck it took me roughly 45 minutes to complete. But well: Here’s the result (Beware: Ugly code)!

Text für „FizzBuzz BrainFuck“ anzeigen
Direkt zum Beitrag

Flattr this!


GeSHi getting signed

Filed under: GeSHi — Schlagwörter: , , — BenBE @ 23:10:08

Because of a recent attack against SourceForge all the GeSHi releases will be available signed to allow for verification of authenticity of the released files.

Text für „GeSHi getting signed“ anzeigen
Direkt zum Beitrag

Flattr this!


Final crafting on GeSHi

Filed under: GeSHi — Schlagwörter: , , , , , — BenBE @ 03:24:46

After a somewhat longer period of silence from my side, due to some vacation I took, I’m proud to announce that there have quite some changes for the next release of GeSHi accumulated in the SVN trunk which will be the basis for the next release of GeSHi. As most of you might already have guessed the next release will be version, which is the first version of GeSHi in 2011 and also the first version since half a year. So what’s new with this version?

Well, the question is a bit complicated to answer, so let me split this into three parts. The first of which is all the changes to the parser of GeSHi itself. One of the changes here is a change of the handling of dashes when creating regular expressions which are used internally for GeSHi to speed up the highlighting of keywords. The problem here was that in some occasions dashes were left unescaped as part of the regexp and thus got a special meaning within character groups causing unpredictable behaviour. Although this couldn’t be used for malicious activity it was an annoying side effect causing GeSHi to crash when encountering language files which used dashes in their keywords. COBOL is one of them, Scheme another.

But let’s stay with the internal changes for another moment: There was another bug this time which affected e.g. PHP, but actually quite a bunch of other languages too. The reason for this bug is a bit more complicated to explain though, as it involves some of the internas and the precautions of GeSHi to avoid XSS attacks by the code that should be highlighted. When you look at the code sample provided there you will notice the semicolon before the offending if, right? Now, as we all know, GeSHi tries to output HTML code. This fact is important here because the semicolon – even though it doesn’t need escaping is crucial for valid HTML as it terminates escape sequences and therefore needs special treatment as we can’t simply go ahead and markup every ; we find: It might be part of an escape sequence. Luckily GeSHi works around the problem here and escapes two characters not which their HTML entity, but with something else: | with <PIPE> and – you guessed ; with <SEMI>, avoiding this disambiguity this way. Now for the problem: The default boundary checks for keywords didn’t take these replacements into account and thus hadn’t had < and > in them and therefore did NEVER match any keyword accompanied by one of those two characters. Literal < and > BTW are escaped beforehand and thus appear as &lt; and &gt; in the source when checking boundaries. Coming with this release also < and > are part of the default lists of characters allowed as boundary of a word and thus enabling the proper highlighting of the sample code in the bug report linked above.

The third issue regarding the parser is not a change of the parser itself, but rather a convenience check added to the language file checking script which didn’t verify filenames properly and thus sometimes returned invalid filenames to be checked. This bug didn’t allow for code execution, but rather produced annoying error messages when some temporary files clobbered up your language file directory.

After we’re now done with the changes to the parser let’s discuss the changes to existing language file since we have quite a few already and I’m sure I did miss even some more in the depths of my inbox! So here we go: Users of Algol68 might like the greatly improved language file by Neville Dempsey which didn’t make it into the previous release since there were some issues I needed feedback on. But even having the language file in a bit later should be early enough for you to enjoy.

Text für „Final crafting on GeSHi“ anzeigen
Direkt zum Beitrag

Flattr this!


GeSHi finally packaged

Filed under: GeSHi — Schlagwörter: , , , , — BenBE @ 15:59:12

I know it’s about two months now, but I finally got around to do the last steps that were missing for GeSHi Packaging it 😉

Text für „GeSHi finally packaged“ anzeigen
Direkt zum Beitrag

Flattr this!

Older Posts »

Powered by WordPress