staticfox@staticfox:/srv/staticfox.net/public_html/routing$ cat links.txt
[Home] [Art] [Twitter]

staticfox@staticfox:/srv/staticfox.net/public_html$ # Welcome! Additional information is at the bottom of this page!
staticfox@staticfox:/srv/staticfox.net/public_html$ clang site.c -std=c11 -Wall -Wextra -Werror -pedantic -o site
staticfox@staticfox:/srv/staticfox.net/public_html$
staticfox@staticfox:/srv/staticfox.net/public_html$ ./site
Welcome to my site!
Below, you can find some information about me as well as how to get ahold of me.

About me
I am a programmer, with a background in C, C++, Ruby, PHP, Python, Haskell, and Go.
I currently am a developer for the GameSurge IRC Network, Rizon IRC Network, KVIrc IRC Client,
Charybdis IRCd, UGC Gaming League, and Toontown Rewritten.

How to yell at me
Github: https://github.com/staticfox
Email: staticfox@staticfox.net
IRC: #blindsight @ irc.gamesurge.net

Sites referenced
GameSurge: https://GameSurge.net/
Rizon: https://rizon.net/
KVIrc: http://www.kvirc.net/ + https://github.com/kvirc
Charybdis: http://charybdis.io/ + https://github.com/charybdis-ircd
UGC League: http://www.ugcleague.com/
Toontown Rewritten: https://www.toontownrewritten.com/

staticfox@staticfox:/srv/staticfox.net/public_html$ nano site.c

GNU nano 2.5.3-svn
Modified
File /srv/staticfox.net/public_html/site.c

/*
 * https://staticfox.net: A less than useful website
 * site.c: The website home page
 *
 * Copyright (C) 2016 staticfox <staticfox@staticfox.net>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 * USA
 */


#include <stdio.h>

struct text_node {
    const char *tagline;
    const char *description;
};

static void
getIntro(struct text_node *greet)
{
    greet->tagline = "Welcome to my site!";
    greet->description = "Below, you can find some information about me as well as how to get ahold of me.\n";
}

static void
getAbout(struct text_node *about)
{
    about->tagline = "About me";
    about->description = "I am a programmer, with a background in C, C++, Ruby, PHP, Python, Haskell, and Go.\n"
                         "I currently am a developer for the GameSurge IRC Network, Rizon IRC Network, KVIrc IRC Client,\n"
                         "Charybdis IRCd, UGC Gaming League, and Toontown Rewritten.\n";
}

static void
getContact(struct text_node *contact)
{
    contact->tagline = "How to yell at me";
    contact->description = "Github: https://github.com/staticfox\n"
                           "Email: staticfox@staticfox.net\n";
                           "IRC: #blindsight @ irc.gamesurge.net\n";
}

static void
getSiteRefs(struct text_node *ref)
{
    ref->tagline = "Sites referenced";
    ref->description = "GameSurge: https://GameSurge.net/\n"
                       "Rizon: https://rizon.net/\n"
                       "KVIrc: http://www.kvirc.net/ + https://github.com/kvirc\n"
                       "Charybdis: http://charybdis.io/ + https://github.com/charybdis-ircd\n"
                       "UGC League: http://www.ugcleague.com/\n"
                       "Toontown Rewritten: https://www.toontownrewritten.com/\n";
}

static void
printData(struct text_node *nodes, size_t count)
{
    for(size_t i = 0; i < count; i++)
    {
        if(!nodes[i].tagline)
            continue;

        printf("%s\n", nodes[i].tagline);
        printf("%s\n", nodes[i].description);
    }
}

int
main(void)
{
    size_t idx = 0;
    struct text_node nodes[4];

    getIntro(&nodes[idx++]);
    getAbout(&nodes[idx++]);
    getContact(&nodes[idx++]);
    getSiteRefs(&nodes[idx++]);

    printData(nodes, sizeof(nodes) / sizeof(*nodes));

    return 0;
}

[ Read 94 lines ]
^G
 Get Help
^O
 Write Out
^W
 Where Is
^K
 Cut Text
^J
 Justify
^C
 Cur Pos
^Y
 Prev Page
M-\
 First Line
M-W
 WhereIs Next
^^
 Mark Text
M-}
 Indent Text
^X
 Exit
^R
 Read File
^\
 Replace
^U
 Uncut Text
^T
 To Spell
^_
 Go To Line
^V
 Next Page
M-/
 Last Line
M-]
 To Bracket
M-^
 Copy Text
M-{
 Unindent Text