зеркало из https://github.com/mozilla/pjs.git
294 строки
6.9 KiB
C
294 строки
6.9 KiB
C
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
*
|
|
* The contents of this file are subject to the Netscape Public License
|
|
* Version 1.0 (the "NPL"); you may not use this file except in
|
|
* compliance with the NPL. You may obtain a copy of the NPL at
|
|
* http://www.mozilla.org/NPL/
|
|
*
|
|
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
|
* for the specific language governing rights and limitations under the
|
|
* NPL.
|
|
*
|
|
* The Initial Developer of this code under the NPL is Netscape
|
|
* Communications Corporation. Portions created by Netscape are
|
|
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
|
* Reserved.
|
|
*/
|
|
#include "mkutils.h"
|
|
#include "mkgeturl.h"
|
|
|
|
#include <stdio.h>
|
|
#include <ctype.h>
|
|
#include <stdarg.h>
|
|
|
|
PUBLIC Bool
|
|
FE_SecurityDialog(MWContext * context, int message)
|
|
{
|
|
switch(message)
|
|
{
|
|
case SD_INSECURE_POST_FROM_SECURE_DOC:
|
|
case SD_INSECURE_POST_FROM_INSECURE_DOC:
|
|
case SD_ENTERING_SECURE_SPACE:
|
|
case SD_LEAVING_SECURE_SPACE:
|
|
case SD_INSECURE_DOCS_WITHIN_SECURE_DOCS_NOT_SHOWN:
|
|
case SD_REDIRECTION_TO_INSECURE_DOC:
|
|
case SD_REDIRECTION_TO_SECURE_SITE:
|
|
printf("Security message: %d", message);
|
|
}
|
|
}
|
|
|
|
void
|
|
TESTFE_AllConnectionsComplete(MWContext * context)
|
|
{
|
|
}
|
|
|
|
void
|
|
TESTFE_EnableClicking(MWContext * context)
|
|
{
|
|
}
|
|
|
|
void
|
|
XFE_SetProgressBarPercent(MWContext * context, int percent)
|
|
{
|
|
}
|
|
|
|
PUBLIC const char *
|
|
FE_UsersMailAddress(void)
|
|
{
|
|
return("montulli@netscape.com");
|
|
}
|
|
|
|
PUBLIC const char *
|
|
FE_UsersFullName(void)
|
|
{
|
|
return(NULL);
|
|
}
|
|
|
|
extern void sample_exit_routine(URL_Struct *URL_s,int status,MWContext *window_id);
|
|
|
|
PUBLIC void
|
|
FE_EditMailMessage (MWContext *context,
|
|
const char * to_address,
|
|
const char * subject,
|
|
const char * newsgroups,
|
|
const char * references,
|
|
const char * news_url)
|
|
{
|
|
#if 0
|
|
URL_Struct * URL_s;
|
|
char buffer[356];
|
|
|
|
sprintf(buffer, "mailto:%.256s", to_address);
|
|
|
|
URL_s = NET_CreateURLStruct(buffer, FALSE);
|
|
|
|
StrAllocCopy(URL_s->post_headers,"Subject: This is a test\r\nX-URL: http://bogus\r\n");
|
|
StrAllocCopy(URL_s->post_data,"This is a test, this is only a test\n");
|
|
URL_s->method = URL_POST_METHOD;
|
|
|
|
NET_GetURL(URL_s, FO_CACHE_AND_PRESENT, (MWContext *)0 ,sample_exit_routine);
|
|
|
|
return;
|
|
#endif
|
|
}
|
|
|
|
|
|
PUBLIC void
|
|
FE_ConnectToRemoteHost(MWContext * window_id, int url_type, char * hostname, char * port, char * username)
|
|
{
|
|
}
|
|
|
|
|
|
extern NET_StreamClass *
|
|
IL_NewStream (int format_out,
|
|
void *data_obj,
|
|
URL_Struct *URL_s,
|
|
MWContext *context)
|
|
{
|
|
return(NULL);
|
|
}
|
|
|
|
fe_MakeViewSourceStream (int format_out,
|
|
void *data_obj,
|
|
URL_Struct *URL_s,
|
|
MWContext *context)
|
|
{
|
|
return(NULL);
|
|
}
|
|
|
|
fe_MakeMailToStream (int format_out,
|
|
void *data_obj,
|
|
URL_Struct *URL_s,
|
|
MWContext *context)
|
|
{
|
|
return(NULL);
|
|
}
|
|
|
|
|
|
fe_MakePPMStream (int format_out,
|
|
void *data_obj,
|
|
URL_Struct *URL_s,
|
|
MWContext *context)
|
|
{
|
|
return(NULL);
|
|
}
|
|
|
|
Bool
|
|
TESTFE_ShowAllNewsArticles(MWContext * window_id)
|
|
{
|
|
return(FALSE);
|
|
}
|
|
|
|
|
|
intn
|
|
LO_Format(void * data_object, PA_Tag *tag, intn status)
|
|
{
|
|
return(0);
|
|
}
|
|
|
|
|
|
void
|
|
PR_LogPrint (const char* message, ...)
|
|
{
|
|
int actualLen;
|
|
static char xp_Buffer[2048];
|
|
va_list stack;
|
|
|
|
va_start (stack, message);
|
|
actualLen = vsprintf (xp_Buffer, message, stack);
|
|
va_end (stack);
|
|
|
|
fwrite(xp_Buffer, 1, strlen(xp_Buffer), stderr);
|
|
fprintf (stderr, "\n");
|
|
}
|
|
|
|
|
|
|
|
PUBLIC int32 FE_GetContextID(MWContext * window_id)
|
|
{
|
|
return((int) window_id);
|
|
}
|
|
|
|
PUBLIC int TESTFE_FileSortMethod(MWContext * window_id)
|
|
{
|
|
return(SORT_BY_NAME);
|
|
}
|
|
|
|
PUBLIC Bool TESTFE_UseFancyNewsgroupListing (MWContext * window_id)
|
|
{
|
|
return(TRUE);
|
|
}
|
|
|
|
PUBLIC Bool TESTFE_UseFancyFTP(MWContext * window_id)
|
|
{
|
|
return(1);
|
|
}
|
|
|
|
PUBLIC int TESTFE_CheckForInterrupt(void * window_id)
|
|
{
|
|
/* check check check check and check again */
|
|
return(0);
|
|
}
|
|
|
|
PUBLIC void TESTFE_Spinner (MWContext * window_id)
|
|
{
|
|
/* big wheel keep on rolling. Proud Mary keep on.... */
|
|
}
|
|
|
|
PUBLIC void TESTFE_Alert (MWContext * window_id, CONST char * mess)
|
|
{
|
|
TRACEMSG(("WWW Alert: %s\n", mess));
|
|
}
|
|
|
|
PUBLIC void TESTFE_Progress (MWContext * window_id, CONST char * mess)
|
|
{
|
|
TRACEMSG((" %s ...\n", mess));
|
|
}
|
|
|
|
PUBLIC void TESTFE_GraphProgressInit (MWContext * window_id, URL_Struct *url, int32 total_length)
|
|
{
|
|
TRACEMSG((" GraphInit: %s is %d long...\n", url->address, total_length));
|
|
}
|
|
|
|
PUBLIC void TESTFE_GraphProgressDestroy (MWContext * window_id, URL_Struct *url, int32 bytes_transferred, int32 total_length)
|
|
{
|
|
TRACEMSG((" GraphDestroy: %s is %d long...\n", url->address, total_length));
|
|
}
|
|
|
|
PUBLIC void TESTFE_GraphProgress (MWContext * window_id, URL_Struct *url, int32 cur_length, int32 length_delta, int32 total_length)
|
|
{
|
|
TRACEMSG((" GraphProgress: %d of %d ...\n", cur_length, total_length));
|
|
}
|
|
|
|
PUBLIC Bool TESTFE_Confirm (MWContext * window_id, CONST char * mess)
|
|
{
|
|
char Reply[4];
|
|
char *URep;
|
|
|
|
fprintf(stderr, "WWW: %s (y/n) ", mess);
|
|
|
|
|
|
fgets(Reply, 4, stdin); /* get reply, max 3 characters */
|
|
URep=Reply;
|
|
while (*URep) {
|
|
if (*URep == '\n') {
|
|
*URep = (char)0; /* Overwrite newline */
|
|
break;
|
|
}
|
|
*URep=toupper(*URep);
|
|
URep++; /* This was previously embedded in the TOUPPER */
|
|
/* call an it became evaluated twice because */
|
|
}
|
|
|
|
if ((PL_strcmp(Reply,"YES")==0) || (PL_strcmp(Reply,"Y")==0))
|
|
return(YES);
|
|
else
|
|
return(NO);
|
|
}
|
|
|
|
/* Prompt for answer and get text back
|
|
*/
|
|
PUBLIC char * TESTFE_Prompt (MWContext * window_id, CONST char * mess, CONST char * deflt)
|
|
{
|
|
char temp[512];
|
|
char * t_string = 0;
|
|
|
|
fprintf(stderr, "Prompt: %s", mess);
|
|
if (deflt) fprintf(stderr, " (RETURN for [%s]) ", deflt);
|
|
|
|
fgets(temp, 200, stdin);
|
|
temp[PL_strlen(temp)-1] = (char)0; /* Overwrite newline */
|
|
|
|
StrAllocCopy(t_string, *temp ? temp : deflt);
|
|
return t_string;
|
|
}
|
|
|
|
|
|
/* Prompt for password without echoing the reply
|
|
*/
|
|
PUBLIC char * TESTFE_PromptPassword (MWContext * window_id, CONST char * mess)
|
|
{
|
|
char *result = NULL;
|
|
char pw[80];
|
|
|
|
printf("%s",mess ? mess : "Type your password:");
|
|
scanf("%s",pw);
|
|
|
|
StrAllocCopy(result, pw);
|
|
return result;
|
|
}
|
|
|
|
|
|
PUBLIC void TESTFE_PromptUsernameAndPassword (MWContext * window_id,
|
|
CONST char * mess,
|
|
char ** username,
|
|
char ** password)
|
|
{
|
|
if (mess)
|
|
fprintf(stderr, "WWW: %s\n", mess);
|
|
*username = TESTFE_Prompt(window_id, "Username: ", *username);
|
|
*password = TESTFE_PromptPassword(window_id, "Password: ");
|
|
}
|
|
|