E x p r e s s


Table of contents

Index
News
Screenshots
Development
Downloads
Links

[SourceForge]

How to contribute

If you want to help develop Express, please check the TODO and contact Uwe Hermann or Brian St. Pierre <bstpierre at users dot sourceforge dot net>. You will be given CVS-access soon, and can then 'commit' your changes directly into the CVS-repository.

You can of course always send patches, too.

Comments and suggestions are always welcome.

CVS

Express is available via CVS. Please check these explanations to learn how you can checkout the source.

You can also browse the CVS-repository online , if you wish.

Mailing-lists

There's a developer's mailing-list called express-devel , which is used for technical discussions, as well as (at the moment) for announcements, user-questions etc.

express-cvs is a mailing-list which is used to keep developers up-to-date with the code. Every commit a developer does, is automatically reported on this mailing-list.

Express Projectpage at Sourceforge

Besides CVS and mailing-lists, there are many other services available at Sourceforge, such as forums or bug-tracking. You can check them all out at the Express Project-page .

Coding Guidelines

If you indend to contribute code to Express, please stick to the following coding guidelines:
  • indentation width is 2 spaces and brace style is K&R-like:
         int foobar(char *filename) {
           int i;
           for (i=0; i<99; i++) {
             foo();
             bar(i, "blah");
           }
         }
        
  • don't put spaces between the parenthesis of function-arguments.

    Correct: foobar(char *filename);
    Wrong: foobar( char *filename );

  • do put a space after if, for, while, switch etc.:

    Correct: if (bla == NULL) ...
    Wrong: if(bla == NULL) ...

  • put a line of asterisks before each function for better readability

  • keep the files small(max. 300 lines of code per file)

  • write only 80 characters/line where possible

  • procedure names should reflect what they do, function names should reflect what is returned by them

  • if you can identify a function as returning a boolean from its name (e.g isalpha()) then it should return TRUE or FALSE. If the name doesn't sound like the function returns a boolean (e.g. do_this_and_that()), then it should return 0 on success, and -1 on errors.

Note: This coding-sytle if a mixture of my own preferred coding-style and the one version 0.0.7 of Express had. This is work in progress, any suggestions to improve the guidelines are welcome.

Todo

There are lots of things which need to be done:
  • use the newer GtkItemFactory for the menus
  • make back/forward buttons work properly
  • find all bugs which cause segfaults
  • compile a list of goals for this project, i.e what should be included in this browser, what shouldn't
  • add proxy-support
  • multiple browser support with gtk-xmhtml(requires the "clicked" callback to recognise which particular browser is being invoked)
  • remote image loading(apparently you can register data retrieval function with gtk_xmhtml_set_image_procs, to allow remote images to be loaded as such, rather than looking for local files
  • the lower toolbar should be the full width of the window, with the URL entry stretched to fit.
  • add some commandline-parameters, at least --version and --help
  • replace all sprintf/strcpy/strcmp with the safer snprintf/strncpy/strncmp
  • draw icons for the rest of the menu-bar-items (there's only one for 'open' at the moment)
  • draw a spinning logo on the right of the window, which indicates network traffic, if it is rotating
  • fix code to not only display local images, but also remote ones
  • add some more menu-entries or options, e.g. "show images y/n", "render blink-tag y/n", "render animated gifs y/n" etc. to give the user more freedom of what he/she wants to see.
  • The menu entry "Document Source" should open a new window and display the source in there, instead of outputting it to stderr
  • add a progress-bar for downloads and loading pages
  • check the return-value of every system-call and do a perror() if an error occurs
  • use a config-file to save preferences, especially the user "Home"-URL, which should not be hardcoded to "http://localhost/" but freely chosen by the user


Last update: January 1, 1970

Copyright (C) 2000 Uwe Hermann