Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

230 lines
6.8 KiB

/*++
Copyright (c) 1990 Microsoft Corporation
Module Name:
More.hxx
Abstract:
This module contains the definition for the MORE class, which
implements the DOS5-compatible More pager.
Author:
Ramon Juan San Andres (ramonsa) 24-Apr-1990
Revision History:
--*/
#if !defined( _MORE_ )
#define _MORE_
#include "arg.hxx"
#include "object.hxx"
#include "program.hxx"
//
// Commonly used character constants
//
#define CARRIAGERETURN '\r'
#define LINEFEED '\n'
#define FORMFEED '\f'
//
// Exit levels
//
#define EXIT_NORMAL 0
#define EXIT_ERROR 1
//
// For prompting
//
#define STRING_BUFFER_SIZE 128
//
// Forward references
//
DECLARE_CLASS( ARRAY );
DECLARE_CLASS( FSN_FILE );
DECLARE_CLASS( KEYBOARD );
DECLARE_CLASS( STREAM );
DECLARE_CLASS( WSTRING );
DECLARE_CLASS( PAGER );
DECLARE_CLASS( MORE );
class MORE : public PROGRAM {
public:
DECLARE_CONSTRUCTOR( MORE );
NONVIRTUAL
~MORE (
);
NONVIRTUAL
BOOLEAN
Initialize (
);
NONVIRTUAL
VOID
DoPaging (
);
private:
NONVIRTUAL
VOID
Construct (
);
NONVIRTUAL
VOID
CheckArgumentConsistency (
);
NONVIRTUAL
VOID
DeallocateThings (
);
NONVIRTUAL
BOOLEAN
DoOption (
IN PFSN_FILE FsnFile,
IN PPAGER Pager,
OUT PULONG LinesInpage,
OUT PBOOLEAN ClearScreen
);
NONVIRTUAL
VOID
GetArgumentsCmd(
);
NONVIRTUAL
VOID
GetArgumentsMore(
);
NONVIRTUAL
VOID
GetRegistryInfo(
);
NONVIRTUAL
VOID
InitializeThings (
);
NONVIRTUAL
VOID
PageStream (
IN PSTREAM Stream,
IN PFSN_FILE FsnFile,
IN ULONG FirstLineToDisplay,
IN ULONG FilesLeft
);
NONVIRTUAL
VOID
ParseArguments(
IN PWSTRING CmdLine,
OUT PARRAY ArgArray
);
NONVIRTUAL
VOID
Prompt (
IN PFSN_FILE FsnFile,
IN PPAGER Pager,
IN BOOLEAN ShowLineNumber,
IN BOOLEAN ShowHelp,
IN MSGID OtherMsg
);
NONVIRTUAL
PWSTRING
QueryMessageString (
IN MSGID MsgId
);
NONVIRTUAL
ULONG
ReadNumber (
);
NONVIRTUAL
VOID
SetArguments(
);
//
// Command-line arguments.
//
BOOLEAN _ExtendedModeSwitch;
BOOLEAN _ClearScreenSwitch;
BOOLEAN _ExpandFormFeedSwitch;
BOOLEAN _SqueezeBlanksSwitch;
BOOLEAN _HelpSwitch;
LONG _StartAtLine;
LONG _TabExp;
PMULTIPLE_PATH_ARGUMENT _FilesArgument;
//
// String with end-of line delimiters
//
PWSTRING _LineDelimiters;
//
// Strings used while prompting
//
PWSTRING _Percent;
PWSTRING _Line;
PWSTRING _Help;
PWSTRING _OtherPrompt;
//
// Options during paging.
//
PWSTRING _DisplayLinesOption;
PWSTRING _SkipLinesOption;
PWSTRING _NextFileOption;
PWSTRING _ShowLineNumberOption;
PWSTRING _QuitOption;
PWSTRING _Help1Option;
PWSTRING _Help2Option;
//
// The quit flag is true when we want to stop paging
//
BOOLEAN _Quit;
//
// For displaying strings
//
BYTE _StringBuffer0[STRING_BUFFER_SIZE];
BYTE _StringBuffer1[STRING_BUFFER_SIZE];
BYTE _StringBuffer2[STRING_BUFFER_SIZE];
BYTE _StringBuffer3[STRING_BUFFER_SIZE];
//
// The real keyboard
//
PKEYBOARD _Keyboard;
};
#endif // _MORE_