Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- #define ABS(a) (((a) < 0) ? -(a) : (a))
- char *unescape_html_UTF8(const char *data)
- {
- size_t i = 0;
- size_t len = (data) ? strlen(data) : 0;
- char *result = malloc(len + 1);
- int tagflag = 0;
- int iB = 0;
- memset(result,0,len);
- for(; i < len; ++i)
- {
- char *semicol = NULL;
- if(data[i] == '&' && data[i+1] == '#' && (semicol = strstr(data+i,";")) != NULL)
- {
- int n = atoi(&data[i+2]);
- if(n >= 0x800)
- {
- result[iB++] = (char)(0xe0 | ((n >> 12) & 0x0f));
- result[iB++] = (char)(0x80 | ((n >> 6 ) & 0x3f));
- result[iB++] = (char)(0x80 | ((n ) & 0x3f));
- }
- else if(n >= 0x80)
- {
- result[iB++] = (char)(0xc0 | ((n >> 6) & 0x1f));
- result[iB++] = (char)(0x80 | ((n ) & 0x3f));
- }
- else
- {
- result[iB++] = (char)n;
- }
- i = (int)ABS(semicol-data);
- }
- else
- {
- /* "Replace" a <br> tag with a newline char (... not really supposed to be here... ut well..) */
- if(data[i] == '<') {
- tagflag = 1;
- continue;
- }
- if(tagflag == 0 ) result[iB++] = data[i];
- else if(data[i] == '>') result[iB++] = '\n';
- if(data[i] == '>') tagflag = 0;
- }
- }
- result[iB] = 0;
- return result;
- }
- int main(void)
- {
- char *lyrics = unescape_html_UTF8("In einer Höhle tief unter dem Berg<br />Am flackernden Feuer, dem Tageslicht so fern<br />Lebt da ein Männchen, so hutzelig und alt<br />mit seiner Fiedel, die bucklige Gestalt<br /><br />Wenn dann das Mondlicht den Berggipfel erklimmt<br />Dann packt er die Fiedel, ganz liebevoll gestimmt<br />Zieht in die Wälder im nächtlichen Schein<br />Und spielt dort den Tieren ein kleines Liedelein<br /><br />Andächtig lauschen die Vögel dem Gespiel<br />Da steigt in ihre Köpfe ein seltsames Gefühl<br />Sie wundern sich noch kurz was ihn'n wiederfahren ist<br />und fallen plötzlich alle mausetot aus dem Geäst<br /><br />Die Bären, sie sitzen so friedlich im Laub<br />da kommt schon das Männchen und spielt die Fiedel laut<br />mit heulendem Gebrüll renn' sie in den Wald davon<br />doch wieder einmal viel zu spät und keiner entkam<br /><br />Wurzelbert, Wurzelbert, Wurzelbert, spiel die Fiedel!<br />Wurzelbert, Wurzelbert, Wurzelbert, spiel die Fiedel!<br />Wurzelbert, Wurzelbert, Wurzelbert, spiel die Fiedel!<br />Wurzelbert, Wurzelbert, Wurzelbert, spiel die Fiedel!<br /><br />Dunkel der Weiher, das Männchen erscheint <br />Weit über das Wasser der Klang der Fiedel reicht<br />Bis auf den Grund hinab die Melodie so weich<br />voll von weißen Karpfenbäuchen ist der schöne Teich<br /><br />Einsam, geschlagen, das Männchen zieht nun heim<br />wie hasst er und liebt er sein hölzern Fiedelein ...<br /><br />Wurzelbert, Wurzelbert, Wurzelbert, spiel die Fiedel!<br />Wurzelbert, Wurzelbert, Wurzelbert, spiel die Fiedel!<br />Wurzelbert, Wurzelbert, Wurzelbert, spiel die Fiedel!<br />Wurzelbert, Wurzelbert, Wurzelbert, spiel die Fiedel!<br /><br />Meilen des Wanderns durchs Dickicht so tief<br />eine Horde langer Haare, ums Feuer tanzen sie<br />Er hebt seine Fiedel hoch an sein Kinn zu spieln<br />Die Leute halten inne, gebannt lauschen sie ihm<br /><br />Nach Stunden des Spielens ein tosender Applaus<br />Die Stimmung ist am kochen und die Frauen ziehn sich aus!<br />Die Menschen bejubeln den alten Wurzelmann,<br />der Fraun mit seinen Wurzeln noch viel froher machen kann!<br /><br />Wurzelbert! Wurzelbert! Wurzelbert! <br />Spiel die Fiedel!");
- if(lyrics) {
- puts(lyrics);
- if(lyrics) free(lyrics);
- }
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement