#define nonempty(X) ((X) != NULL && (int)strlen(X) > 0)

extern void capitalize(char *s) ;
/* makes first char uppercase, all others lowercase */

extern void uncapitalize(char *s) ;
/* makes all chars lowercase */

extern void strip_trailing_spaces(char *s) ;
/* strips trailing "spaces" (i.e. items returning true to isspace())
   from the string */

extern void no_cache() ;
/* issues the proper HTTP header for disabling caching of page */
/* must be issued before return_header call */ 

extern void redirect(char *url) ;
/* issues the proper HTTP header for redirection to the give url */

extern void return_nothing() ;
/* issues the proper HTTP header to cause the browser state to remain 
   unchanged */

extern void return_header(char *content_type) ;
/* issues the proper HTTP header to specify the given content-type */

//extern void decode_query_string(...) ;
extern void decode_query_string(int count, ...) ;
/* used to automatically place the contents of form variables into
   variables. 
   should be called as follows:
   decode_query_string("lab1", &var1, "lab2", &var2, ..., "labn", &varn, NULL);
   where lab1, lab2, ... labn are the NAMEs given the form vars
   and var1, var2,..., varn are pointers to char.
*/

