Jump to: navigation, search


This is clc-wiki, a wiki operating as an offshoot of the comp.lang.c Usenet group. Its aim is to document the C programming language, the comp.lang.c newsgroup and to provide resources related to both.

The content of this wiki is at a very preliminary stage and is very incomplete. The roadmap describes what the site's content might look like when complete and contains a detailed tasklist as well as a history of the wiki.

The detailed policies and conventions of this wiki are up for discussion.

Content and structure

This wiki's content is structured into a hierarchy mostly based on a directory-like titling of articles using the colon character as a separator. The content hierarchy appears in the treeview when using the (default) Treeview skin.

The main use of the other means of structuring content - wiki categories - is to indicate lateral groupings that appear after "closely related" below the page heading. Categories are generally only one level deep; no longer are top-level categories manually added to Category:Root; instead an automatically generated list of all categories can be viewed at Special:Categories.

Following is a description of the existing top-level hierarchies and the contents and completeness of each.

  • C community [almost arbitrarily expandable but what's there is a good start]
comp.lang.c meta-information and information by and about members of the C programming community
  • C language [generally skeletal but complete in parts]
keywords, operators and syntax of the C language; other terms as used in the C Standard or by C programmers
  • C resources [reasonably complete but lacks a general resource listing]
C programming resources and links
solutions to the exercises in Kernighan and Ritchie's "The C Programming Language, 2nd Edition"
an in-depth reference to all standard headers and the identifiers that they define along with portable (as far as possible) implementations
  • C style [skeletal but ripe for additions]
issues of C coding style
a tutorial introduction or more in-depth guide to C (content, style and approach are currently under discussion)

Cross-referencing and syntax highlighting

C code blocks are syntax highlighted by a wiki extension. Keywords and standard library functions in the code are hyperlinked to the appropriate reference page on this wiki.

Meta-content and its structure

  • Project aka clc-wiki [slowly evolving]
The "Project" namespace has been recently renamed from "Clc" to "clc-wiki". It contains all meta-topical documentation and discussion related to clc-wiki, including configuration notes, policy, guidelines and planning.
  • Planning [mostly historical]
The "Planning" namespace has been grafted onto the treeview under the "clc-wiki" ("Project") namespace; it contains discussion, ideas and code used whilst planning/developing this wiki. This namespace is appropriate for use as a sandbox or for drafting ideas for discussion. Not all articles are listed in the treeview (top-level leaf nodes are pruned) - to view the complete list visit Special:Allpages and select the Planning namespace in the dropdown selector.
  • Development [limited content]
The "Development" hierarchy (not a namespace) has been grafted onto the treeview under the "clc-wiki" ("Project") namespace; it's intended for articles about development for or relating to clc-wiki.
  • Historical
The "Historical" sub-context of the "clc-wiki" ("Project") namespace contains older scripts used whilst setting up clc-wiki.
  • Help [slowly evolving]
The main page contains an anonymously editable Q&A for anything clc-wiki-related. Other pages under the Help namespace currently contain editing and treeview help.

Configuration and software

clc-wiki runs on a slightly customised version of the Mediawiki software. The Project:Config:Apache, Project:Config:Wiki and Project:Config pages and their children exist to document the site's configuration and customisation.

There's also a detailed MediaWiki user guide on WikiMedia's meta site.

Other information about clc-wiki

Other sources of information about clc-wiki are:

describes policies and conventions relating to clc-wiki: copyright, editing behaviour, C code, content and structure
describes database and wiki software backups, reviews of C code in article content
how to report bugs, request features; also leave or view general feedback, discussion and comments here
history and origins, future directions and detailed todo list
  • People
all user accounts are viewable at Special:Listusers; the server admin is User:FlashGordon

Editing and contributing

All that's required to make an edit is an account, which you can create by clicking the link at the top of the page. Accounts are made available under an expectation of one-per-person and legitimate use.

If you'd like to get involved, the content ideas described in the roadmap are open to anyone with the knowledge and will to contribute, and there's an automatically generated list of "wanted" pages at Special:WantedPages, based on "red links" - feel free to pick one and have at it! If you plan on making less than trivial contributions, consider reading fully through the policies and conventions document and commenting on anything that you're dissatisfied with or have suggestions for. Also, the procedures document might have been expanded by the time that you read this - at time of writing it's mostly a placeholder.

If you'd just like to make a quick correction or addition, the notes below should be enough.

Contributing quickstart

This quickstart is for those ducking in for a quick first edit and not wanting to read all of the policies and conventions:

  • Accuracy overrides form: avoid making superficial changes that might affect technical accuracy. If in doubt, leave a note on the talk page before going ahead and editing.
  • Any material that you add is licenced under the GFDL and any code that you contribute is released into the public domain unless you specify another licence compatible with or equal to the GFDL. Don't contribute code or other material that you have no right to licence as described in this paragraph.
  • Use K&R style to format contributed code - run it through indent -kr if you can
  • Summarise your edit using the summary box and describe more complex or significant changes on the article's talk page
  • Use only the talk page to discuss changes and for other meta-discussion, never the article itself (a brief note to indicate outdated information in need of update is acceptable; as are edits to placeholder-page content suggestions)
  • Sign any comments that you make on the talk page so that others can follow the conversation. Don't delete content from talk pages or modify the words of others
  • Formatting help: Editing-specific help is available through Help:Editing.

Monitoring changes

Global changes can be viewed on the Special:Recentchanges page or through an RSS feed available on that page.

After registering an email address you can elect to watch specific pages for changes through email alerts.

An IRC channel for monitoring changes has not been set up but is supported by the Mediawiki software.

Personal tools