mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-27 03:20:22 +08:00
7e6ad5100c
Most function and variable definitions are now preceded by its extern definition, for error checking. Retyped a number of functions, usually to return void. Fixed a number of printf format errors. API changes (in ldap/include): Added avl_dup_ok, avl_prefixapply, removed ber_fatten (probably typo for ber_flatten), retyped ldap_sort_strcasecmp, grew lutil.h. A number of `extern' declarations are left (some added by protoize), to be cleaned away later. Mostly strdup(), strcasecmp(), mktemp(), optind, optarg, errno.
90 lines
2.8 KiB
C
90 lines
2.8 KiB
C
#if !defined(lint)
|
|
static char copyright[] = "Copyright 1992 The University of Adelaide";
|
|
#endif
|
|
|
|
/*
|
|
* H E L P
|
|
*
|
|
* Author: Mark R. Prior
|
|
* Communications and Systems Branch
|
|
* Information Technology Division
|
|
* The University of Adelaide
|
|
* E-mail: mrp@itd.adelaide.edu.au
|
|
* Date: October 1992
|
|
* Version: 1.7
|
|
* Description:
|
|
* The Help module
|
|
*
|
|
* Redistribution and use in source and binary forms are permitted
|
|
* provided that the above copyright notice and this paragraph are
|
|
* duplicated in all such forms and that any documentation,
|
|
* advertising materials, and other materials related to such
|
|
* distribution and use acknowledge that the software was developed
|
|
* by the University of Adelaide. The name of the University may not
|
|
* be used to endorse or promote products derived from this software
|
|
* without specific prior written permission.
|
|
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
|
|
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
|
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
*/
|
|
|
|
#include "whois++.h"
|
|
|
|
void
|
|
needHelp( char *reason )
|
|
{
|
|
char filename[MAXPATHLEN];
|
|
char buffer[BUFSIZ];
|
|
int i;
|
|
DIR *dir;
|
|
struct dirent *entry;
|
|
FILE *help;
|
|
|
|
if ( reason == NULL || *reason == '\0' ) {
|
|
sprintf( filename, "%s/%s/general", helpDir, language );
|
|
if ( ( help = fopen( filename, "r" ) ) == NULL ) {
|
|
printFormatted( lineLength, TRUE, stdout,
|
|
"Sorry cannot open general information help file" );
|
|
return;
|
|
}
|
|
} else {
|
|
sprintf( filename, "%s/%s/%s", helpDir, language,
|
|
lowerCase( reason ) );
|
|
if ( ( help = fopen( filename, "r" ) ) == NULL ) {
|
|
sprintf( filename, "%s/%s/%s", helpDir, defaultLanguage,
|
|
lowerCase( reason ) );
|
|
if ( ( help = fopen( filename, "r" ) ) == NULL ) {
|
|
printFormatted( lineLength, TRUE, stdout,
|
|
"Sorry cannot open help file for topic \"%s\"",
|
|
reason );
|
|
return;
|
|
} else {
|
|
printFormatted( lineLength, TRUE, stdout,
|
|
"Sorry no help in %s, using default language (%s).",
|
|
language, defaultLanguage );
|
|
}
|
|
}
|
|
}
|
|
while ( fgets( buffer, BUFSIZ, help ) != NULL ) {
|
|
i = strlen( buffer );
|
|
while ( i-- > 0 && ( buffer[i] == '\n' || buffer[i] == '\r' ) )
|
|
buffer[i] = '\0';
|
|
printFormatted( lineLength, FALSE, stdout, "%s", buffer );
|
|
}
|
|
fclose( help );
|
|
if ( reason == NULL || *reason == '\0' ) {
|
|
sprintf( filename, "%s/%s", helpDir, language );
|
|
if ( ( dir = opendir( filename ) ) == NULL )
|
|
return;
|
|
printFormatted( lineLength, FALSE, stdout, "" );
|
|
printFormatted( lineLength, FALSE, stdout,
|
|
"Further information is available on the following topics" );
|
|
for ( entry = readdir( dir ); entry != NULL; entry = readdir( dir ) )
|
|
if ( !EQ(entry->d_name, "." ) && !EQ(entry->d_name, ".." ) )
|
|
printFormatted( lineLength, FALSE, stdout,
|
|
" %s", lowerCase( entry->d_name ) );
|
|
closedir( dir );
|
|
}
|
|
return;
|
|
}
|