rtoss - Diff between revs 213 and 214

Subversion Repositories:
Rev:
Show entire file - Ignore whitespace
Rev 213 Rev 214
Line 9... Line 9...
9 * first parameter: a pointer to a char array, buffer to hold password 9 * first parameter: a pointer to a char array, buffer to hold password
10 * second parameter: password buffer size, including null terminator 10 * second parameter: password buffer size, including null terminator
11 * return value: funtion returns 1 if max buffer is reached, else returns 0 11 * return value: funtion returns 1 if max buffer is reached, else returns 0
12 */ 12 */
13   13  
14 int Password( char * buffer, int buffSize, int show) -  
15 { -  
16     int count = 0; -  
17     INPUT_RECORD inRec; -  
18     HANDLE hInput, hOutput; -  
19     DWORD dwCharsRead, dwCharsWritten; -  
20       -  
21     buffSize--; -  
22     hInput = GetStdHandle(STD_INPUT_HANDLE); -  
23     hOutput = GetStdHandle(STD_OUTPUT_HANDLE); -  
24       -  
25     while(ReadConsoleInput(hInput, &inRec, 1, &dwCharsRead) && count < buffSize) -  
26         if(inRec.EventType == KEY_EVENT && inRec.Event.KeyEvent.bKeyDown == TRUE) -  
27             if(isprint(inRec.Event.KeyEvent.uChar.AsciiChar)) { -  
28                 buffer[count++] = inRec.Event.KeyEvent.uChar.AsciiChar; -  
-   14 int Password(char * buffer, int buffSize, HANDLE hInput, HANDLE hOutput, int show) {
-   15         int count = 0;
-   16         INPUT_RECORD inRec;
-   17         DWORD dwCharsRead, dwCharsWritten;
-   18
-   19         buffSize--;
-   20
-   21         while(ReadConsoleInput(hInput, &inRec, 1, &dwCharsRead) && count < buffSize)
-   22                 if(inRec.EventType == KEY_EVENT && inRec.Event.KeyEvent.bKeyDown == TRUE)
-   23                         if(isprint(inRec.Event.KeyEvent.uChar.AsciiChar)) {
-   24                                 buffer[count++] = inRec.Event.KeyEvent.uChar.AsciiChar;
29                                 if(show) 25                                 if(show)
30                         WriteConsole(hOutput, "*", 1, &dwCharsWritten, NULL); -  
31             } else -  
32             if(inRec.Event.KeyEvent.uChar.AsciiChar == '\b' && count > 0) { -  
-   26                                         WriteConsole(hOutput, "*", 1, &dwCharsWritten, NULL);
-   27                         } else
-   28                         if(inRec.Event.KeyEvent.uChar.AsciiChar == '\b' && count > 0) {
33                                 if(show) 29                                 if(show)
34                         WriteConsole(hOutput, "\b \b", 3, &dwCharsWritten, NULL); -  
35                 count--; -  
36             } else -  
37             if(inRec.Event.KeyEvent.uChar.AsciiChar == '\r') -  
38                 break; -  
39       -  
40     buffer[count] = '\0'; -  
41       -  
42     if(count == buffSize) -  
43     return(1); -  
44     else -  
45     return(0); -  
-   30                                         WriteConsole(hOutput, "\b \b", 3, &dwCharsWritten, NULL);
-   31                                 count--;
-   32                         } else
-   33                         if(inRec.Event.KeyEvent.uChar.AsciiChar == '\r')
-   34                                 break;
-   35
-   36         buffer[count] = '\0';
-   37
-   38         if(count == buffSize)
-   39         return(1);
-   40         else
-   41         return(0);
46 } 42 }
47   43  
48 int main( int argc, char * argv[] ) -  
49 { -  
50     char buffer[256]; -  
-   44 int main(int argc, char* argv[]) {
-   45         HANDLE hInput, hOutput;
-   46         DWORD dwCharsWritten;
-   47
-   48         char buffer[256];
-   49         int show = 0;
-   50         int start = 1;
-   51         int i;
-   52
-   53         if(argc > 1) {
-   54                 if(argv[1][0] == '-'){
-   55                         if(argv[1][1] == '?'){
-   56                                 printf("Usage: %s [-s|?] [\"prompt\"]\n",argv[0]);
-   57                                 return 1;
-   58                         } else if(argv[1][1] == 's'){
-   59                                 show = 1;
-   60                                 ++start;
-   61                         }
-   62                 }
-   63         }
-   64
-   65         hInput = GetStdHandle(STD_INPUT_HANDLE);
-   66         hOutput = GetStdHandle(STD_ERROR_HANDLE);
-   67
-   68         if(argc > 1) {
-   69                 for(i = start; i < argc; ++i) {
-   70                         WriteConsole(hOutput, argv[i], strlen(argv[i]), &dwCharsWritten, NULL);
-   71                         WriteConsole(hOutput, " ", 1, &dwCharsWritten, NULL);
-   72                 }
-   73         }
51 74
52     Password(buffer, 256, 0); -  
-   75         Password(buffer, 256, hInput, hOutput, show);
53 76
54         printf("%s",buffer); 77         printf("%s",buffer);
55 78
56         if(buffer[0]) 79         if(buffer[0])
57             return 0; -  
-   80                 return 0;
58         else 81         else
59                 return 1; 82                 return 1;
60 } 83 }