diff options
Diffstat (limited to 'src')
79 files changed, 3072 insertions, 2839 deletions
diff --git a/src/AttrList.h b/src/AttrList.h index c466714d..b73babc7 100644 --- a/src/AttrList.h +++ b/src/AttrList.h @@ -4,33 +4,36 @@ #include <HText.h> #include <HTMLDTD.h> -enum { - ABS_OFF = 0, - STACK_OFF = 0, - STACK_ON, - ABS_ON -}; +#ifdef __cplusplus +extern "C" { +#endif + enum { + ABS_OFF = 0, + STACK_OFF = 0, + STACK_ON, + ABS_ON + }; #define STARTAT 8 -enum { - DSTYLE_LINK = HTML_A + STARTAT, - DSTYLE_STATUS = HTML_ELEMENTS + STARTAT, - DSTYLE_ALINK, /* active link */ - DSTYLE_NORMAL, /* default attributes */ - DSTYLE_OPTION, /* option on the option screen */ - DSTYLE_VALUE, /* value on the option screen */ - DSTYLE_HIGH, - DSTYLE_CANDY, /* possibly going to vanish */ - DSTYLE_WHEREIS, /* whereis search target */ - DSTYLE_ELEMENTS -}; - -typedef struct { - int color; /* color highlighting to be done */ - int mono; /* mono highlighting to be done */ - int cattr; /* attributes to go with the color */ -} HTCharStyle; + enum { + DSTYLE_LINK = HTML_A + STARTAT, + DSTYLE_STATUS = HTML_ELEMENTS + STARTAT, + DSTYLE_ALINK, /* active link */ + DSTYLE_NORMAL, /* default attributes */ + DSTYLE_OPTION, /* option on the option screen */ + DSTYLE_VALUE, /* value on the option screen */ + DSTYLE_HIGH, + DSTYLE_CANDY, /* possibly going to vanish */ + DSTYLE_WHEREIS, /* whereis search target */ + DSTYLE_ELEMENTS + }; + + typedef struct { + int color; /* color highlighting to be done */ + int mono; /* mono highlighting to be done */ + int cattr; /* attributes to go with the color */ + } HTCharStyle; #define HText_characterStyle CTRACE((tfp,"HTC called from %s/%d\n",__FILE__,__LINE__));_internal_HTC @@ -38,16 +41,19 @@ typedef struct { #define HText_characterStyle _internal_HTC #if defined(USE_COLOR_STYLE) -extern void _internal_HTC(HText *text, int style, int dir); + extern void _internal_HTC(HText *text, int style, int dir); #define TEMPSTRINGSIZE 256 -extern char class_string[TEMPSTRINGSIZE]; + extern char class_string[TEMPSTRINGSIZE]; /* stack of attributes during page rendering */ #define MAX_LAST_STYLES 128 -extern int last_styles[MAX_LAST_STYLES]; -extern int last_colorattr_ptr; + extern int last_styles[MAX_LAST_STYLES]; + extern int last_colorattr_ptr; #endif +#ifdef __cplusplus +} +#endif #endif diff --git a/src/GridText.c b/src/GridText.c index 6f2819a3..acf4503e 100644 --- a/src/GridText.c +++ b/src/GridText.c @@ -388,6 +388,38 @@ typedef struct { int column; /* Zero-based column value */ } HTTabID; +typedef enum { + S_text, + S_esc, + S_dollar, + S_paren, + S_nonascii_text, + S_dollar_paren, + S_jisx0201_text +} eGridState; /* Escape sequence? */ + +#ifdef USE_TH_JP_AUTO_DETECT +typedef enum { /* Detected Kanji code */ + DET_SJIS, + DET_EUC, + DET_NOTYET, + DET_MIXED +} eDetectedKCode; + +typedef enum { + SJIS_state_neutral, + SJIS_state_in_kanji, + SJIS_state_has_bad_code +} eSJIS_status; + +typedef enum { + EUC_state_neutral, + EUC_state_in_kanji, + EUC_state_in_kana, + EUC_state_has_bad_code +} eEUC_status; +#endif + /* Notes on struct _Htext: * next_line is valid if stale is false. * top_of_screen line means the line at the top of the screen @@ -436,33 +468,11 @@ struct _HText { HTkcode kcode; /* Kanji code? */ HTkcode specified_kcode; /* Specified Kanji code */ #ifdef USE_TH_JP_AUTO_DETECT - enum _detected_kcode { - DET_SJIS, - DET_EUC, - DET_NOTYET, - DET_MIXED - } detected_kcode; /* Detected Kanji code */ - enum _SJIS_status { - SJIS_state_neutral, - SJIS_state_in_kanji, - SJIS_state_has_bad_code - } SJIS_status; - enum _EUC_status { - EUC_state_neutral, - EUC_state_in_kanji, - EUC_state_in_kana, - EUC_state_has_bad_code - } EUC_status; -#endif - enum grid_state { - S_text, - S_esc, - S_dollar, - S_paren, - S_nonascii_text, - S_dollar_paren, - S_jisx0201_text - } state; /* Escape sequence? */ + eDetectedKCode detected_kcode; + eSJIS_status SJIS_status; + eEUC_status EUC_status; +#endif + eGridState state; /* Escape sequence? */ int kanji_buf; /* Lead multibyte */ int in_sjis; /* SJIS flag */ int halted; /* emergency halt */ @@ -1173,13 +1183,13 @@ HText *HText_new(HTParentAnchor *anchor) HText *HText_new2(HTParentAnchor *anchor, HTStream *stream) { - HText *this = HText_new(anchor); + HText *result = HText_new(anchor); if (stream) { - this->target = stream; - this->targetClass = *stream->isa; /* copy action procedures */ + result->target = stream; + result->targetClass = *stream->isa; /* copy action procedures */ } - return this; + return result; } /* Free Entire Text @@ -1236,12 +1246,7 @@ void HText_free(HText *self) * Free the hidden links list. -FM */ if (self->hidden_links) { - char *href = NULL; - HTList *cur = self->hidden_links; - - while (NULL != (href = (char *) HTList_nextObject(cur))) - FREE(href); - HTList_delete(self->hidden_links); + LYFreeStringList(self->hidden_links); self->hidden_links = NULL; } @@ -2382,10 +2387,7 @@ static void display_page(HText *text, int line_number, * Free any un-reallocated links[] entries * from the previous page draw. -FM */ - for (i = nlinks; i < last_nlinks; i++) { - LYSetHilite(i, NULL); - FREE(links[i].lname); - } + LYFreeHilites(nlinks, last_nlinks); last_nlinks = nlinks; /* @@ -3594,7 +3596,7 @@ void HText_appendCharacter(HText *text, int ch) if ((HTCJK == JAPANESE) && (text->detected_kcode != DET_MIXED) && (text->specified_kcode != SJIS) && (text->specified_kcode != EUC)) { unsigned char c; - enum _detected_kcode save_d_kcode; + eDetectedKCode save_d_kcode; c = UCH(ch); save_d_kcode = text->detected_kcode; @@ -4171,7 +4173,7 @@ void HText_appendCharacter(HText *text, int ch) (text->T.output_utf8 && target_cu + UTF_XLEN(ch) >= LYcols_cu(text))) { int saved_kanji_buf; - int saved_state; + eGridState saved_state; new_line(text); line = text->last_line; @@ -5967,7 +5969,7 @@ HTParentAnchor *HText_nodeAnchor(HText *text) HTChildAnchor *HText_childNextNumber(int number, void **prev) { /* Sorry, TextAnchor is not declared outside this file, use a cast. */ - TextAnchor *a = *prev; + TextAnchor *a = (TextAnchor *) *prev; if (!HTMainText || number <= 0) return (HTChildAnchor *) 0; /* Fail */ @@ -7337,18 +7339,8 @@ HTAnchor *HText_linkSelTo(HText *me GCC_UNUSED, */ void HTSearchQueries_free(void) { - char *query; - HTList *cur = search_queries; - - if (!cur) - return; - - while (NULL != (query = (char *) HTList_nextObject(cur))) { - FREE(query); - } - HTList_delete(search_queries); + LYFreeStringList(search_queries); search_queries = NULL; - return; } /* @@ -7391,7 +7383,8 @@ void HTAddSearchQuery(char *query) int do_www_search(DocInfo *doc) { char searchstring[256], temp[256], *cp, *tmpaddress = NULL; - int ch, recall; + int ch; + RecallType recall; int QueryTotal; int QueryNum; BOOLEAN PreviousSearch = FALSE; @@ -8866,8 +8859,12 @@ static void HText_AddHiddenLink(HText *text, TextAnchor *textanchor) */ if ((dest = HTAnchor_followLink(textanchor->anchor)) && (text->hiddenlinkflag != HIDDENLINKS_IGNORE || - HTList_isEmpty(text->hidden_links))) - HTList_appendObject(text->hidden_links, HTAnchor_address(dest)); + HTList_isEmpty(text->hidden_links))) { + char *cp_freeme = NULL; + + HTList_appendObject(text->hidden_links, cp_freeme = HTAnchor_address(dest)); + FREE(cp_freeme); + } return; } @@ -9281,7 +9278,7 @@ char *HText_setLastOptionValue(HText *text, char *value, /* * Deal with newlines or tabs. */ - convert_to_spaces(value, FALSE); + LYReduceBlanks(value); if (!op_ptr) { /* @@ -10380,7 +10377,8 @@ int HText_SubmitForm(FormInfo * submit_item, DocInfo *doc, char *link_name, if (!HTMainText) return 0; - thisform = HTList_objectAt(HTMainText->forms, form_number - 1); + thisform = (PerFormInfo *) HTList_objectAt(HTMainText->forms, form_number + - 1); /* Sanity check */ if (!thisform) { CTRACE((tfp, "SubmitForm: form %d not in HTMainText's list!\n", @@ -11526,7 +11524,7 @@ BOOL HText_hasUTF8OutputSet(HText *text) void HText_setKcode(HText *text, const char *charset, LYUCcharset *p_in) { - BOOL explicit; + BOOL charset_explicit; if (!text) return; @@ -11537,7 +11535,7 @@ void HText_setKcode(HText *text, const char *charset, if (!charset && !p_in) { return; } - explicit = charset ? TRUE : FALSE; + charset_explicit = charset ? TRUE : FALSE; /* * If no explicit charset string, use the implied one. - kw */ @@ -11563,11 +11561,11 @@ void HText_setKcode(HText *text, const char *charset, * is specified explicitely, otherwise text->kcode would cause * mishandling Japanese strings. -- TH */ - if (explicit && (!strcmp(charset, "shift_jis") || - !strcmp(charset, "x-sjis") || /* 1997/11/28 (Fri) 18:11:33 */ - !strcmp(charset, "x-shift-jis"))) { + if (charset_explicit && (!strcmp(charset, "shift_jis") || + !strcmp(charset, "x-sjis") || /* 1997/11/28 (Fri) 18:11:33 */ + !strcmp(charset, "x-shift-jis"))) { text->kcode = SJIS; - } else if (explicit + } else if (charset_explicit #ifdef EXP_JAPANESEUTF8_SUPPORT && strcmp(charset, "utf-8") #endif @@ -11601,7 +11599,7 @@ void HText_setKcode(HText *text, const char *charset, } } - if (explicit + if (charset_explicit #ifdef EXP_JAPANESEUTF8_SUPPORT && strcmp(charset, "utf-8") #endif diff --git a/src/GridText.h b/src/GridText.h index 40cc7591..e5e2d44f 100644 --- a/src/GridText.h +++ b/src/GridText.h @@ -1,4 +1,3 @@ - /* Specialities of GridText as subclass of HText */ #ifndef LYGRIDTEXT_H @@ -12,13 +11,16 @@ #include <HTFont.h> +#include <HTCJK.h> + +#ifdef __cplusplus +extern "C" { +#endif #define TABSTOP 8 #define SPACES " " /* must be at least TABSTOP spaces long */ #define SPLAT '.' - #define NOCHOP 0 #define CHOP 1 - /* just for information: US-ASCII control characters <32 which are not defined in Unicode standard =00 U+0000 NULL @@ -54,230 +56,229 @@ US-ASCII control characters <32 which are not defined in Unicode standard =1E U+001E RECORD SEPARATOR =1F U+001F UNIT SEPARATOR =7F U+007F DELETE -*/ - -extern int HTCurSelectGroupType; -extern char *HTCurSelectGroupSize; +*/ extern int HTCurSelectGroupType; + extern char *HTCurSelectGroupSize; #if defined(VMS) && defined(VAXC) && !defined(__DECC) -extern int HTVirtualMemorySize; -#endif /* VMS && VAXC && !__DECC */ + extern int HTVirtualMemorySize; +#endif /* VMS && VAXC && !__DECC */ -extern HTChildAnchor *HText_childNextNumber(int n, void **prev); -extern void HText_FormDescNumber(int n, const char **desc); + extern HTChildAnchor *HText_childNextNumber(int n, void **prev); + extern void HText_FormDescNumber(int n, const char **desc); /* Is there any file left? */ -extern BOOL HText_canScrollUp(HText *text); -extern BOOL HText_canScrollDown(void); + extern BOOL HText_canScrollUp(HText *text); + extern BOOL HText_canScrollDown(void); /* Move display within window */ -extern void HText_scrollUp(HText *text); /* One page */ -extern void HText_scrollDown(HText *text); /* One page */ -extern void HText_scrollTop(HText *text); -extern void HText_scrollBottom(HText *text); -extern void HText_pageDisplay(int line_num, char *target); -extern BOOL HText_pageHasPrevTarget(void); - -extern int HText_LinksInLines(HText *text, int line_num, int Lines); - -extern void HText_setLastChar(HText *text, char ch); -extern char HText_getLastChar(HText *text); -extern void HText_setIgnoreExcess(HText *text, BOOL ignore); - -extern int HText_sourceAnchors(HText *text); -extern void HText_setStale(HText *text); -extern void HText_refresh(HText *text); -extern const char *HText_getTitle(void); -extern const char *HText_getSugFname(void); -extern void HTCheckFnameForCompression(char **fname, - HTParentAnchor *anchor, - BOOLEAN strip_ok); -extern const char *HText_getLastModified(void); -extern const char *HText_getDate(void); -extern const char *HText_getHttpHeaders(void); -extern const char *HText_getServer(void); -extern const char *HText_getOwner(void); -extern const char *HText_getContentBase(void); -extern const char *HText_getContentLocation(void); -extern const char *HText_getMessageID(void); -extern const char *HText_getRevTitle(void); + extern void HText_scrollUp(HText *text); /* One page */ + extern void HText_scrollDown(HText *text); /* One page */ + extern void HText_scrollTop(HText *text); + extern void HText_scrollBottom(HText *text); + extern void HText_pageDisplay(int line_num, char *target); + extern BOOL HText_pageHasPrevTarget(void); + + extern int HText_LinksInLines(HText *text, int line_num, int Lines); + + extern void HText_setLastChar(HText *text, char ch); + extern char HText_getLastChar(HText *text); + extern void HText_setIgnoreExcess(HText *text, BOOL ignore); + + extern int HText_sourceAnchors(HText *text); + extern void HText_setStale(HText *text); + extern void HText_refresh(HText *text); + extern const char *HText_getTitle(void); + extern const char *HText_getSugFname(void); + extern void HTCheckFnameForCompression(char **fname, + HTParentAnchor *anchor, + BOOLEAN strip_ok); + extern const char *HText_getLastModified(void); + extern const char *HText_getDate(void); + extern const char *HText_getHttpHeaders(void); + extern const char *HText_getServer(void); + extern const char *HText_getOwner(void); + extern const char *HText_getContentBase(void); + extern const char *HText_getContentLocation(void); + extern const char *HText_getMessageID(void); + extern const char *HText_getRevTitle(void); #ifdef USE_COLOR_STYLE -extern const char *HText_getStyle(void); + extern const char *HText_getStyle(void); #endif -extern void HText_setMainTextOwner(const char *owner); -extern void print_wwwfile_to_fd(FILE *fp, BOOLEAN is_email, BOOLEAN is_reply); -extern BOOL HText_select(HText *text); -extern BOOL HText_POSTReplyLoaded(DocInfo *doc); -extern BOOL HTFindPoundSelector(const char *selector); -extern int HTGetRelLinkNum(int num, int rel, int cur); -extern int HTGetLinkInfo(int number, - int want_go, - int *go_line, - int *linknum, - char **hightext, - char **lname); -extern BOOL HText_TAHasMoreLines(int curlink, - int direction); -extern int HTGetLinkOrFieldStart(int curlink, - int *go_line, - int *linknum, - int direction, - BOOLEAN ta_skip); -extern BOOL HText_getFirstTargetInLine(HText *text, - int line_num, - BOOL utf_flag, - int *offset, - int *tLen, - char **data, - const char *target); -extern int HTisDocumentSource(void); -extern void HTuncache_current_document(void); + extern void HText_setMainTextOwner(const char *owner); + extern void print_wwwfile_to_fd(FILE *fp, BOOLEAN is_email, BOOLEAN is_reply); + extern BOOL HText_select(HText *text); + extern BOOL HText_POSTReplyLoaded(DocInfo *doc); + extern BOOL HTFindPoundSelector(const char *selector); + extern int HTGetRelLinkNum(int num, int rel, int cur); + extern int HTGetLinkInfo(int number, + int want_go, + int *go_line, + int *linknum, + char **hightext, + char **lname); + extern BOOL HText_TAHasMoreLines(int curlink, + int direction); + extern int HTGetLinkOrFieldStart(int curlink, + int *go_line, + int *linknum, + int direction, + BOOLEAN ta_skip); + extern BOOL HText_getFirstTargetInLine(HText *text, + int line_num, + BOOL utf_flag, + int *offset, + int *tLen, + char **data, + const char *target); + extern int HTisDocumentSource(void); + extern void HTuncache_current_document(void); #ifdef USE_SOURCE_CACHE -extern BOOLEAN HTreparse_document(void); -extern BOOLEAN HTcan_reparse_document(void); -extern BOOLEAN HTdocument_settings_changed(void); + extern BOOLEAN HTreparse_document(void); + extern BOOLEAN HTcan_reparse_document(void); + extern BOOLEAN HTdocument_settings_changed(void); #endif -extern BOOL HTLoadedDocumentEightbit(void); -extern BOOL HText_LastLineEmpty(HText *me, BOOL IgnoreSpaces); -extern BOOL HText_PreviousLineEmpty(HText *me, BOOL IgnoreSpaces); -extern BOOL HText_inLineOne(HText *text); -extern BOOLEAN HTLoadedDocumentIsHEAD(void); -extern BOOLEAN HTLoadedDocumentIsSafe(void); -extern bstring *HTLoadedDocumentPost_data(void); -extern const char *HTLoadedDocumentBookmark(void); -extern const char *HTLoadedDocumentCharset(void); -extern const char *HTLoadedDocumentTitle(void); -extern const char *HTLoadedDocumentURL(void); -extern const char *HText_HiddenLinkAt(HText *text, int number); -extern int HText_HiddenLinkCount(HText *text); -extern int HText_LastLineOffset(HText *me); -extern int HText_LastLineSize(HText *me, BOOL IgnoreSpaces); -extern int HText_PreviousLineSize(HText *me, BOOL IgnoreSpaces); -extern int HText_getCurrentColumn(HText *text); -extern int HText_getLines(HText *text); -extern int HText_getMaximumColumn(HText *text); -extern int HText_getNumOfBytes(void); -extern int HText_getNumOfLines(void); -extern int HText_getTabIDColumn(HText *text, const char *name); -extern int HText_getTopOfScreen(void); -extern int do_www_search(DocInfo *doc); -extern void HText_NegateLineOne(HText *text); -extern void HText_RemovePreviousLine(HText *text); -extern void HText_setNodeAnchorBookmark(const char *bookmark); -extern void HText_setTabID(HText *text, const char *name); -extern void *HText_pool_calloc(HText *text, unsigned size); + extern BOOL HTLoadedDocumentEightbit(void); + extern BOOL HText_LastLineEmpty(HText *me, BOOL IgnoreSpaces); + extern BOOL HText_PreviousLineEmpty(HText *me, BOOL IgnoreSpaces); + extern BOOL HText_inLineOne(HText *text); + extern BOOLEAN HTLoadedDocumentIsHEAD(void); + extern BOOLEAN HTLoadedDocumentIsSafe(void); + extern bstring *HTLoadedDocumentPost_data(void); + extern const char *HTLoadedDocumentBookmark(void); + extern const char *HTLoadedDocumentCharset(void); + extern const char *HTLoadedDocumentTitle(void); + extern const char *HTLoadedDocumentURL(void); + extern const char *HText_HiddenLinkAt(HText *text, int number); + extern int HText_HiddenLinkCount(HText *text); + extern int HText_LastLineOffset(HText *me); + extern int HText_LastLineSize(HText *me, BOOL IgnoreSpaces); + extern int HText_PreviousLineSize(HText *me, BOOL IgnoreSpaces); + extern int HText_getCurrentColumn(HText *text); + extern int HText_getLines(HText *text); + extern int HText_getMaximumColumn(HText *text); + extern int HText_getNumOfBytes(void); + extern int HText_getNumOfLines(void); + extern int HText_getTabIDColumn(HText *text, const char *name); + extern int HText_getTopOfScreen(void); + extern int do_www_search(DocInfo *doc); + extern void HText_NegateLineOne(HText *text); + extern void HText_RemovePreviousLine(HText *text); + extern void HText_setNodeAnchorBookmark(const char *bookmark); + extern void HText_setTabID(HText *text, const char *name); + extern void *HText_pool_calloc(HText *text, unsigned size); /* "simple table" stuff */ -extern int HText_endStblTABLE(HText *); -extern int HText_trimCellLines(HText *text); -extern void HText_cancelStbl(HText *); -extern void HText_endStblCOLGROUP(HText *); -extern void HText_endStblTD(HText *); -extern void HText_endStblTR(HText *); -extern void HText_startStblCOL(HText *, int, short, BOOL); -extern void HText_startStblRowGroup(HText *, short); -extern void HText_startStblTABLE(HText *, short); -extern void HText_startStblTD(HText *, int, int, short, BOOL); -extern void HText_startStblTR(HText *, short); + extern int HText_endStblTABLE(HText *); + extern int HText_trimCellLines(HText *text); + extern void HText_cancelStbl(HText *); + extern void HText_endStblCOLGROUP(HText *); + extern void HText_endStblTD(HText *); + extern void HText_endStblTR(HText *); + extern void HText_startStblCOL(HText *, int, short, BOOL); + extern void HText_startStblRowGroup(HText *, short); + extern void HText_startStblTABLE(HText *, short); + extern void HText_startStblTD(HText *, int, int, short, BOOL); + extern void HText_startStblTR(HText *, short); /* forms stuff */ -extern void HText_beginForm(char *action, - char *method, - char *enctype, - char *title, - const char *accept_cs); -extern void HText_endForm(HText *text); -extern void HText_beginSelect(char *name, - int name_cs, - BOOLEAN multiple, - char *len); -extern int HText_getOptionNum(HText *text); -extern char *HText_setLastOptionValue(HText *text, - char *value, - char *submit_value, - int order, - BOOLEAN checked, - int val_cs, - int submit_val_cs); -extern int HText_beginInput(HText *text, - BOOL underline, - InputFieldData * I); -extern void HText_endInput(HText *text); -extern int HText_SubmitForm(FormInfo * submit_item, DocInfo *doc, - char *link_name, - char *link_value); -extern void HText_DisableCurrentForm(void); -extern void HText_ResetForm(FormInfo * form); -extern void HText_activateRadioButton(FormInfo * form); -extern BOOLEAN HText_HaveUserChangedForms(HText *text); - -extern HTList *search_queries; /* Previous isindex and whereis queries */ -extern void HTSearchQueries_free(void); -extern void HTAddSearchQuery(char *query); - -extern void user_message(const char *message, - const char *argument); + extern void HText_beginForm(char *action, + char *method, + char *enctype, + char *title, + const char *accept_cs); + extern void HText_endForm(HText *text); + extern void HText_beginSelect(char *name, + int name_cs, + BOOLEAN multiple, + char *len); + extern int HText_getOptionNum(HText *text); + extern char *HText_setLastOptionValue(HText *text, + char *value, + char *submit_value, + int order, + BOOLEAN checked, + int val_cs, + int submit_val_cs); + extern int HText_beginInput(HText *text, + BOOL underline, + InputFieldData * I); + extern void HText_endInput(HText *text); + extern int HText_SubmitForm(FormInfo * submit_item, DocInfo *doc, + char *link_name, + char *link_value); + extern void HText_DisableCurrentForm(void); + extern void HText_ResetForm(FormInfo * form); + extern void HText_activateRadioButton(FormInfo * form); + extern BOOLEAN HText_HaveUserChangedForms(HText *text); + + extern HTList *search_queries; /* Previous isindex and whereis queries */ + extern void HTSearchQueries_free(void); + extern void HTAddSearchQuery(char *query); + + extern void user_message(const char *message, + const char *argument); #define _user_message(msg, arg) mustshow = TRUE, user_message(msg, arg) -extern void www_user_search(int start_line, - DocInfo *doc, - char *target, - int direction); + extern void www_user_search(int start_line, + DocInfo *doc, + char *target, + int direction); -extern void print_crawl_to_fd(FILE *fp, - char *thelink, - char *thetitle); -extern char *stub_HTAnchor_address(HTAnchor * me); + extern void print_crawl_to_fd(FILE *fp, + char *thelink, + char *thetitle); + extern char *stub_HTAnchor_address(HTAnchor * me); -extern void HText_setToolbar(HText *text); -extern BOOL HText_hasToolbar(HText *text); + extern void HText_setToolbar(HText *text); + extern BOOL HText_hasToolbar(HText *text); -extern void HText_setNoCache(HText *text); -extern BOOL HText_hasNoCacheSet(HText *text); + extern void HText_setNoCache(HText *text); + extern BOOL HText_hasNoCacheSet(HText *text); -extern BOOL HText_hasUTF8OutputSet(HText *text); -extern void HText_setKcode(HText *text, - const char *charset, - LYUCcharset *p_in); + extern BOOL HText_hasUTF8OutputSet(HText *text); + extern void HText_setKcode(HText *text, + const char *charset, + LYUCcharset *p_in); -extern void HText_setBreakPoint(HText *text); + extern void HText_setBreakPoint(HText *text); -extern BOOL HText_AreDifferent(HTParentAnchor *anchor, - const char *full_address); + extern BOOL HText_AreDifferent(HTParentAnchor *anchor, + const char *full_address); -extern int HText_ExtEditForm(LinkInfo * form_link); -extern void HText_ExpandTextarea(LinkInfo * form_link, int newlines); -extern int HText_InsertFile(LinkInfo * form_link); + extern int HText_ExtEditForm(LinkInfo * form_link); + extern void HText_ExpandTextarea(LinkInfo * form_link, int newlines); + extern int HText_InsertFile(LinkInfo * form_link); -extern void redraw_lines_of_link(int cur); -extern void LYMoveToLink(int cur, - const char *target, - const char *hightext, - int flag, - BOOL inU, - BOOL utf_flag); + extern void redraw_lines_of_link(int cur); + extern void LYMoveToLink(int cur, + const char *target, + const char *hightext, + int flag, + BOOL inU, + BOOL utf_flag); #ifdef USE_PRETTYSRC -extern void HTMark_asSource(void); + extern void HTMark_asSource(void); #endif -extern int HTMainText_Get_UCLYhndl(void); - -#include <HTCJK.h> + extern int HTMainText_Get_UCLYhndl(void); #ifdef KANJI_CODE_OVERRIDE -extern HTkcode last_kcode; + extern HTkcode last_kcode; #endif -extern HTkcode HText_getKcode(HText *text); -extern void HText_updateKcode(HText *text, HTkcode kcode); -extern HTkcode HText_getSpecifiedKcode(HText *text); -extern void HText_updateSpecifiedKcode(HText *text, HTkcode kcode); + extern HTkcode HText_getKcode(HText *text); + extern void HText_updateKcode(HText *text, HTkcode kcode); + extern HTkcode HText_getSpecifiedKcode(HText *text); + extern void HText_updateSpecifiedKcode(HText *text, HTkcode kcode); -#endif /* LYGRIDTEXT_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYGRIDTEXT_H */ diff --git a/src/HTAlert.h b/src/HTAlert.h index e9a48468..89f60e26 100644 --- a/src/HTAlert.h +++ b/src/HTAlert.h @@ -10,8 +10,10 @@ #include <LYCookie.h> +#ifdef __cplusplus +extern "C" { +#endif #define ALERT_PREFIX_LEN 5 - /* Display a message and get the input * * On entry, @@ -19,28 +21,27 @@ * * On exit, * Return value is malloc'd string which must be freed. - */ -extern char *HTPrompt(const char *Msg, const char *deflt); + */ extern char *HTPrompt(const char *Msg, const char *deflt); /* Display a message, don't wait for input * * On entry, * The input is a list of parameters for printf. */ -extern void HTAlert(const char *Msg); -extern void HTAlwaysAlert(const char *extra_prefix, const char *Msg); -extern void HTInfoMsg(const char *Msg); -extern void HTUserMsg(const char *Msg); -extern void HTUserMsg2(const char *Msg, const char *Arg); + extern void HTAlert(const char *Msg); + extern void HTAlwaysAlert(const char *extra_prefix, const char *Msg); + extern void HTInfoMsg(const char *Msg); + extern void HTUserMsg(const char *Msg); + extern void HTUserMsg2(const char *Msg, const char *Arg); /* Display a progress message for information (and diagnostics) only * * On entry, * The input is a list of parameters for printf. */ -extern const char *HTProgressUnits(int kilobytes); -extern void HTProgress(const char *Msg); -extern void HTReadProgress(long bytes, long total); + extern const char *HTProgressUnits(int kilobytes); + extern void HTProgress(const char *Msg); + extern void HTReadProgress(long bytes, long total); #define _HTProgress(msg) mustshow = TRUE, HTProgress(msg) @@ -48,12 +49,12 @@ extern void HTReadProgress(long bytes, long total); * Indicates whether last HTConfirm was cancelled (^G or ^C) and * resets flag. (so only call once!) - kw */ -extern BOOL HTLastConfirmCancelled(void); + extern BOOL HTLastConfirmCancelled(void); /* * Supports logic for forced yes/no prompt results. */ -extern int HTForcedPrompt(int Opt, const char *Msg, int Dft); + extern int HTForcedPrompt(int Opt, const char *Msg, int Dft); /* Display a message, then wait for 'yes' or 'no', allowing default * response if a return or left-arrow is used. @@ -65,7 +66,7 @@ extern int HTForcedPrompt(int Opt, const char *Msg, int Dft); * If the user enters 'YES', returns TRUE, returns FALSE * otherwise. */ -extern int HTConfirmDefault(const char *Msg, int Dft); + extern int HTConfirmDefault(const char *Msg, int Dft); /* Display a message, then wait for 'yes' or 'no'. * @@ -76,16 +77,16 @@ extern int HTConfirmDefault(const char *Msg, int Dft); * If the user enters 'YES', returns TRUE, returns FALSE * otherwise. */ -extern BOOL HTConfirm(const char *Msg); + extern BOOL HTConfirm(const char *Msg); -extern BOOL confirm_post_resub(const char *address, - const char *title, - int if_imgmap, - int if_file); + extern BOOL confirm_post_resub(const char *address, + const char *title, + int if_imgmap, + int if_file); /* Prompt for password without echoing the reply */ -extern char *HTPromptPassword(const char *Msg); + extern char *HTPromptPassword(const char *Msg); /* Prompt both username and password HTPromptUsernameAndPassword() * --------------------------------- @@ -108,10 +109,10 @@ extern char *HTPromptPassword(const char *Msg); * are NOT freed. * */ -extern void HTPromptUsernameAndPassword(const char *Msg, - char **username, - char **password, - BOOL IsProxy); + extern void HTPromptUsernameAndPassword(const char *Msg, + char **username, + char **password, + BOOL IsProxy); /* Confirm a cookie operation. HTConfirmCookie() * --------------------------- @@ -127,9 +128,9 @@ extern void HTPromptUsernameAndPassword(const char *Msg, * Returns FALSE on cancel, * TRUE if the cookie should be set. */ -extern BOOL HTConfirmCookie(domain_entry * dp, const char *server, - const char *name, - const char *value); + extern BOOL HTConfirmCookie(domain_entry * dp, const char *server, + const char *name, + const char *value); /* Confirm redirection of POST. HTConfirmPostRedirect() * ---------------------------- @@ -142,19 +143,22 @@ extern BOOL HTConfirmCookie(domain_entry * dp, const char *server, * 1 for redirect of POST with content, * 303 for redirect as GET without content */ -extern int HTConfirmPostRedirect(const char *Redirecting_url, - int server_status); + extern int HTConfirmPostRedirect(const char *Redirecting_url, + int server_status); -extern void LYSleepAlert(void); -extern void LYSleepDebug(void); -extern void LYSleepInfo(void); -extern void LYSleepMsg(void); -extern void LYSleepReplay(void); + extern void LYSleepAlert(void); + extern void LYSleepDebug(void); + extern void LYSleepInfo(void); + extern void LYSleepMsg(void); + extern void LYSleepReplay(void); #ifdef HAVE_STRERROR #define LYStrerror strerror #else -extern char *LYStrerror(int code); -#endif /* HAVE_STRERROR */ + extern char *LYStrerror(int code); +#endif /* HAVE_STRERROR */ -#endif /* HTALERT_H */ +#ifdef __cplusplus +} +#endif +#endif /* HTALERT_H */ diff --git a/src/HTForms.h b/src/HTForms.h index 71ef376d..8cf01eaa 100644 --- a/src/HTForms.h +++ b/src/HTForms.h @@ -5,93 +5,93 @@ #include <LYStructs.h> #endif /* LYSTRUCTS_H */ -/* in LYForms.c */ - +#ifdef __cplusplus +extern "C" { +#endif /* change_form_link() calls change_form_link_ex() with all its args and FALSE * as last arg - */ -extern int change_form_link(int cur, - DocInfo *newdoc, - BOOLEAN *refresh_screen, - BOOLEAN use_last_tfpos, - BOOLEAN immediate_submit); - -extern int change_form_link_ex(int cur, - DocInfo *newdoc, - BOOLEAN *refresh_screen, - BOOLEAN use_last_tfpos, - BOOLEAN immediate_submit, - BOOLEAN draw_only); + */ extern int change_form_link(int cur, + DocInfo *newdoc, + BOOLEAN *refresh_screen, + BOOLEAN use_last_tfpos, + BOOLEAN immediate_submit); + + extern int change_form_link_ex(int cur, + DocInfo *newdoc, + BOOLEAN *refresh_screen, + BOOLEAN use_last_tfpos, + BOOLEAN immediate_submit, + BOOLEAN draw_only); /* InputFieldData is used to pass the info between HTML.c and Gridtext.c in * HText_beginInput() */ -typedef struct _InputFieldData { - const char *accept; - const char *align; - int checked; - const char *class; - int disabled; - const char *error; - const char *height; - const char *id; - const char *lang; - const char *max; - const char *maxlength; - const char *md; - const char *min; - const char *name; - int size; - const char *src; - const char *type; - char *value; - const char *width; - int name_cs; /* charset handle for name */ - int value_cs; /* charset handle for value */ - const char *accept_cs; -} InputFieldData; + typedef struct _InputFieldData { + const char *accept; + const char *align; + int checked; + const char *iclass; + int disabled; + const char *error; + const char *height; + const char *id; + const char *lang; + const char *max; + const char *maxlength; + const char *md; + const char *min; + const char *name; + int size; + const char *src; + const char *type; + char *value; + const char *width; + int name_cs; /* charset handle for name */ + int value_cs; /* charset handle for value */ + const char *accept_cs; + } InputFieldData; /* The OptionType structure is for a linked list of option entries */ -typedef struct _OptionType { - char *name; /* the name of the entry */ - char *cp_submit_value; /* the value to submit */ - int value_cs; /* charset value is in */ - struct _OptionType *next; /* the next entry */ -} OptionType; + typedef struct _OptionType { + char *name; /* the name of the entry */ + char *cp_submit_value; /* the value to submit */ + int value_cs; /* charset value is in */ + struct _OptionType *next; /* the next entry */ + } OptionType; /* * The FormInfo structure is used to contain the form field data within each * anchor. A pointer to this structure is in the TextAnchor struct. */ -typedef struct _FormInfo { - char *name; /* the name of the link */ - int number; /* which form is the link within */ - int type; /* string, int, etc. */ - char *value; /* user entered string data */ - char *orig_value; /* the original value */ - int size; /* width on the screen */ - unsigned maxlength; /* max width of data */ - int group; /* a group associated with the link + typedef struct _FormInfo { + char *name; /* the name of the link */ + int number; /* which form is the link within */ + int type; /* string, int, etc. */ + char *value; /* user entered string data */ + char *orig_value; /* the original value */ + int size; /* width on the screen */ + unsigned maxlength; /* max width of data */ + int group; /* a group associated with the link * this is used for select's */ - int num_value; /* value of the numerical fields */ - int hrange; /* high numerical range */ - int lrange; /* low numerical range */ - OptionType *select_list; /* array of option choices */ - char *submit_action; /* form's action */ - int submit_method; /* form's method */ - char *submit_enctype; /* form's entype */ - char *submit_title; /* form's title */ - BOOL no_cache; /* Always resubmit? */ - char *cp_submit_value; /* option value to submit */ - char *orig_submit_value; /* original submit value */ - int size_l; /* The length of the option list */ - int disabled; /* If YES, can't change values */ - int name_cs; - int value_cs; - char *accept_cs; -} FormInfo; + int num_value; /* value of the numerical fields */ + int hrange; /* high numerical range */ + int lrange; /* low numerical range */ + OptionType *select_list; /* array of option choices */ + char *submit_action; /* form's action */ + int submit_method; /* form's method */ + char *submit_enctype; /* form's entype */ + char *submit_title; /* form's title */ + BOOL no_cache; /* Always resubmit? */ + char *cp_submit_value; /* option value to submit */ + char *orig_submit_value; /* original submit value */ + int size_l; /* The length of the option list */ + int disabled; /* If YES, can't change values */ + int name_cs; + int value_cs; + char *accept_cs; + } FormInfo; /* * As structure for info associated with a form. There is some redundancy @@ -99,17 +99,17 @@ typedef struct _FormInfo { * (as opposed to form fields) per doc is expected to be rather small. More * things which are per form rather than per field could be moved here. - kw */ -typedef struct _PerFormInfo { - int number; /* form number, see GridText.c */ - /* except for the last two, the following fields aren't actually used.. */ - int disabled; /* If YES, can't change values */ - struct _PerFormInfo *next; /* pointer to next form in doc */ - int nfields; /* number of fields */ - FormInfo *first_field; - FormInfo *last_field; /* pointer to last field in form */ - char *accept_cs; - char *thisacceptcs; /* used during submit */ -} PerFormInfo; + typedef struct _PerFormInfo { + int number; /* form number, see GridText.c */ + /* except for the last two, the following fields aren't actually used.. */ + int disabled; /* If YES, can't change values */ + struct _PerFormInfo *next; /* pointer to next form in doc */ + int nfields; /* number of fields */ + FormInfo *first_field; + FormInfo *last_field; /* pointer to last field in form */ + char *accept_cs; + char *thisacceptcs; /* used during submit */ + } PerFormInfo; #define HYPERTEXT_ANCHOR 1 #define INPUT_ANCHOR 2 /* forms mode input fields */ @@ -151,7 +151,9 @@ typedef struct _PerFormInfo { #define LAST_ORDER 3 /* in LYForms.c */ -extern void show_formlink_statusline(const FormInfo * form, - int for_what); - -#endif /* HTFORMS_H */ + extern void show_formlink_statusline(const FormInfo * form, + int for_what); +#ifdef __cplusplus +} +#endif +#endif /* HTFORMS_H */ diff --git a/src/HTInit.c b/src/HTInit.c index 24f62f61..db684ad1 100644 --- a/src/HTInit.c +++ b/src/HTInit.c @@ -236,7 +236,8 @@ static char *GetCommand(char *s, char **t) s = LYSkipBlanks(s); /* marca -- added + 1 for error case -- oct 24, 1993. */ - s2 = malloc(strlen(s) * 2 + 1); /* absolute max, if all % signs */ + s2 = typeMallocn(char, strlen(s) * 2 + 1); /* absolute max, if all % signs */ + if (!s2) ExitWithError(MEMORY_EXHAUSTED_ABORT); @@ -345,7 +346,8 @@ static int ProcessMailcapEntry(FILE *fp, struct MailcapEntry *mc, AcceptMedia me need = len + strlen(rawentry) + 1; if (need > rawentryalloc) { rawentryalloc += (2000 + need); - rawentry = realloc(rawentry, rawentryalloc); + rawentry = typeRealloc(char, rawentry, rawentryalloc); + if (!rawentry) ExitWithError(MEMORY_EXHAUSTED_ABORT); } diff --git a/src/HTML.c b/src/HTML.c index 218842ae..821fd3e6 100644 --- a/src/HTML.c +++ b/src/HTML.c @@ -698,9 +698,9 @@ static void addClassName(const char *prefix, if ((have + need) >= Style_className_len) { Style_className_len += 1024 + 2 * (have + need); if (Style_className == 0) { - Style_className = malloc(Style_className_len); + Style_className = typeMallocn(char, Style_className_len); } else { - Style_className = realloc(Style_className, Style_className_len); + Style_className = typeRealloc(char, Style_className, Style_className_len); } if (Style_className == NULL) outofmem(__FILE__, "addClassName"); @@ -920,7 +920,7 @@ static int HTML_start_element(HTStructured * me, int element_number, HTChildAnchor *ID_A = NULL; /* HTML_foo_ID anchor */ int url_type = 0, i = 0; char *cp = NULL; - HTMLElement ElementNumber = element_number; + HTMLElement ElementNumber = (HTMLElement) element_number; BOOL intern_flag = FALSE; short stbl_align = HT_ALIGN_NONE; int status = HT_OK; @@ -1842,7 +1842,7 @@ static int HTML_start_element(HTStructured * me, int element_number, ElementNumber = HTML_LH; } else { me->new_style = me->sp[0].style; - ElementNumber = me->sp[0].tag_number; + ElementNumber = (HTMLElement) me->sp[0].tag_number; UPDATE_STYLE; } /* @@ -3149,8 +3149,7 @@ static int HTML_start_element(HTStructured * me, int element_number, VERBOSE_IMG(value, HTML_IMG_SRC, "[INLINE]")))); else - StrAllocCopy(alt_string, (title ? - title : "")); + StrAllocCopy(alt_string, NonNull(title)); } if (*alt_string == '\0' && map_href) { StrAllocCopy(alt_string, (temp = MakeNewMapValue(value, "USEMAP"))); @@ -3750,7 +3749,7 @@ static int HTML_start_element(HTStructured * me, int element_number, status = HT_PARSER_OTHER_CONTENT; if (me->sp[0].tag_number == HTML_FIG && me->objects_figged_open > 0) { - ElementNumber = HTML_OBJECT_M; + ElementNumber = (HTMLElement) HTML_OBJECT_M; } else { me->objects_mixed_open++; SET_SKIP_STACK(HTML_OBJECT); @@ -4287,7 +4286,7 @@ static int HTML_start_element(HTStructured * me, int element_number, I.align = NULL; I.accept = NULL; I.checked = NO; - I.class = NULL; + I.iclass = NULL; I.disabled = NO; I.error = NULL; I.height = NULL; @@ -4390,7 +4389,7 @@ static int HTML_start_element(HTStructured * me, int element_number, if (present && present[HTML_BUTTON_CLASS] && /* Not yet used. */ non_empty(value[HTML_BUTTON_CLASS])) - I.class = value[HTML_BUTTON_CLASS]; + I.iclass = value[HTML_BUTTON_CLASS]; if (present && present[HTML_BUTTON_ID] && non_empty(value[HTML_BUTTON_ID])) { @@ -4468,14 +4467,14 @@ static int HTML_start_element(HTStructured * me, int element_number, BOOL HaveSRClink = FALSE; char *ImageSrc = NULL; BOOL IsSubmitOrReset = FALSE; - HTkcode kcode = 0; - HTkcode specified_kcode = 0; + HTkcode kcode = NOKANJI; + HTkcode specified_kcode = NOKANJI; /* init */ I.align = NULL; I.accept = NULL; I.checked = NO; - I.class = NULL; + I.iclass = NULL; I.disabled = NO; I.error = NULL; I.height = NULL; @@ -4792,7 +4791,7 @@ static int HTML_start_element(HTStructured * me, int element_number, I.align = value[HTML_INPUT_ALIGN]; if (present && present[HTML_INPUT_CLASS] && /* Not yet used. */ non_empty(value[HTML_INPUT_CLASS])) - I.class = value[HTML_INPUT_CLASS]; + I.iclass = value[HTML_INPUT_CLASS]; if (present && present[HTML_INPUT_ERROR] && /* Not yet used. */ non_empty(value[HTML_INPUT_ERROR])) I.error = value[HTML_INPUT_ERROR]; @@ -5150,7 +5149,7 @@ static int HTML_start_element(HTStructured * me, int element_number, I.align = NULL; I.accept = NULL; I.checked = NO; - I.class = NULL; + I.iclass = NULL; I.disabled = NO; I.error = NULL; I.height = NULL; @@ -6796,7 +6795,7 @@ static int HTML_end_element(HTStructured * me, int element_number, I.align = NULL; I.accept = NULL; I.checked = NO; - I.class = NULL; + I.iclass = NULL; I.disabled = NO; I.error = NULL; I.height = NULL; @@ -7072,8 +7071,8 @@ static int HTML_end_element(HTStructured * me, int element_number, if (*ptr == ' ') HText_appendCharacter(me->text, HT_NON_BREAK_SPACE); else { - HTkcode kcode = 0; - HTkcode specified_kcode = 0; + HTkcode kcode = NOKANJI; + HTkcode specified_kcode = NOKANJI; if (HTCJK == JAPANESE) { kcode = HText_getKcode(me->text); @@ -7858,10 +7857,14 @@ static void CacheThru_do_free(HTStream *me) me->status = HT_ERROR; LYCloseTempFP(me->fp); if (me->status == HT_OK) { + char *cp_freeme = 0; + me->anchor->source_cache_file = me->filename; CTRACE((tfp, "SourceCacheWriter: Committing file %s for URL %s to anchor\n", - me->filename, HTAnchor_address((HTAnchor *) me->anchor))); + me->filename, + cp_freeme = HTAnchor_address((HTAnchor *) me->anchor))); + FREE(cp_freeme); } else { if (source_cache_file_error == FALSE) { HTAlert(gettext("Source cache error - disk full?")); @@ -7880,10 +7883,14 @@ static void CacheThru_do_free(HTStream *me) HTAlert(gettext("Source cache error - not enough memory!")); } if (me->chunk) { + char *cp_freeme = NULL; + me->anchor->source_cache_chunk = me->chunk; CTRACE((tfp, "SourceCacheWriter: Committing memory chunk %p for URL %s to anchor\n", - (void *) me->chunk, HTAnchor_address((HTAnchor *) me->anchor))); + (void *) me->chunk, + cp_freeme = HTAnchor_address((HTAnchor *) me->anchor))); + FREE(cp_freeme); } } @@ -7977,6 +7984,7 @@ static const HTStreamClass PassThruCache = static HTStream *CacheThru_new(HTParentAnchor *anchor, HTStream *target) { + char *cp_freeme = NULL; char filename[LY_MAXPATH]; HTStream *stream = NULL; HTProtocol *p = (HTProtocol *) anchor->protocol; @@ -8013,6 +8021,7 @@ static HTStream *CacheThru_new(HTParentAnchor *anchor, stream->status = HT_OK; if (LYCacheSource == SOURCE_CACHE_FILE) { + if (anchor->source_cache_file) { CTRACE((tfp, "SourceCacheWriter: If successful, will replace source cache file %s\n", @@ -8028,8 +8037,9 @@ static HTStream *CacheThru_new(HTParentAnchor *anchor, if (!(stream->fp = LYOpenTemp(filename, HTML_SUFFIX, BIN_W))) { CTRACE((tfp, "SourceCacheWriter: Cannot open source cache file for URL %s\n", - HTAnchor_address((HTAnchor *) anchor))); + cp_freeme = HTAnchor_address((HTAnchor *) anchor))); FREE(stream); + FREE(cp_freeme); return target; } @@ -8037,7 +8047,9 @@ static HTStream *CacheThru_new(HTParentAnchor *anchor, CTRACE((tfp, "SourceCacheWriter: Caching source for URL %s in file %s\n", - HTAnchor_address((HTAnchor *) anchor), filename)); + cp_freeme = HTAnchor_address((HTAnchor *) anchor), + filename)); + FREE(cp_freeme); } if (LYCacheSource == SOURCE_CACHE_MEMORY) { @@ -8056,8 +8068,9 @@ static HTStream *CacheThru_new(HTParentAnchor *anchor, CTRACE((tfp, "SourceCacheWriter: Caching source for URL %s in memory chunk %p\n", - HTAnchor_address((HTAnchor *) anchor), (void *) stream->chunk)); - + cp_freeme = HTAnchor_address((HTAnchor *) anchor), + (void *) stream->chunk)); + FREE(cp_freeme); } return stream; diff --git a/src/HTML.h b/src/HTML.h index a8626270..76376ebd 100644 --- a/src/HTML.h +++ b/src/HTML.h @@ -16,27 +16,23 @@ #include <HTAnchor.h> #include <HTMLDTD.h> +#ifdef __cplusplus +extern "C" { +#endif /* #define ATTR_CS_IN (me->T.output_utf8 ? me->UCLYhndl : 0) */ #define ATTR_CS_IN me->tag_charset - #define TRANSLATE_AND_UNESCAPE_ENTITIES(s, p, h) \ LYUCTranslateHTMLString(s, ATTR_CS_IN, current_char_set, YES, p, h, st_HTML) - #define TRANSLATE_AND_UNESCAPE_ENTITIES5(s,cs_from,cs_to,p,h) \ LYUCTranslateHTMLString(s, cs_from, cs_to, YES, p, h, st_HTML) - #define TRANSLATE_AND_UNESCAPE_ENTITIES6(s,cs_from,cs_to,spcls,p,h) \ LYUCTranslateHTMLString(s, cs_from, cs_to, spcls, p, h, st_HTML) - #define TRANSLATE_HTML(s,p,h) \ LYUCFullyTranslateString(s, me->UCLYhndl, current_char_set, NO, YES, p, h, NO, st_HTML) - #define TRANSLATE_HTML5(s,cs_from,cs_to,p,h) \ LYUCFullyTranslateString(s, cs_from, cs_to, NO, YES, p, h, NO, st_HTML) - #define TRANSLATE_HTML7(s,cs_from,cs_to,spcls,p,h,Back) \ LYUCFullyTranslateString(s, cs_from, cs_to, NO, spcls, p, h, Back, st_HTML) - /* * Strings from attributes which should be converted to some kind of "standard" * representation (character encoding), was Latin-1, esp. URLs (incl. @@ -46,8 +42,7 @@ LYUCTranslateHTMLString(s, ATTR_CS_IN, ATTR_CS_IN, NO, NO, YES, st_URL) #define UNESCAPE_FIELDNAME_TO_STD(s) \ LYUCTranslateHTMLString(s, ATTR_CS_IN, ATTR_CS_IN, NO, NO, YES, st_HTML) - -extern const HTStructuredClass HTMLPresentation; + extern const HTStructuredClass HTMLPresentation; #ifdef Lynx_HTML_Handler /* @@ -55,180 +50,180 @@ extern const HTStructuredClass HTMLPresentation; * -------------------------------------------------------------------- */ -typedef struct _stack_element { - HTStyle *style; - int tag_number; -} stack_element; + typedef struct _stack_element { + HTStyle *style; + int tag_number; + } stack_element; /* HTML Object * ----------- */ #define MAX_NESTING 800 /* Should be checked by parser */ -struct _HTStructured { - const HTStructuredClass *isa; - HTParentAnchor *node_anchor; - HText *text; - - HTStream *target; /* Output stream */ - HTStreamClass targetClass; /* Output routines */ - - HTChildAnchor *CurrentA; /* current HTML_A anchor */ - int CurrentANum; /* current HTML_A number */ - char *base_href; /* current HTML_BASE href */ - char *map_address; /* current HTML_MAP address */ - - HTChunk title; /* Grow by 128 */ - HTChunk object; /* Grow by 128 */ - BOOL object_started; - BOOL object_declare; - BOOL object_shapes; - BOOL object_ismap; - char *object_usemap; - char *object_id; - char *object_title; - char *object_data; - char *object_type; - char *object_classid; - char *object_codebase; - char *object_codetype; - char *object_name; - int objects_mixed_open, objects_figged_open; - HTChunk option; /* Grow by 128 */ - BOOL first_option; /* First OPTION in SELECT? */ - char *LastOptionValue; - BOOL LastOptionChecked; - BOOL select_disabled; - HTChunk textarea; /* Grow by 128 */ - char *textarea_name; - int textarea_name_cs; - char *textarea_accept_cs; - int textarea_cols; - int textarea_rows; - int textarea_disabled; - char *textarea_id; - HTChunk math; /* Grow by 128 */ - HTChunk style_block; /* Grow by 128 */ - HTChunk script; /* Grow by 128 */ - - /* - * Used for nested lists. - FM - */ - int List_Nesting_Level; /* counter for list nesting level */ - int OL_Counter[12]; /* counter for ordered lists */ - char OL_Type[12]; /* types for ordered lists */ - int Last_OL_Count; /* last count in ordered lists */ - char Last_OL_Type; /* last type in ordered lists */ - - int Division_Level; - short DivisionAlignments[MAX_NESTING]; - int Underline_Level; - int Quote_Level; - - BOOL UsePlainSpace; - BOOL HiddenValue; - int lastraw; - - char *comment_start; /* for literate programming */ - char *comment_end; - - HTTag *current_tag; - BOOL style_change; - HTStyle *new_style; - HTStyle *old_style; - int current_default_alignment; - BOOL in_word; /* Have just had a non-white char */ - stack_element stack[MAX_NESTING]; - stack_element *sp; /* Style stack pointer */ - BOOL stack_overrun; /* Was MAX_NESTING exceeded? */ - int skip_stack; /* flag to skip next style stack operation */ - - /* - * Track if we are in an anchor, paragraph, address, base, etc. - */ - BOOL inA; - BOOL inAPPLET; - BOOL inAPPLETwithP; - BOOL inBadBASE; - BOOL inBadHREF; - BOOL inBadHTML; - BOOL inBASE; - BOOL inBoldA; - BOOL inBoldH; - BOOL inCAPTION; - BOOL inCREDIT; - BOOL inFIG; - BOOL inFIGwithP; - BOOL inFONT; - BOOL inFORM; - BOOL inLABEL; - BOOL inP; - BOOL inPRE; - BOOL inSELECT; - BOOL inTABLE; - BOOL inTEXTAREA; - BOOL inUnderline; - - BOOL needBoldH; - - char *xinclude; /* if no include strin address passed */ - /* - * UCI and UCLYhndl give the UCInfo and charset registered for the HTML - * parser in the node_anchor's UCStages structure. It indicates what is - * fed to the HTML parser as the stream of character data (not necessarily - * tags and attributes). It should currently always be set to be the same - * as UCI and UCLhndl for the HTEXT stage in the node_anchor's UCStages - * structure, since the HTML parser sends its input character data to the - * output without further charset translation. - */ - LYUCcharset *UCI; - int UCLYhndl; - /* - * inUCI and inUCLYhndl indicate the UCInfo and charset which the HTML - * parser treats at the input charset. It is normally set to the UCI and - * UCLhndl for the SGML parser in the node_anchor's UCStages structure - * (which may be a dummy, based on the MIME parser's UCI and UCLhndl in - * that structure, when we are handling a local file or non-http(s) - * gateway). It could be changed temporarily by the HTML parser, for - * conversions of attribute strings, but should be reset once done. - FM - */ - LYUCcharset *inUCI; - int inUCLYhndl; - /* - * outUCI and outUCLYhndl indicate the UCInfo and charset which the HTML - * parser treats as the output charset. It is normally set to its own UCI - * and UCLhndl. It could be changed for conversions of attribute strings, - * but should be reset once done. - FM - */ - LYUCcharset *outUCI; - int outUCLYhndl; - /* - * T holds the transformation rules for conversions of strings between the - * input and output charsets by the HTML parser. - FM - */ - UCTransParams T; - - int tag_charset; /* charset for attribute values etc. */ -}; - -extern HTStyle *LYstyles(int style_number); -extern BOOL LYBadHTML(HTStructured * me); + struct _HTStructured { + const HTStructuredClass *isa; + HTParentAnchor *node_anchor; + HText *text; + + HTStream *target; /* Output stream */ + HTStreamClass targetClass; /* Output routines */ + + HTChildAnchor *CurrentA; /* current HTML_A anchor */ + int CurrentANum; /* current HTML_A number */ + char *base_href; /* current HTML_BASE href */ + char *map_address; /* current HTML_MAP address */ + + HTChunk title; /* Grow by 128 */ + HTChunk object; /* Grow by 128 */ + BOOL object_started; + BOOL object_declare; + BOOL object_shapes; + BOOL object_ismap; + char *object_usemap; + char *object_id; + char *object_title; + char *object_data; + char *object_type; + char *object_classid; + char *object_codebase; + char *object_codetype; + char *object_name; + int objects_mixed_open, objects_figged_open; + HTChunk option; /* Grow by 128 */ + BOOL first_option; /* First OPTION in SELECT? */ + char *LastOptionValue; + BOOL LastOptionChecked; + BOOL select_disabled; + HTChunk textarea; /* Grow by 128 */ + char *textarea_name; + int textarea_name_cs; + char *textarea_accept_cs; + int textarea_cols; + int textarea_rows; + int textarea_disabled; + char *textarea_id; + HTChunk math; /* Grow by 128 */ + HTChunk style_block; /* Grow by 128 */ + HTChunk script; /* Grow by 128 */ + + /* + * Used for nested lists. - FM + */ + int List_Nesting_Level; /* counter for list nesting level */ + int OL_Counter[12]; /* counter for ordered lists */ + char OL_Type[12]; /* types for ordered lists */ + int Last_OL_Count; /* last count in ordered lists */ + char Last_OL_Type; /* last type in ordered lists */ + + int Division_Level; + short DivisionAlignments[MAX_NESTING]; + int Underline_Level; + int Quote_Level; + + BOOL UsePlainSpace; + BOOL HiddenValue; + int lastraw; + + char *comment_start; /* for literate programming */ + char *comment_end; + + HTTag *current_tag; + BOOL style_change; + HTStyle *new_style; + HTStyle *old_style; + int current_default_alignment; + BOOL in_word; /* Have just had a non-white char */ + stack_element stack[MAX_NESTING]; + stack_element *sp; /* Style stack pointer */ + BOOL stack_overrun; /* Was MAX_NESTING exceeded? */ + int skip_stack; /* flag to skip next style stack operation */ + + /* + * Track if we are in an anchor, paragraph, address, base, etc. + */ + BOOL inA; + BOOL inAPPLET; + BOOL inAPPLETwithP; + BOOL inBadBASE; + BOOL inBadHREF; + BOOL inBadHTML; + BOOL inBASE; + BOOL inBoldA; + BOOL inBoldH; + BOOL inCAPTION; + BOOL inCREDIT; + BOOL inFIG; + BOOL inFIGwithP; + BOOL inFONT; + BOOL inFORM; + BOOL inLABEL; + BOOL inP; + BOOL inPRE; + BOOL inSELECT; + BOOL inTABLE; + BOOL inTEXTAREA; + BOOL inUnderline; + + BOOL needBoldH; + + char *xinclude; /* if no include strin address passed */ + /* + * UCI and UCLYhndl give the UCInfo and charset registered for the HTML + * parser in the node_anchor's UCStages structure. It indicates what is + * fed to the HTML parser as the stream of character data (not necessarily + * tags and attributes). It should currently always be set to be the same + * as UCI and UCLhndl for the HTEXT stage in the node_anchor's UCStages + * structure, since the HTML parser sends its input character data to the + * output without further charset translation. + */ + LYUCcharset *UCI; + int UCLYhndl; + /* + * inUCI and inUCLYhndl indicate the UCInfo and charset which the HTML + * parser treats at the input charset. It is normally set to the UCI and + * UCLhndl for the SGML parser in the node_anchor's UCStages structure + * (which may be a dummy, based on the MIME parser's UCI and UCLhndl in + * that structure, when we are handling a local file or non-http(s) + * gateway). It could be changed temporarily by the HTML parser, for + * conversions of attribute strings, but should be reset once done. - FM + */ + LYUCcharset *inUCI; + int inUCLYhndl; + /* + * outUCI and outUCLYhndl indicate the UCInfo and charset which the HTML + * parser treats as the output charset. It is normally set to its own UCI + * and UCLhndl. It could be changed for conversions of attribute strings, + * but should be reset once done. - FM + */ + LYUCcharset *outUCI; + int outUCLYhndl; + /* + * T holds the transformation rules for conversions of strings between the + * input and output charsets by the HTML parser. - FM + */ + UCTransParams T; + + int tag_charset; /* charset for attribute values etc. */ + }; + + extern HTStyle *LYstyles(int style_number); + extern BOOL LYBadHTML(HTStructured * me); /* * Semi-Private functions. - FM */ -extern void HTML_put_character(HTStructured * me, char c); -extern void HTML_put_string(HTStructured * me, const char *s); -extern void HTML_write(HTStructured * me, const char *s, int l); -extern int HTML_put_entity(HTStructured * me, int entity_number); -extern void actually_set_style(HTStructured * me); + extern void HTML_put_character(HTStructured * me, char c); + extern void HTML_put_string(HTStructured * me, const char *s); + extern void HTML_write(HTStructured * me, const char *s, int l); + extern int HTML_put_entity(HTStructured * me, int entity_number); + extern void actually_set_style(HTStructured * me); /* Style buffering avoids dummy paragraph begin/ends. */ #define UPDATE_STYLE if (me->style_change) { actually_set_style(me); } -#endif /* Lynx_HTML_Handler */ +#endif /* Lynx_HTML_Handler */ -extern void strtolower(char *i); + extern void strtolower(char *i); /* P U B L I C */ @@ -236,25 +231,25 @@ extern void strtolower(char *i); /* * HTConverter to present HTML */ -extern HTStream *HTMLToPlain(HTPresentation *pres, - HTParentAnchor *anchor, - HTStream *sink); + extern HTStream *HTMLToPlain(HTPresentation *pres, + HTParentAnchor *anchor, + HTStream *sink); -extern HTStream *HTMLParsedPresent(HTPresentation *pres, - HTParentAnchor *anchor, - HTStream *sink); + extern HTStream *HTMLParsedPresent(HTPresentation *pres, + HTParentAnchor *anchor, + HTStream *sink); -extern HTStream *HTMLToC(HTPresentation *pres, - HTParentAnchor *anchor, - HTStream *sink); - -extern HTStream *HTMLPresent(HTPresentation *pres, + extern HTStream *HTMLToC(HTPresentation *pres, HTParentAnchor *anchor, HTStream *sink); -extern HTStructured *HTML_new(HTParentAnchor *anchor, - HTFormat format_out, - HTStream *target); + extern HTStream *HTMLPresent(HTPresentation *pres, + HTParentAnchor *anchor, + HTStream *sink); + + extern HTStructured *HTML_new(HTParentAnchor *anchor, + HTFormat format_out, + HTStream *target); /* * Record error message as a hypertext object. @@ -270,8 +265,11 @@ extern HTStructured *HTML_new(HTParentAnchor *anchor, * On exit, * a return code like HT_LOADED if object exists else 60; 0 */ -extern int HTLoadError(HTStream *sink, - int number, - const char *message); - -#endif /* HTML_H */ + extern int HTLoadError(HTStream *sink, + int number, + const char *message); + +#ifdef __cplusplus +} +#endif +#endif /* HTML_H */ diff --git a/src/HTNestedList.h b/src/HTNestedList.h index d641b471..5a5f1039 100644 --- a/src/HTNestedList.h +++ b/src/HTNestedList.h @@ -1,43 +1,43 @@ #ifndef HTNESTEDLIST_H #define HTNESTEDLIST_H -#define HTML_OL1 HTML_ELEMENTS+1 -#define HTML_OL2 HTML_ELEMENTS+2 -#define HTML_OL3 HTML_ELEMENTS+3 -#define HTML_OL4 HTML_ELEMENTS+4 -#define HTML_OL5 HTML_ELEMENTS+5 -#define HTML_OL6 HTML_ELEMENTS+6 - -#define HTML_MENU1 HTML_ELEMENTS+7 -#define HTML_MENU2 HTML_ELEMENTS+8 -#define HTML_MENU3 HTML_ELEMENTS+9 -#define HTML_MENU4 HTML_ELEMENTS+10 -#define HTML_MENU5 HTML_ELEMENTS+11 -#define HTML_MENU6 HTML_ELEMENTS+12 - -#define HTML_DL1 HTML_ELEMENTS+13 -#define HTML_DL2 HTML_ELEMENTS+14 -#define HTML_DL3 HTML_ELEMENTS+15 -#define HTML_DL4 HTML_ELEMENTS+16 -#define HTML_DL5 HTML_ELEMENTS+17 -#define HTML_DL6 HTML_ELEMENTS+18 - -#define HTML_DLC1 HTML_ELEMENTS+19 -#define HTML_DLC2 HTML_ELEMENTS+20 -#define HTML_DLC3 HTML_ELEMENTS+21 -#define HTML_DLC4 HTML_ELEMENTS+22 -#define HTML_DLC5 HTML_ELEMENTS+23 -#define HTML_DLC6 HTML_ELEMENTS+24 - -#define HTML_HCENTER HTML_ELEMENTS+25 -#define HTML_HLEFT HTML_ELEMENTS+26 -#define HTML_HRIGHT HTML_ELEMENTS+27 - -#define HTML_DCENTER HTML_ELEMENTS+28 -#define HTML_DLEFT HTML_ELEMENTS+29 -#define HTML_DRIGHT HTML_ELEMENTS+30 - -#define HTML_OBJECT_M HTML_ELEMENTS+31 +#define HTML_OL1 (HTML_ELEMENTS+1) +#define HTML_OL2 (HTML_ELEMENTS+2) +#define HTML_OL3 (HTML_ELEMENTS+3) +#define HTML_OL4 (HTML_ELEMENTS+4) +#define HTML_OL5 (HTML_ELEMENTS+5) +#define HTML_OL6 (HTML_ELEMENTS+6) + +#define HTML_MENU1 (HTML_ELEMENTS+7) +#define HTML_MENU2 (HTML_ELEMENTS+8) +#define HTML_MENU3 (HTML_ELEMENTS+9) +#define HTML_MENU4 (HTML_ELEMENTS+10) +#define HTML_MENU5 (HTML_ELEMENTS+11) +#define HTML_MENU6 (HTML_ELEMENTS+12) + +#define HTML_DL1 (HTML_ELEMENTS+13) +#define HTML_DL2 (HTML_ELEMENTS+14) +#define HTML_DL3 (HTML_ELEMENTS+15) +#define HTML_DL4 (HTML_ELEMENTS+16) +#define HTML_DL5 (HTML_ELEMENTS+17) +#define HTML_DL6 (HTML_ELEMENTS+18) + +#define HTML_DLC1 (HTML_ELEMENTS+19) +#define HTML_DLC2 (HTML_ELEMENTS+20) +#define HTML_DLC3 (HTML_ELEMENTS+21) +#define HTML_DLC4 (HTML_ELEMENTS+22) +#define HTML_DLC5 (HTML_ELEMENTS+23) +#define HTML_DLC6 (HTML_ELEMENTS+24) + +#define HTML_HCENTER (HTML_ELEMENTS+25) +#define HTML_HLEFT (HTML_ELEMENTS+26) +#define HTML_HRIGHT (HTML_ELEMENTS+27) + +#define HTML_DCENTER (HTML_ELEMENTS+28) +#define HTML_DLEFT (HTML_ELEMENTS+29) +#define HTML_DRIGHT (HTML_ELEMENTS+30) + +#define HTML_OBJECT_M (HTML_ELEMENTS+31) #define LYNX_HTML_EXTRA_ELEMENTS 31 diff --git a/src/HTSaveToFile.h b/src/HTSaveToFile.h index 8ede8d51..35ce3904 100644 --- a/src/HTSaveToFile.h +++ b/src/HTSaveToFile.h @@ -8,16 +8,22 @@ #include <HTStream.h> #include <HTFormat.h> -extern HTStream *HTSaveToFile(HTPresentation *pres, - HTParentAnchor *anchor, - HTStream *sink); +#ifdef __cplusplus +extern "C" { +#endif + extern HTStream *HTSaveToFile(HTPresentation *pres, + HTParentAnchor *anchor, + HTStream *sink); -extern HTStream *HTDumpToStdout(HTPresentation *pres, - HTParentAnchor *anchor, - HTStream *sink); + extern HTStream *HTDumpToStdout(HTPresentation *pres, + HTParentAnchor *anchor, + HTStream *sink); -extern HTStream *HTCompressed(HTPresentation *pres, - HTParentAnchor *anchor, - HTStream *sink); + extern HTStream *HTCompressed(HTPresentation *pres, + HTParentAnchor *anchor, + HTStream *sink); -#endif /* HTSAVETOFILE_H */ +#ifdef __cplusplus +} +#endif +#endif /* HTSAVETOFILE_H */ diff --git a/src/LYBookmark.c b/src/LYBookmark.c index 0c238fec..2a00a1bc 100644 --- a/src/LYBookmark.c +++ b/src/LYBookmark.c @@ -291,7 +291,7 @@ void save_bookmark_link(const char *address, } else { LYstrncpy(string_buffer, title, sizeof(string_buffer) - 1); } - convert_to_spaces(string_buffer, FALSE); + LYReduceBlanks(string_buffer); LYMBM_statusline(TITLE_PROMPT); LYgetstr(string_buffer, VISIBLE, sizeof(string_buffer), NORECALL); if (*string_buffer == '\0') { diff --git a/src/LYBookmark.h b/src/LYBookmark.h index a0a2816f..ae8257bd 100644 --- a/src/LYBookmark.h +++ b/src/LYBookmark.h @@ -1,4 +1,3 @@ - #ifndef LYBOOKMARK_H #define LYBOOKMARK_H @@ -6,15 +5,21 @@ #include <LYStructs.h> #endif /* LYSTRUCTS_H */ -extern BOOLEAN LYHaveSubBookmarks(void); -extern const char *get_bookmark_filename(char **name); -extern int LYMBM2index(int ch); -extern int LYindex2MBM(int n); -extern int select_menu_multi_bookmarks(void); -extern int select_multi_bookmarks(void); -extern void LYMBM_statusline(const char *text); -extern void remove_bookmark_link(int cur, char *cur_bookmark_page); -extern void save_bookmark_link(const char *address, const char *title); -extern void set_default_bookmark_page(char *value); +#ifdef __cplusplus +extern "C" { +#endif + extern BOOLEAN LYHaveSubBookmarks(void); + extern const char *get_bookmark_filename(char **name); + extern int LYMBM2index(int ch); + extern int LYindex2MBM(int n); + extern int select_menu_multi_bookmarks(void); + extern int select_multi_bookmarks(void); + extern void LYMBM_statusline(const char *text); + extern void remove_bookmark_link(int cur, char *cur_bookmark_page); + extern void save_bookmark_link(const char *address, const char *title); + extern void set_default_bookmark_page(char *value); -#endif /* LYBOOKMARK_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYBOOKMARK_H */ diff --git a/src/LYCgi.h b/src/LYCgi.h index bd29a780..6b90f2de 100644 --- a/src/LYCgi.h +++ b/src/LYCgi.h @@ -5,6 +5,12 @@ #include <HTUtils.h> #endif -extern void add_lynxcgi_environment(const char *variable_name); +#ifdef __cplusplus +extern "C" { +#endif + extern void add_lynxcgi_environment(const char *variable_name); -#endif /* LYGETFILE_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYGETFILE_H */ diff --git a/src/LYCharSets.h b/src/LYCharSets.h index 26a852a1..a0f0c26a 100644 --- a/src/LYCharSets.h +++ b/src/LYCharSets.h @@ -11,42 +11,46 @@ #include <UCMap.h> #endif /* !UCMAP_H */ -extern BOOL HTPassEightBitRaw; -extern BOOL HTPassEightBitNum; -extern BOOL HTPassHighCtrlRaw; -extern BOOL HTPassHighCtrlNum; -extern BOOLEAN LYHaveCJKCharacterSet; -extern BOOLEAN DisplayCharsetMatchLocale; - #include <HTCJK.h> -extern HTkcode kanji_code; + +#ifdef __cplusplus +extern "C" { +#endif + extern BOOL HTPassEightBitRaw; + extern BOOL HTPassEightBitNum; + extern BOOL HTPassHighCtrlRaw; + extern BOOL HTPassHighCtrlNum; + extern BOOLEAN LYHaveCJKCharacterSet; + extern BOOLEAN DisplayCharsetMatchLocale; + + extern HTkcode kanji_code; /* * currently active character set (internal handler) */ -extern int current_char_set; + extern int current_char_set; /* * Initializer, calls initialization function for the * CHARTRANS handling. - KW */ -extern int LYCharSetsDeclared(void); - -extern const char **LYCharSets[]; -extern const char *SevenBitApproximations[]; -extern const char **p_entity_values; -extern const char *LYchar_set_names[]; /* Full name, not MIME */ -extern int LYlowest_eightbit[]; -extern int LYNumCharsets; -extern LYUCcharset LYCharSet_UC[]; -extern int UCGetLYhndl_byAnyName(char *value); -extern void HTMLSetCharacterHandling(int i); -extern void HTMLSetUseDefaultRawMode(int i, BOOLEAN modeflag); -extern void HTMLUseCharacterSet(int i); -extern UCode_t HTMLGetEntityUCValue(const char *name); -extern void Set_HTCJK(const char *inMIMEname, const char *outMIMEname); - -extern const char *HTMLGetEntityName(UCode_t code); + extern int LYCharSetsDeclared(void); + + extern const char **LYCharSets[]; + extern const char *SevenBitApproximations[]; + extern const char **p_entity_values; + extern const char *LYchar_set_names[]; /* Full name, not MIME */ + extern int LYlowest_eightbit[]; + extern int LYNumCharsets; + extern LYUCcharset LYCharSet_UC[]; + extern int UCGetLYhndl_byAnyName(char *value); + extern void HTMLSetCharacterHandling(int i); + extern void HTMLSetUseDefaultRawMode(int i, BOOLEAN modeflag); + extern void HTMLUseCharacterSet(int i); + extern UCode_t HTMLGetEntityUCValue(const char *name); + extern void Set_HTCJK(const char *inMIMEname, const char *outMIMEname); + + extern const char *HTMLGetEntityName(UCode_t code); /* * HTMLGetEntityName calls LYEntityNames for iso-8859-1 entity names only. @@ -54,24 +58,24 @@ extern const char *HTMLGetEntityName(UCode_t code); * unicode number in general may have several equivalent entity names because * of synonyms. */ -extern BOOL force_old_UCLYhndl_on_reload; -extern int forced_UCLYhdnl; + extern BOOL force_old_UCLYhndl_on_reload; + extern int forced_UCLYhdnl; #ifndef EXP_CHARSET_CHOICE # define ALL_CHARSETS_IN_O_MENU_SCREEN 1 #endif #ifdef EXP_CHARSET_CHOICE -typedef struct { - BOOL hide_display; /* if FALSE, show in "display-charset" menu */ - BOOL hide_assumed; /* if FALSE, show in "assumed-charset" menu */ + typedef struct { + BOOL hide_display; /* if FALSE, show in "display-charset" menu */ + BOOL hide_assumed; /* if FALSE, show in "assumed-charset" menu */ #ifndef ALL_CHARSETS_IN_O_MENU_SCREEN - int assumed_idx; /* only this field is needed */ + int assumed_idx; /* only this field is needed */ #endif -} charset_subset_t; + } charset_subset_t; /* each element corresponds to charset in LYCharSets */ -extern charset_subset_t charset_subsets[]; + extern charset_subset_t charset_subsets[]; /* all zeros by default - i.e., all charsets allowed */ @@ -80,10 +84,10 @@ extern charset_subset_t charset_subsets[]; * lynx.cfg. It will remain FALSE if no "display_charset_choice" settings were * encountered in lynx.cfg */ -extern BOOL custom_display_charset; + extern BOOL custom_display_charset; /* similar to custom_display_charset */ -extern BOOL custom_assumed_doc_charset; + extern BOOL custom_assumed_doc_charset; #ifndef ALL_CHARSETS_IN_O_MENU_SCREEN @@ -92,19 +96,19 @@ extern BOOL custom_assumed_doc_charset; /* * These arrays map index of charset shown in menu to the index in LYCharsets[] */ -extern int display_charset_map[]; -extern int assumed_doc_charset_map[]; + extern int display_charset_map[]; + extern int assumed_doc_charset_map[]; /* these arrays are NULL terminated */ -extern const char *display_charset_choices[]; -extern const char *assumed_charset_choices[]; + extern const char *display_charset_choices[]; + extern const char *assumed_charset_choices[]; -extern int displayed_display_charset_idx; + extern int displayed_display_charset_idx; #endif /* this will be called after lynx.cfg and .lynxrc are read */ -extern void init_charset_subsets(void); -#endif /* EXP_CHARSET_CHOICE */ + extern void init_charset_subsets(void); +#endif /* EXP_CHARSET_CHOICE */ #if !defined(NO_AUTODETECT_DISPLAY_CHARSET) # ifdef __EMX__ @@ -116,23 +120,26 @@ extern void init_charset_subsets(void); #endif #ifdef CAN_AUTODETECT_DISPLAY_CHARSET -extern int auto_display_charset; + extern int auto_display_charset; #endif #ifdef CAN_SWITCH_DISPLAY_CHARSET -enum switch_display_charset_t { - SWITCH_DISPLAY_CHARSET_MAYBE, - SWITCH_DISPLAY_CHARSET_REALLY, - SWITCH_DISPLAY_CHARSET_RESIZE -}; -extern int Switch_Display_Charset(int ord, enum switch_display_charset_t really); -extern int Find_Best_Display_Charset(int ord); -extern char *charsets_directory; -extern char *charset_switch_rules; -extern int switch_display_charsets; -extern int auto_other_display_charset; -extern int codepages[2]; -extern int real_charsets[2]; /* Non "auto-" charsets for the codepages */ + enum switch_display_charset_t { + SWITCH_DISPLAY_CHARSET_MAYBE, + SWITCH_DISPLAY_CHARSET_REALLY, + SWITCH_DISPLAY_CHARSET_RESIZE + }; + extern int Switch_Display_Charset(int ord, enum switch_display_charset_t really); + extern int Find_Best_Display_Charset(int ord); + extern char *charsets_directory; + extern char *charset_switch_rules; + extern int switch_display_charsets; + extern int auto_other_display_charset; + extern int codepages[2]; + extern int real_charsets[2]; /* Non "auto-" charsets for the codepages */ #endif -#endif /* LYCHARSETS_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYCHARSETS_H */ diff --git a/src/LYCharUtils.c b/src/LYCharUtils.c index 30581988..e3c42602 100644 --- a/src/LYCharUtils.c +++ b/src/LYCharUtils.c @@ -2550,11 +2550,12 @@ void LYHandleMETA(HTStructured * me, const BOOL *present, me->inA = FALSE; me->CurrentANum = 0; } - me->CurrentA = HTAnchor_findChildAndLink( - me->node_anchor, /* Parent */ - id_string, /* Tag */ - href, /* Addresss */ - (void *) 0); /* Type */ + me->CurrentA = HTAnchor_findChildAndLink + ( + me->node_anchor, /* Parent */ + id_string, /* Tag */ + href, /* Addresss */ + (HTLinkType *) 0); /* Type */ if (id_string) *cp = '#'; FREE(id_string); @@ -3203,11 +3204,12 @@ void LYCheckForID(HTStructured * me, const BOOL *present, * Create the link if we still have a non-zero-length string. - FM */ if ((temp[0] != '\0') && - (ID_A = HTAnchor_findChildAndLink( - me->node_anchor, /* Parent */ - temp, /* Tag */ - NULL, /* Addresss */ - (void *) 0))) { /* Type */ + (ID_A = HTAnchor_findChildAndLink + ( + me->node_anchor, /* Parent */ + temp, /* Tag */ + NULL, /* Addresss */ + (HTLinkType *) 0))) { /* Type */ HText_beginAnchor(me->text, me->inUnderline, ID_A); HText_endAnchor(me->text, 0); } @@ -3231,11 +3233,12 @@ void LYHandleID(HTStructured * me, const char *id) /* * Create the link if we still have a non-zero-length string. - FM */ - if ((ID_A = HTAnchor_findChildAndLink( - me->node_anchor, /* Parent */ - id, /* Tag */ - NULL, /* Addresss */ - (void *) 0)) != NULL) { /* Type */ + if ((ID_A = HTAnchor_findChildAndLink + ( + me->node_anchor, /* Parent */ + id, /* Tag */ + NULL, /* Addresss */ + (HTLinkType *) 0)) != NULL) { /* Type */ HText_beginAnchor(me->text, me->inUnderline, ID_A); HText_endAnchor(me->text, 0); } diff --git a/src/LYCharUtils.h b/src/LYCharUtils.h index 45c2b384..83e63c06 100644 --- a/src/LYCharUtils.h +++ b/src/LYCharUtils.h @@ -5,89 +5,94 @@ #include <HTUtils.h> #endif /* HTUTILS_H */ +#ifdef __cplusplus +extern "C" { +#endif #define CHECK_ID(code) LYCheckForID(me, present, value, (int)code) + typedef enum { + st_HTML = 0, /* attributes and content found in HTML, probably meant for display */ + st_URL, /* URLs, fragments, NAME and ID */ + st_other + } CharUtil_st; -typedef enum { - st_HTML = 0, /* attributes and content found in HTML, probably meant for display */ - st_URL, /* URLs, fragments, NAME and ID */ - st_other -} CharUtil_st; - -extern char **LYUCFullyTranslateString(char **str, - int cs_from, - int cs_to, - BOOLEAN do_ent, - BOOL use_lynx_specials, - BOOLEAN plain_space, - BOOLEAN hidden, - BOOL Back, - CharUtil_st stype); -extern BOOL LYUCTranslateHTMLString(char **str, - int cs_from, - int cs_to, - BOOL use_lynx_specials, - BOOLEAN plain_space, - BOOLEAN hidden, - CharUtil_st stype); -extern BOOL LYUCTranslateBackFormData(char **str, - int cs_from, - int cs_to, - BOOLEAN plain_space); -extern void LYEntify(char **str, - BOOLEAN isTITLE); -extern void LYTrimHead(char *str); -extern void LYTrimTail(char *str); -extern char *LYFindEndOfComment(char *str); -extern void LYFillLocalFileURL(char **href, - const char *base); -extern void LYAddMETAcharsetToFD(FILE *fd, - int disp_chndl); -extern void LYformTitle(char **dst, - const char *src); -extern char *LYParseTagParam(char *from, - const char *name); -extern void LYParseRefreshURL(char *content, - char **p_seconds, - char **p_address); + extern char **LYUCFullyTranslateString(char **str, + int cs_from, + int cs_to, + BOOLEAN do_ent, + BOOL use_lynx_specials, + BOOLEAN plain_space, + BOOLEAN hidden, + BOOL Back, + CharUtil_st stype); + extern BOOL LYUCTranslateHTMLString(char **str, + int cs_from, + int cs_to, + BOOL use_lynx_specials, + BOOLEAN plain_space, + BOOLEAN hidden, + CharUtil_st stype); + extern BOOL LYUCTranslateBackFormData(char **str, + int cs_from, + int cs_to, + BOOLEAN plain_space); + extern void LYEntify(char **str, + BOOLEAN isTITLE); + extern void LYTrimHead(char *str); + extern void LYTrimTail(char *str); + extern char *LYFindEndOfComment(char *str); + extern void LYFillLocalFileURL(char **href, + const char *base); + extern void LYAddMETAcharsetToFD(FILE *fd, + int disp_chndl); + extern void LYformTitle(char **dst, + const char *src); + extern char *LYParseTagParam(char *from, + const char *name); + extern void LYParseRefreshURL(char *content, + char **p_seconds, + char **p_address); #ifdef Lynx_HTML_Handler -extern int OL_CONTINUE; /* flag for whether CONTINUE is set */ -extern int OL_VOID; /* flag for whether a count is set */ -extern void LYZero_OL_Counter(HTStructured * me); -extern char *LYUppercaseA_OL_String(int seqnum); -extern char *LYLowercaseA_OL_String(int seqnum); -extern char *LYUppercaseI_OL_String(int seqnum); -extern char *LYLowercaseI_OL_String(int seqnum); -extern void LYGetChartransInfo(HTStructured * me); -extern void LYHandleMETA(HTStructured * me, const BOOL *present, - const char **value, - char **include); -extern void LYHandlePlike(HTStructured * me, const BOOL *present, - const char **value, - char **include, - int align_idx, - BOOL start); -extern void LYHandleSELECT(HTStructured * me, const BOOL *present, - const char **value, - char **include, - BOOL start); -extern int LYLegitimizeHREF(HTStructured * me, char **href, - BOOL force_slash, - BOOL strip_dots); -extern void LYCheckForContentBase(HTStructured * me); -extern void LYCheckForID(HTStructured * me, const BOOL *present, - const char **value, - int attribute); -extern void LYHandleID(HTStructured * me, const char *id); -extern BOOLEAN LYoverride_default_alignment(HTStructured * me); -extern void LYEnsureDoubleSpace(HTStructured * me); -extern void LYEnsureSingleSpace(HTStructured * me); -extern void LYResetParagraphAlignment(HTStructured * me); -extern BOOLEAN LYCheckForCSI(HTParentAnchor *anchor, - char **url); + extern int OL_CONTINUE; /* flag for whether CONTINUE is set */ + extern int OL_VOID; /* flag for whether a count is set */ + extern void LYZero_OL_Counter(HTStructured * me); + extern char *LYUppercaseA_OL_String(int seqnum); + extern char *LYLowercaseA_OL_String(int seqnum); + extern char *LYUppercaseI_OL_String(int seqnum); + extern char *LYLowercaseI_OL_String(int seqnum); + extern void LYGetChartransInfo(HTStructured * me); + extern void LYHandleMETA(HTStructured * me, const BOOL *present, + const char **value, + char **include); + extern void LYHandlePlike(HTStructured * me, const BOOL *present, + const char **value, + char **include, + int align_idx, + BOOL start); + extern void LYHandleSELECT(HTStructured * me, const BOOL *present, + const char **value, + char **include, + BOOL start); + extern int LYLegitimizeHREF(HTStructured * me, char **href, + BOOL force_slash, + BOOL strip_dots); + extern void LYCheckForContentBase(HTStructured * me); + extern void LYCheckForID(HTStructured * me, const BOOL *present, + const char **value, + int attribute); + extern void LYHandleID(HTStructured * me, const char *id); + extern BOOLEAN LYoverride_default_alignment(HTStructured * me); + extern void LYEnsureDoubleSpace(HTStructured * me); + extern void LYEnsureSingleSpace(HTStructured * me); + extern void LYResetParagraphAlignment(HTStructured * me); + extern BOOLEAN LYCheckForCSI(HTParentAnchor *anchor, + char **url); -#endif /* Lynx_HTML_Handler */ +#endif /* Lynx_HTML_Handler */ #define LYUCTranslateBackHeaderText LYUCTranslateBackFormData -#endif /* LYCHARUTILS_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYCHARUTILS_H */ diff --git a/src/LYClean.h b/src/LYClean.h index c9e13ca0..6126c2c6 100644 --- a/src/LYClean.h +++ b/src/LYClean.h @@ -5,14 +5,20 @@ #include <HTUtils.h> #endif +#ifdef __cplusplus +extern "C" { +#endif #ifdef VMS -extern BOOLEAN HadVMSInterrupt; + extern BOOLEAN HadVMSInterrupt; #endif -extern void cleanup_sig(int sig); -extern void cleanup(void); -extern void cleanup_files(void); -extern void set_alarm(int sig); -extern void reset_alarm(void); + extern void cleanup_sig(int sig); + extern void cleanup(void); + extern void cleanup_files(void); + extern void set_alarm(int sig); + extern void reset_alarm(void); -#endif /* LYCLEAN_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYCLEAN_H */ diff --git a/src/LYCookie.c b/src/LYCookie.c index dbe91ef3..f54f7db0 100644 --- a/src/LYCookie.c +++ b/src/LYCookie.c @@ -2048,7 +2048,7 @@ void LYStoreCookies(char *cookie_file) if (cookie_handle == NULL) return; for (dl = domain_list; dl != NULL; dl = dl->next) { - de = dl->object; + de = (domain_entry *) (dl->object); if (de == NULL) /* * Fote says the first object is NULL. Go with that. @@ -2280,7 +2280,7 @@ static int LYHandleCookies(const char *arg, cl = de->cookie_list; while (cl) { next = cl->next; - co = cl->object; + co = (cookie *) (cl->object); if (co) { HTList_removeObject(de->cookie_list, co); freeCookie(co); @@ -2394,7 +2394,7 @@ static int LYHandleCookies(const char *arg, HTSprintf0(&buf, "<dl compact>\n"); PUTS(buf); for (dl = domain_list; dl != NULL; dl = dl->next) { - de = dl->object; + de = (domain_entry *) (dl->object); if (de == NULL) /* * First object always is NULL. - FM diff --git a/src/LYCookie.h b/src/LYCookie.h index ffa96453..3b0e109b 100644 --- a/src/LYCookie.h +++ b/src/LYCookie.h @@ -7,45 +7,51 @@ #include <HTList.h> -typedef enum { - ACCEPT_ALWAYS = 0 - ,REJECT_ALWAYS - ,QUERY_USER -} behaviour_t; - -typedef enum { - INVCHECK_QUERY = 0 - ,INVCHECK_STRICT - ,INVCHECK_LOOSE -} invcheck_behaviour_t; - -typedef enum { - FLAG_ACCEPT_ALWAYS = 0 - ,FLAG_REJECT_ALWAYS - ,FLAG_QUERY_USER - ,FLAG_FROM_FILE - ,FLAG_INVCHECK_QUERY - ,FLAG_INVCHECK_STRICT - ,FLAG_INVCHECK_LOOSE -} cookie_domain_flags; - -struct _domain_entry { - char *domain; /* Domain for which these cookies are valid */ - behaviour_t bv; - invcheck_behaviour_t invcheck_bv; - HTList *cookie_list; -}; -typedef struct _domain_entry domain_entry; - -extern void LYSetCookie(const char *SetCookie, - const char *SetCookie2, - const char *address); -extern char *LYAddCookieHeader(char *hostname, - char *partialpath, - int port, - BOOL secure); -extern void LYStoreCookies(char *cookie_file); -extern void LYLoadCookies(char *cookie_file); -extern void LYConfigCookies(void); - -#endif /* LYCOOKIES_H */ +#ifdef __cplusplus +extern "C" { +#endif + typedef enum { + ACCEPT_ALWAYS = 0 + ,REJECT_ALWAYS + ,QUERY_USER + } behaviour_t; + + typedef enum { + INVCHECK_QUERY = 0 + ,INVCHECK_STRICT + ,INVCHECK_LOOSE + } invcheck_behaviour_t; + + typedef enum { + FLAG_ACCEPT_ALWAYS = 0 + ,FLAG_REJECT_ALWAYS + ,FLAG_QUERY_USER + ,FLAG_FROM_FILE + ,FLAG_INVCHECK_QUERY + ,FLAG_INVCHECK_STRICT + ,FLAG_INVCHECK_LOOSE + } cookie_domain_flags; + + struct _domain_entry { + char *domain; /* Domain for which these cookies are valid */ + behaviour_t bv; + invcheck_behaviour_t invcheck_bv; + HTList *cookie_list; + }; + typedef struct _domain_entry domain_entry; + + extern void LYSetCookie(const char *SetCookie, + const char *SetCookie2, + const char *address); + extern char *LYAddCookieHeader(char *hostname, + char *partialpath, + int port, + BOOL secure); + extern void LYStoreCookies(char *cookie_file); + extern void LYLoadCookies(char *cookie_file); + extern void LYConfigCookies(void); + +#ifdef __cplusplus +} +#endif +#endif /* LYCOOKIES_H */ diff --git a/src/LYCurses.c b/src/LYCurses.c index 5095c1ee..9221ff82 100644 --- a/src/LYCurses.c +++ b/src/LYCurses.c @@ -525,11 +525,11 @@ void wcurses_css(WINDOW * win, char *name, CTRACE2(TRACE_STYLE, (tfp, "CSSTRIM:trying to set [%s] style - ", name)); if (tmpHash == NOSTYLE) { - char *class = strrchr(name, '.'); + char *pclass = strrchr(name, '.'); - CTRACE2(TRACE_STYLE, (tfp, "undefined, trimming at %p\n", class)); - if (class) - *class = '\0'; + CTRACE2(TRACE_STYLE, (tfp, "undefined, trimming at %p\n", pclass)); + if (pclass) + *pclass = '\0'; else try_again = 0; } else { @@ -1397,6 +1397,11 @@ void stop_curses(void) } #ifdef VMS + +#ifdef USE_SLANG +extern void longname(char *, char *); +#endif /* USE_SLANG */ + /* * Check terminal type, start curses & setup terminal. */ @@ -1406,10 +1411,6 @@ BOOLEAN setup(char *terminal) int status; char *dummy = 0, *cp, term[81]; -#ifdef USE_SLANG - extern void longname(); -#endif /* USE_SLANG */ - /* * If the display was not set by a command line option then see if it is * available from the environment. diff --git a/src/LYCurses.h b/src/LYCurses.h index 1bb773be..f9c52fe3 100644 --- a/src/LYCurses.h +++ b/src/LYCurses.h @@ -284,18 +284,21 @@ typedef struct { #endif /* USE_SLANG */ +#ifdef __cplusplus +extern "C" { +#endif #ifdef USE_SLANG #define LYstopPopup() /* nothing */ #define LYtopwindow() LYwin #else -extern void LYsubwindow(WINDOW * param); -extern WINDOW *LYtopwindow(void); + extern void LYsubwindow(WINDOW * param); + extern WINDOW *LYtopwindow(void); #define LYstopPopup() LYsubwindow(0) -#endif /* NCURSES */ +#endif /* NCURSES */ -extern void LYbox(WINDOW * win, BOOLEAN formfield); -extern WINDOW *LYstartPopup(int *top_y, int *left_x, int *height, int *width); + extern void LYbox(WINDOW * win, BOOLEAN formfield); + extern WINDOW *LYstartPopup(int *top_y, int *left_x, int *height, int *width); /* * Useful macros not in PDCurses or very old ncurses headers. @@ -311,7 +314,7 @@ extern WINDOW *LYstartPopup(int *top_y, int *left_x, int *height, int *width); #endif #if defined(HAVE_WATTR_GET) -extern long LYgetattrs(WINDOW * win); + extern long LYgetattrs(WINDOW * win); #else #if defined(HAVE_GETATTRS) || defined(getattrs) @@ -319,11 +322,15 @@ extern long LYgetattrs(WINDOW * win); #else #define LYgetattrs(win) ((win)->_attrs) #endif -#endif /* HAVE_WATTR_GET */ +#endif /* HAVE_WATTR_GET */ #if defined(PDCURSES) #define HAVE_GETBKGD 1 /* can use fallback definition */ #define HAVE_NAPMS 1 /* can use millisecond-delays */ +# if defined(PDC_BUILD) && PDC_BUILD >= 2401 + extern int saved_scrsize_x; + extern int saved_scrsize_y; +# endif #endif #ifdef HAVE_NAPMS @@ -339,14 +346,14 @@ extern long LYgetattrs(WINDOW * win); /* Both slang and curses: */ #ifndef TRUE #define TRUE 1 -#endif /* !TRUE */ +#endif /* !TRUE */ #ifndef FALSE #define FALSE 0 -#endif /* !FALSE */ +#endif /* !FALSE */ #ifdef REDEFINE_CR #define CR FROMASCII('\015') -#endif /* REDEFINE_CR */ +#endif /* REDEFINE_CR */ #ifdef ALT_CHAR_SET #define BOXVERT 0 /* use alt char set for popup window vertical borders */ @@ -364,8 +371,8 @@ extern long LYgetattrs(WINDOW * win); #undef HAVE_KEYPAD /* avoid confusion with bogus 'keypad()' */ #endif -extern int LYlines; /* replaces LINES */ -extern int LYcols; /* replaces COLS */ + extern int LYlines; /* replaces LINES */ + extern int LYcols; /* replaces COLS */ /* * The scrollbar, if used, occupies the rightmost column. @@ -386,11 +393,11 @@ extern int LYcols; /* replaces COLS */ #endif #ifdef USE_CURSES_PADS -extern WINDOW *LYwin; -extern int LYshiftWin; -extern int LYwideLines; -extern int LYtableCols; -extern BOOL LYuseCursesPads; + extern WINDOW *LYwin; + extern int LYshiftWin; + extern int LYwideLines; + extern int LYtableCols; + extern BOOL LYuseCursesPads; #else #define LYwin stdscr @@ -400,62 +407,62 @@ extern BOOL LYuseCursesPads; #endif #if defined(USE_COLOR_TABLE) || defined(USE_SLANG) -extern int Current_Attr; -extern int Masked_Attr; -#endif - -extern BOOLEAN setup(char *terminal); -extern int LYscreenHeight(void); -extern int LYscreenWidth(void); -extern int LYstrExtent(const char *string, int len, int maxCells); -extern int LYstrExtent2(const char *string, int len); -extern int LYstrCells(const char *string); -extern void LYclear(void); -extern void LYclrtoeol(void); -extern void LYerase(void); -extern void LYmove(int y, int x); -extern void LYnoVideo(int mask); -extern void LYpaddstr(WINDOW * w, int width, const char *s); -extern void LYrefresh(void); -extern void LYstartTargetEmphasis(void); -extern void LYstopTargetEmphasis(void); -extern void LYtouchline(int row); -extern void LYwaddnstr(WINDOW * w, const char *s, size_t len); -extern void start_curses(void); -extern void stop_curses(void); + extern int Current_Attr; + extern int Masked_Attr; +#endif + + extern BOOLEAN setup(char *terminal); + extern int LYscreenHeight(void); + extern int LYscreenWidth(void); + extern int LYstrExtent(const char *string, int len, int maxCells); + extern int LYstrExtent2(const char *string, int len); + extern int LYstrCells(const char *string); + extern void LYclear(void); + extern void LYclrtoeol(void); + extern void LYerase(void); + extern void LYmove(int y, int x); + extern void LYnoVideo(int mask); + extern void LYpaddstr(WINDOW * w, int width, const char *s); + extern void LYrefresh(void); + extern void LYstartTargetEmphasis(void); + extern void LYstopTargetEmphasis(void); + extern void LYtouchline(int row); + extern void LYwaddnstr(WINDOW * w, const char *s, size_t len); + extern void start_curses(void); + extern void stop_curses(void); #define LYaddstr(s) LYwaddnstr(LYwin, s, strlen(s)) #define LYaddnstr(s,len) LYwaddnstr(LYwin, s, len) #define LYwaddstr(w,s) LYwaddnstr(w, s, strlen(s)) #ifdef VMS -extern int DCLsystem(char *command); -extern void VMSexit(); -extern int ttopen(); -extern int ttclose(); -extern int ttgetc(); -extern void VMSsignal(int sig, void (*func) ()); -#endif /* VMS */ + extern int DCLsystem(char *command); + extern void VMSexit(); + extern int ttopen(); + extern int ttclose(); + extern int ttgetc(); + extern void VMSsignal(int sig, void (*func) ()); +#endif /* VMS */ #if defined(USE_COLOR_STYLE) -extern void curses_css(char *name, int dir); -extern void curses_style(int style, int dir); -extern void setHashStyle(int style, int color, int cattr, int mono, char *element); -extern void setStyle(int style, int color, int cattr, int mono); -extern void wcurses_css(WINDOW * win, char *name, int dir); -extern void curses_w_style(WINDOW * win, int style, int dir); + extern void curses_css(char *name, int dir); + extern void curses_style(int style, int dir); + extern void setHashStyle(int style, int color, int cattr, int mono, char *element); + extern void setStyle(int style, int color, int cattr, int mono); + extern void wcurses_css(WINDOW * win, char *name, int dir); + extern void curses_w_style(WINDOW * win, int style, int dir); # define LynxChangeStyle(style,dir) curses_style(style,dir) # define LynxWChangeStyle(win,style,dir) curses_w_style(win,style,dir) #else # define LynxWChangeStyle(win,style,dir) (void)1 -#endif /* USE_COLOR_STYLE */ +#endif /* USE_COLOR_STYLE */ #ifdef USE_COLOR_TABLE -extern void LYaddAttr(int a); -extern void LYsubAttr(int a); -extern void lynx_setup_colors(void); -extern unsigned int Lynx_Color_Flags; + extern void LYaddAttr(int a); + extern void LYsubAttr(int a); + extern void lynx_setup_colors(void); + extern unsigned int Lynx_Color_Flags; #endif #ifdef USE_SLANG @@ -481,23 +488,23 @@ extern unsigned int Lynx_Color_Flags; #ifdef FANCY_CURSES #undef FANCY_CURSES -#endif /* FANCY_CURSES */ +#endif /* FANCY_CURSES */ /* * Map some curses functions to slang functions. */ #define stdscr ((WINDOW *)0) #ifdef SLANG_MBCS_HACK -extern int PHYSICAL_SLtt_Screen_Cols; + extern int PHYSICAL_SLtt_Screen_Cols; #define COLS PHYSICAL_SLtt_Screen_Cols #else #define COLS SLtt_Screen_Cols -#endif /* SLANG_MBCS_HACK */ +#endif /* SLANG_MBCS_HACK */ #define LINES SLtt_Screen_Rows #define move SLsmg_gotorc #define addstr SLsmg_write_string -extern void LY_SLerase(void); + extern void LY_SLerase(void); #define erase LY_SLerase #define clear LY_SLerase @@ -521,29 +528,29 @@ extern void LY_SLerase(void); #define echo() #define printw SLsmg_printf -extern int curscr; -extern BOOLEAN FullRefresh; + extern int curscr; + extern BOOLEAN FullRefresh; #ifdef clearok #undef clearok -#endif /* clearok */ +#endif /* clearok */ #define clearok(a,b) { FullRefresh = (BOOLEAN)b; } -extern void LY_SLrefresh(void); + extern void LY_SLrefresh(void); #ifdef refresh #undef refresh -#endif /* refresh */ +#endif /* refresh */ #define refresh LY_SLrefresh #ifdef VMS -extern void VTHome(void); + extern void VTHome(void); #define endwin() LYclear(),refresh(),SLsmg_reset_smg(),VTHome() #else #define endwin SLsmg_reset_smg(),SLang_reset_tty -#endif /* VMS */ +#endif /* VMS */ -#else /* Define curses functions: */ +#else /* Define curses functions: */ #ifdef FANCY_CURSES #define SHOW_WHEREIS_TARGETS 1 @@ -563,9 +570,9 @@ extern void VTHome(void); #define stop_reverse() clrattr(_REVERSE) #define wstop_reverse(w) wclrattr(w, _REVERSE) -#else /* Not VMS: */ +#else /* Not VMS: */ -extern int string_to_attr(char *name); + extern int string_to_attr(char *name); /* * For Unix FANCY_FANCY curses we interpose @@ -573,13 +580,13 @@ extern int string_to_attr(char *name); * A_foo attributes. - FM */ #ifdef USE_COLOR_TABLE -extern void LYaddWAttr(WINDOW * win, int a); -extern void LYsubWAttr(WINDOW * win, int a); -extern void LYaddWAttr(WINDOW * win, int a); -extern void LYsubWAttr(WINDOW * win, int a); -extern void lynx_set_color(int a); -extern void lynx_standout(int a); -extern int lynx_chg_color(int, int, int); + extern void LYaddWAttr(WINDOW * win, int a); + extern void LYsubWAttr(WINDOW * win, int a); + extern void LYaddWAttr(WINDOW * win, int a); + extern void LYsubWAttr(WINDOW * win, int a); + extern void lynx_set_color(int a); + extern void lynx_standout(int a); + extern int lynx_chg_color(int, int, int); #undef standout #define standout() lynx_standout(TRUE) @@ -607,11 +614,11 @@ extern int lynx_chg_color(int, int, int); #define wstart_reverse(w) LYaddWAttr(w, A_REVERSE) #define stop_reverse() LYsubAttr(A_REVERSE) #define wstop_reverse(w) LYsubWAttr(w, A_REVERSE) -#endif /* SNAKE && HP_TERMINAL */ +#endif /* SNAKE && HP_TERMINAL */ -#endif /* VMS */ +#endif /* VMS */ -#else /* Not FANCY_CURSES: */ +#else /* Not FANCY_CURSES: */ /* *INDENT-OFF* */ #ifdef COLOR_CURSES #undef COLOR_CURSES @@ -636,7 +643,7 @@ FANCY_CURSES. Check your config.log to see why the FANCY_CURSES test failed. #define stop_reverse() standend() #define wstop_reverse(a) wstandend(a) -#endif /* FANCY_CURSES */ +#endif /* FANCY_CURSES */ #ifdef __hpux /* FIXME: configure check */ #undef ACS_UARROW @@ -675,7 +682,7 @@ FANCY_CURSES. Check your config.log to see why the FANCY_CURSES test failed. #define addch_raw(ch) LYaddch(ch) -#endif /* USE_SLANG */ +#endif /* USE_SLANG */ #ifdef USE_SLANG #define LYGetYX(y, x) y = SLsmg_get_row(), x = SLsmg_get_column() @@ -684,8 +691,8 @@ FANCY_CURSES. Check your config.log to see why the FANCY_CURSES test failed. #define LYGetYX(y, x) getyx(LYwin, y, x) #else #define LYGetYX(y, x) y = LYwin->_cury, x = LYwin->_curx -#endif /* getyx */ -#endif /* USE_SLANG */ +#endif /* getyx */ +#endif /* USE_SLANG */ /* * If the screen library allows us to specify "default" color, allow user to @@ -697,31 +704,31 @@ FANCY_CURSES. Check your config.log to see why the FANCY_CURSES test failed. #endif #endif -extern void lynx_enable_mouse(int); -extern void lynx_force_repaint(void); -extern void lynx_nl2crlf(int normal); -extern void lynx_start_title_color(void); -extern void lynx_stop_title_color(void); -extern void lynx_start_link_color(int flag, int pending); -extern void lynx_stop_link_color(int flag, int pending); -extern void lynx_stop_target_color(void); -extern void lynx_start_target_color(void); -extern void lynx_start_status_color(void); -extern void lynx_stop_status_color(void); -extern void lynx_start_h1_color(void); -extern void lynx_stop_h1_color(void); -extern void lynx_start_prompt_color(void); -extern void lynx_stop_prompt_color(void); -extern void lynx_start_radio_color(void); -extern void lynx_stop_radio_color(void); -extern void lynx_stop_all_colors(void); - -extern void lynx_start_bold(void); -extern void lynx_start_reverse(void); -extern void lynx_start_underline(void); -extern void lynx_stop_bold(void); -extern void lynx_stop_reverse(void); -extern void lynx_stop_underline(void); + extern void lynx_enable_mouse(int); + extern void lynx_force_repaint(void); + extern void lynx_nl2crlf(int normal); + extern void lynx_start_title_color(void); + extern void lynx_stop_title_color(void); + extern void lynx_start_link_color(int flag, int pending); + extern void lynx_stop_link_color(int flag, int pending); + extern void lynx_stop_target_color(void); + extern void lynx_start_target_color(void); + extern void lynx_start_status_color(void); + extern void lynx_stop_status_color(void); + extern void lynx_start_h1_color(void); + extern void lynx_stop_h1_color(void); + extern void lynx_start_prompt_color(void); + extern void lynx_stop_prompt_color(void); + extern void lynx_start_radio_color(void); + extern void lynx_stop_radio_color(void); + extern void lynx_stop_all_colors(void); + + extern void lynx_start_bold(void); + extern void lynx_start_reverse(void); + extern void lynx_start_underline(void); + extern void lynx_stop_bold(void); + extern void lynx_stop_reverse(void); + extern void lynx_stop_underline(void); /* * To prevent corrupting binary data on DOS, MS-WINDOWS or OS/2 we open files @@ -753,6 +760,9 @@ extern void lynx_stop_underline(void); #define LYHideCursor() LYmove((LYlines - 1), (LYcolLimit - 1)) #endif -extern void LYstowCursor(WINDOW * win, int row, int col); + extern void LYstowCursor(WINDOW * win, int row, int col); -#endif /* LYCURSES_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYCURSES_H */ diff --git a/src/LYDownload.c b/src/LYDownload.c index 721c75ed..3025f586 100644 --- a/src/LYDownload.c +++ b/src/LYDownload.c @@ -34,7 +34,8 @@ void LYDownload(char *line) char command[LY_MAXPATH]; char *cp; lynx_list_item_type *download_command = 0; - int ch, recall; + int ch; + RecallType recall; int FnameTotal; int FnameNum; BOOLEAN FirstRecall = TRUE; diff --git a/src/LYDownload.h b/src/LYDownload.h index f80177db..5926df8b 100644 --- a/src/LYDownload.h +++ b/src/LYDownload.h @@ -5,11 +5,17 @@ #include <LYStructs.h> #endif /* LYSTRUCTS_H */ -extern void LYDownload(char *line); -extern int LYdownload_options(char **newfile, char *data_file); +#ifdef __cplusplus +extern "C" { +#endif + extern void LYDownload(char *line); + extern int LYdownload_options(char **newfile, char *data_file); #ifdef VMS -extern BOOLEAN LYDidRename; + extern BOOLEAN LYDidRename; #endif -#endif /* LYDOWNLOAD_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYDOWNLOAD_H */ diff --git a/src/LYEdit.h b/src/LYEdit.h index 8b417e19..3c070628 100644 --- a/src/LYEdit.h +++ b/src/LYEdit.h @@ -5,8 +5,14 @@ #include <HTUtils.h> #endif -extern BOOLEAN editor_can_position(void); -extern int edit_current_file(char *newfile, int cur, int lineno); -extern void edit_temporary_file(char *filename, const char *position, const char *message); +#ifdef __cplusplus +extern "C" { +#endif + extern BOOLEAN editor_can_position(void); + extern int edit_current_file(char *newfile, int cur, int lineno); + extern void edit_temporary_file(char *filename, const char *position, const char *message); -#endif /* LYEDIT_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYEDIT_H */ diff --git a/src/LYEditmap.c b/src/LYEditmap.c index 2b30e1c7..cf8c3ec8 100644 --- a/src/LYEditmap.c +++ b/src/LYEditmap.c @@ -19,9 +19,9 @@ /* Get (lynxkeycode+modifier -> lynxeditactioncode) mapping, intermediate. */ -#define LKC_TO_LEC_M1(c) ((c)>LAST_MOD1_LKC? LYE_UNMOD: Mod1Binding[c]) -#define LKC_TO_LEC_M2(c) ((c)>LAST_MOD2_LKC? LYE_UNMOD: Mod2Binding[c]) -#define LKC_TO_LEC_M3(c) ((c)>LAST_MOD3_LKC? LYE_UNMOD: Mod3Binding[c]) +#define LKC_TO_LEC_M1(c) ((c)>LAST_MOD1_LKC? (int)LYE_UNMOD: Mod1Binding[c]) +#define LKC_TO_LEC_M2(c) ((c)>LAST_MOD2_LKC? (int)LYE_UNMOD: Mod2Binding[c]) +#define LKC_TO_LEC_M3(c) ((c)>LAST_MOD3_LKC? (int)LYE_UNMOD: Mod3Binding[c]) #endif /* EXP_ALT_BINDINGS */ diff --git a/src/LYExtern.h b/src/LYExtern.h index 6cb9ba8b..4d77b1db 100644 --- a/src/LYExtern.h +++ b/src/LYExtern.h @@ -5,11 +5,17 @@ #include <LYStructs.h> #endif /* LYSTRUCTS_H */ -/* returns TRUE if something matching was executed */ -BOOL run_external(char *c, BOOL only_overriders); +#ifdef __cplusplus +extern "C" { +#endif +/* returns TRUE if something matching was executed */ BOOL run_external(char + *c, BOOL only_overriders); #ifdef WIN_EX -extern char *quote_pathname(char *pathname); + extern char *quote_pathname(char *pathname); #endif -#endif /* EXTERNALS_H */ +#ifdef __cplusplus +} +#endif +#endif /* EXTERNALS_H */ diff --git a/src/LYGCurses.h b/src/LYGCurses.h index 6cdf9e91..bdb1e5ef 100644 --- a/src/LYGCurses.h +++ b/src/LYGCurses.h @@ -5,74 +5,72 @@ #include <stdio.h> #include <smgdef.h> +#ifdef __cplusplus +extern "C" { +#endif #define reg register - #ifndef TRUE #define TRUE (1) #define FALSE (0) #endif #define ERR (0) #define OK (1) - #define _SUBWIN 0001 #define _ENDLINE 0002 #define _FULLWIN 0004 #define _SCROLLWIN 0010 #define _FLUSH 0020 #define _STANDOUT 0200 - #define _NOECHO 001 #define _NONL 002 #define _NOCRMODE 004 #define _NORAW 010 - #define _BLINK SMG$M_BLINK #define _BOLD SMG$M_BOLD #define _REVERSE SMG$M_REVERSE #define _UNDERLINE SMG$M_UNDERLINE - -struct _win_st { - int _cur_y, _cur_x; - int _max_y, _max_x; - int _beg_y, _beg_x; - short _flags; - char _clear, _leave, _scroll, _wrap; - char **_y; - short *_firstch, *_lastch; - struct _win_st *_next, *_parent, *_child; - int _id; -}; - -struct _kb_st { - int _id; - unsigned char _flags; - struct { - unsigned short length; - unsigned char type; - unsigned char class; - char *address; - } _buffer_desc; - int _count; - char *_ptr; -}; - -struct _pb_st { - int _id; - int _rows, _cols; - union SMGDEF *_attr; - int _attr_size; -}; + struct _win_st { + int _cur_y, _cur_x; + int _max_y, _max_x; + int _beg_y, _beg_x; + short _flags; + char _clear, _leave, _scroll, _wrap; + char **_y; + short *_firstch, *_lastch; + struct _win_st *_next, *_parent, *_child; + int _id; + }; + + struct _kb_st { + int _id; + unsigned char _flags; + struct { + unsigned short length; + unsigned char type; + unsigned char pclass; + char *address; + } _buffer_desc; + int _count; + char *_ptr; + }; + + struct _pb_st { + int _id; + int _rows, _cols; + union SMGDEF *_attr; + int _attr_size; + }; #define _KEYBOARD struct _kb_st #define WINDOW struct _win_st #define _PASTEBOARD struct _pb_st -extern int LINES __asm("_$$PsectAttributes_NOSHR$$LINES"); -extern int COLS __asm("_$$PsectAttributes_NOSHR$$COLS"); -extern WINDOW *stdscr __asm("_$$PsectAttributes_NOSHR$$stdscr"); -extern WINDOW *curscr __asm("_$$PsectAttributes_NOSHR$$curscr"); -extern _KEYBOARD *stdkb __asm("_$$PsectAttributes_NOSHR$$stdkb"); -extern _PASTEBOARD *stdpb __asm("_$$PsectAttributes_NOSHR$$stdpb"); + extern int LINES __asm("_$$PsectAttributes_NOSHR$$LINES"); + extern int COLS __asm("_$$PsectAttributes_NOSHR$$COLS"); + extern WINDOW *stdscr __asm("_$$PsectAttributes_NOSHR$$stdscr"); + extern WINDOW *curscr __asm("_$$PsectAttributes_NOSHR$$curscr"); + extern _KEYBOARD *stdkb __asm("_$$PsectAttributes_NOSHR$$stdkb"); + extern _PASTEBOARD *stdpb __asm("_$$PsectAttributes_NOSHR$$stdpb"); #define getch() wgetch (stdscr) #define addch(ch) waddch (stdscr, ch) @@ -139,55 +137,55 @@ extern _PASTEBOARD *stdpb __asm("_$$PsectAttributes_NOSHR$$stdpb"); #define bool int -int waddch(WINDOW * win, char ch); + int waddch(WINDOW * win, char ch); -int waddstr(WINDOW * win, char *str); + int waddstr(WINDOW * win, char *str); -int box(WINDOW * win, char vert, char hor); + int box(WINDOW * win, char vert, char hor); -int wclear(WINDOW * win); + int wclear(WINDOW * win); -int wclrattr(WINDOW * win, int attr); + int wclrattr(WINDOW * win, int attr); -int wclrtobot(WINDOW * win); + int wclrtobot(WINDOW * win); -int wclrtoeol(WINDOW * win); + int wclrtoeol(WINDOW * win); -int wdelch(WINDOW * win); + int wdelch(WINDOW * win); -int wdeleteln(WINDOW * win); + int wdeleteln(WINDOW * win); -int delwin(WINDOW * win); + int delwin(WINDOW * win); -int endwin(void); + int endwin(void); -int werase(WINDOW * win); + int werase(WINDOW * win); -int wgetch(WINDOW * win); + int wgetch(WINDOW * win); -int wgetstr(WINDOW * win, char *str); + int wgetstr(WINDOW * win, char *str); -char winch(WINDOW * win); + char winch(WINDOW * win); -WINDOW *initscr(void); + WINDOW *initscr(void); -int winsch(WINDOW * win, char ch); + int winsch(WINDOW * win, char ch); -int winsertln(WINDOW * win); + int winsertln(WINDOW * win); -int winsstr(WINDOW * win, char *str); + int winsstr(WINDOW * win, char *str); -int longname(char *termbuf, char *name); + int longname(char *termbuf, char *name); -int mvwin(WINDOW * win, int st_row, int st_col); + int mvwin(WINDOW * win, int st_row, int st_col); -int wmove(WINDOW * win, int y, int x); + int wmove(WINDOW * win, int y, int x); -WINDOW *newwin(int numlines, int numcols, int begin_y, int begin_x); + WINDOW *newwin(int numlines, int numcols, int begin_y, int begin_x); -int overlay(WINDOW * win1, WINDOW * win2); + int overlay(WINDOW * win1, WINDOW * win2); -int overwrite(WINDOW * win1, WINDOW * win2); + int overwrite(WINDOW * win1, WINDOW * win2); #pragma NOSTANDARD #undef printw @@ -196,28 +194,28 @@ int overwrite(WINDOW * win1, WINDOW * win2); #undef scanw #pragma STANDARD -int printw(char *format_spec,...); + int printw(char *format_spec,...); -int wprintw(WINDOW * win, char *format_spec,...); + int wprintw(WINDOW * win, char *format_spec,...); -int wrefresh(WINDOW * win); + int wrefresh(WINDOW * win); -int wscanw(WINDOW * win, char *format_spec,...); + int wscanw(WINDOW * win, char *format_spec,...); -int scanw(char *fmt, int arg1); + int scanw(char *fmt, int arg1); -int scroll(WINDOW * win); + int scroll(WINDOW * win); -int wsetattr(WINDOW * win, int attr); + int wsetattr(WINDOW * win, int attr); -WINDOW *subwin(WINDOW * win, int numlines, int numcols, - int begin_y, int begin_x); + WINDOW *subwin(WINDOW * win, int numlines, int numcols, + int begin_y, int begin_x); -int wstandend(WINDOW * win); + int wstandend(WINDOW * win); -int wstandout(WINDOW * win); + int wstandout(WINDOW * win); -int touchwin(WINDOW * win); + int touchwin(WINDOW * win); #if defined(CC$mixed_float) || defined(CC$VAXCSHR) @@ -242,4 +240,7 @@ int touchwin(WINDOW * win); #endif #endif -#endif /* __CURSES_LOADED */ +#ifdef __cplusplus +} +#endif +#endif /* __CURSES_LOADED */ diff --git a/src/LYGetFile.c b/src/LYGetFile.c index 42ac71b3..10e80f04 100644 --- a/src/LYGetFile.c +++ b/src/LYGetFile.c @@ -68,7 +68,7 @@ int HTNoDataOK = 0; */ int getfile(DocInfo *doc, int *target) { - int url_type = 0; + UrlTypes url_type = NOT_A_URL_TYPE; char *pound; char *cp = NULL; char *temp = NULL; @@ -945,6 +945,7 @@ int getfile(DocInfo *doc, int *target) "getfile: Adding fragment '%s' to redirection URL.\n", pound)); StrAllocCat(use_this_url_instead, pound); + doc->link = -1; } CTRACE_SLEEP(MessageSecs); HTUserMsg2(WWW_USING_MESSAGE, use_this_url_instead); @@ -1064,8 +1065,10 @@ int getfile(DocInfo *doc, int *target) /* * May set www_search_result. */ - if (HTFindPoundSelector(pound + 1)) + if (HTFindPoundSelector(pound + 1)) { *target = www_search_result; + doc->link = -1; + } } return (NORMAL); } diff --git a/src/LYGetFile.h b/src/LYGetFile.h index 28b379e0..f204d07c 100644 --- a/src/LYGetFile.h +++ b/src/LYGetFile.h @@ -3,20 +3,22 @@ #include <LYStructs.h> +#ifdef __cplusplus +extern "C" { +#endif #define NOT_FOUND 0 #define NORMAL 1 #define NULLFILE 3 + extern int getfile(DocInfo *doc, int *target); + extern void srcmode_for_next_retrieval(int); + extern int follow_link_number(int c, + int cur, + DocInfo *doc, + int *num); + extern void add_trusted(char *str, int type); + extern BOOLEAN exec_ok(const char *source, const char *linkpath, int type); -extern int getfile(DocInfo *doc, int *target); -extern void srcmode_for_next_retrieval(int); -extern int follow_link_number(int c, - int cur, - DocInfo *doc, - int *num); -extern void add_trusted(char *str, int type); -extern BOOLEAN exec_ok(const char *source, const char *linkpath, int type); - -extern char *WWW_Download_File; + extern char *WWW_Download_File; /* values for follow_link_number() */ #define DO_LINK_STUFF 1 @@ -30,4 +32,7 @@ extern char *WWW_Download_File; #define ALWAYS_EXEC_PATH 1 #define CGI_PATH 2 -#endif /* LYGETFILE_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYGETFILE_H */ diff --git a/src/LYGlobalDefs.h b/src/LYGlobalDefs.h index 1963331d..5b4e43d5 100644 --- a/src/LYGlobalDefs.h +++ b/src/LYGlobalDefs.h @@ -40,75 +40,78 @@ #include <LYMail.h> /* to get ifdef's for mail-variables */ +#ifdef __cplusplus +extern "C" { +#endif #ifdef SOCKS -extern BOOLEAN socks_flag; -extern unsigned long socks_bind_remoteAddr; -#endif /* SOCKS */ + extern BOOLEAN socks_flag; + extern unsigned long socks_bind_remoteAddr; +#endif /* SOCKS */ #ifdef IGNORE_CTRL_C -extern BOOLEAN sigint; -#endif /* IGNORE_CTRL_C */ + extern BOOLEAN sigint; +#endif /* IGNORE_CTRL_C */ #if USE_VMS_MAILER -extern char *mail_adrs; -extern BOOLEAN UseFixedRecords; /* convert binary files to FIXED 512 records */ -#endif /* VMS */ + extern char *mail_adrs; + extern BOOLEAN UseFixedRecords; /* convert binary files to FIXED 512 records */ +#endif /* VMS */ #ifndef VMS -extern char *list_format; -#endif /* !VMS */ + extern char *list_format; +#endif /* !VMS */ #ifdef DIRED_SUPPORT -typedef enum { - DIRS_FIRST = 0 - ,FILES_FIRST - ,MIXED_STYLE -} enumDirListStyle; - -typedef enum { - ORDER_BY_NAME - ,ORDER_BY_SIZE - ,ORDER_BY_DATE - ,ORDER_BY_MODE - ,ORDER_BY_TYPE - ,ORDER_BY_USER - ,ORDER_BY_GROUP -} enumDirListOrder; - -extern BOOLEAN lynx_edit_mode; -extern BOOLEAN no_dired_support; -extern HTList *tagged; -extern int LYAutoUncacheDirLists; -extern int dir_list_style; /* enumDirListStyle */ -extern int dir_list_order; /* enumDirListOrder */ + typedef enum { + DIRS_FIRST = 0 + ,FILES_FIRST + ,MIXED_STYLE + } enumDirListStyle; + + typedef enum { + ORDER_BY_NAME + ,ORDER_BY_SIZE + ,ORDER_BY_DATE + ,ORDER_BY_MODE + ,ORDER_BY_TYPE + ,ORDER_BY_USER + ,ORDER_BY_GROUP + } enumDirListOrder; + + extern BOOLEAN lynx_edit_mode; + extern BOOLEAN no_dired_support; + extern HTList *tagged; + extern int LYAutoUncacheDirLists; + extern int dir_list_style; /* enumDirListStyle */ + extern int dir_list_order; /* enumDirListOrder */ #ifdef OK_OVERRIDE -extern BOOLEAN prev_lynx_edit_mode; -#endif /* OK_OVERRIDE */ + extern BOOLEAN prev_lynx_edit_mode; +#endif /* OK_OVERRIDE */ #ifdef OK_PERMIT -extern BOOLEAN no_change_exec_perms; -#endif /* OK_PERMIT */ + extern BOOLEAN no_change_exec_perms; +#endif /* OK_PERMIT */ -#endif /* DIRED_SUPPORT */ +#endif /* DIRED_SUPPORT */ -extern int HTCacheSize; /* the number of documents cached in memory */ + extern int HTCacheSize; /* the number of documents cached in memory */ #if defined(VMS) && defined(VAXC) && !defined(__DECC) -extern int HTVirtualMemorySize; /* bytes allocated and not yet freed */ -#endif /* VMS && VAXC && !__DECC */ + extern int HTVirtualMemorySize; /* bytes allocated and not yet freed */ +#endif /* VMS && VAXC && !__DECC */ #if defined(EXEC_LINKS) || defined(EXEC_SCRIPTS) -extern BOOLEAN local_exec; /* TRUE to enable local program execution */ -extern BOOLEAN local_exec_on_local_files; /* TRUE to enable local program * + extern BOOLEAN local_exec; /* TRUE to enable local program execution */ + extern BOOLEAN local_exec_on_local_files; /* TRUE to enable local program * * execution in local files only */ -#endif /* defined(EXEC_LINKS) || defined(EXEC_SCRIPTS) */ +#endif /* defined(EXEC_LINKS) || defined(EXEC_SCRIPTS) */ #if defined(LYNXCGI_LINKS) && !defined(VMS) /* WebSter Mods -jkt */ -extern char *LYCgiDocumentRoot; /* DOCUMENT_ROOT in the lynxcgi env */ -#endif /* LYNXCGI_LINKS */ + extern char *LYCgiDocumentRoot; /* DOCUMENT_ROOT in the lynxcgi env */ +#endif /* LYNXCGI_LINKS */ /* Values to which keypad_mode can be set */ #define NUMBERS_AS_ARROWS 0 @@ -131,51 +134,51 @@ extern char *LYCgiDocumentRoot; /* DOCUMENT_ROOT in the lynxcgi env */ #define NOVICE_MODE 0 #define INTERMEDIATE_MODE 1 #define ADVANCED_MODE 2 -extern BOOLEAN LYUseNoviceLineTwo; /* True if TOGGLE_HELP is not mapped */ + extern BOOLEAN LYUseNoviceLineTwo; /* True if TOGGLE_HELP is not mapped */ #define MAX_LINE 1024 /* Hope that no window is larger than this */ #define MAX_COLS 999 /* we don't expect wider than this */ #define DFT_COLS 80 /* ...and normally only this */ #define DFT_ROWS 24 /* ...corresponding nominal height */ -extern char star_string[MAX_LINE + 1]; /* from GridText.c */ + extern char star_string[MAX_LINE + 1]; /* from GridText.c */ #define STARS(n) \ ((n) >= MAX_LINE ? star_string : &star_string[(MAX_LINE-1)] - (n)) -typedef enum { - SHOW_COLOR_UNKNOWN = -1 - ,SHOW_COLOR_NEVER = 0 /* positive numbers are index in LYOptions.c */ - ,SHOW_COLOR_OFF - ,SHOW_COLOR_ON - ,SHOW_COLOR_ALWAYS -} enumShowColor; + typedef enum { + SHOW_COLOR_UNKNOWN = -1 + ,SHOW_COLOR_NEVER = 0 /* positive numbers are index in LYOptions.c */ + ,SHOW_COLOR_OFF + ,SHOW_COLOR_ON + ,SHOW_COLOR_ALWAYS + } enumShowColor; -extern int LYShowColor; /* Show color or monochrome? */ -extern int LYrcShowColor; /* ... as read or last written */ + extern int LYShowColor; /* Show color or monochrome? */ + extern int LYrcShowColor; /* ... as read or last written */ -typedef enum { - MBM_OFF = 0 - ,MBM_STANDARD - ,MBM_ADVANCED -} enumMultiBookmarks; + typedef enum { + MBM_OFF = 0 + ,MBM_STANDARD + ,MBM_ADVANCED + } enumMultiBookmarks; #if !defined(NO_OPTION_FORMS) && !defined(NO_OPTION_MENU) -extern BOOLEAN LYUseFormsOptions; /* use Forms-based options menu */ + extern BOOLEAN LYUseFormsOptions; /* use Forms-based options menu */ #else #define LYUseFormsOptions FALSE /* simplify ifdef'ing in LYMainLoop.c */ #endif -typedef enum { - rateOFF = 0 - ,rateBYTES = 1 - ,rateKB + typedef enum { + rateOFF = 0 + ,rateBYTES = 1 + ,rateKB #ifdef USE_READPROGRESS - ,rateEtaBYTES - ,rateEtaKB + ,rateEtaBYTES + ,rateEtaKB #endif -} TransferRate; + } TransferRate; #ifdef USE_READPROGRESS # define rateEtaKB_maybe rateEtaKB @@ -183,303 +186,303 @@ typedef enum { # define rateEtaKB_maybe rateKB #endif -extern BOOLEAN LYCursesON; /* start_curses()->TRUE, stop_curses()->FALSE */ -extern BOOLEAN LYJumpFileURL; /* URL from the jump file shortcuts? */ -extern BOOLEAN LYNewsPosting; /* News posting supported if TRUE */ -extern BOOLEAN LYShowCursor; /* Show the cursor or hide it? */ -extern BOOLEAN LYShowTransferRate; -extern BOOLEAN LYUnderlineLinks; /* Show the links underlined vs bold */ -extern BOOLEAN LYUseDefShoCur; /* Command line -show_cursor toggle */ -extern BOOLEAN LYUserSpecifiedURL; /* URL from a goto or document? */ -extern BOOLEAN LYfind_leaks; -extern BOOLEAN LYforce_HTML_mode; -extern BOOLEAN LYforce_no_cache; -extern BOOLEAN LYinternal_flag; /* don't need fresh copy, was internal link */ -extern BOOLEAN LYoverride_no_cache; /* don't need fresh copy, from history */ -extern BOOLEAN LYresubmit_posts; -extern BOOLEAN LYtrimInputFields; -extern BOOLEAN bold_H1; -extern BOOLEAN bold_headers; -extern BOOLEAN bold_name_anchors; -extern BOOLEAN case_sensitive; /* TRUE to turn on case sensitive search */ -extern BOOLEAN check_mail; /* TRUE to report unread/new mail messages */ -extern BOOLEAN child_lynx; /* TRUE to exit with an arrow */ -extern BOOLEAN dump_links_only; -extern BOOLEAN dump_output_immediately; -extern BOOLEAN emacs_keys; /* TRUE to turn on emacs-like key movement */ -extern BOOLEAN error_logging; /* TRUE to mail error messages */ -extern BOOLEAN ftp_local_passive; -extern BOOLEAN ftp_ok; -extern BOOLEAN ftp_passive; /* TRUE if we want to use passive mode ftp */ -extern BOOLEAN goto_buffer; /* TRUE if offering default goto URL */ -extern BOOLEAN is_www_index; -extern BOOLEAN jump_buffer; /* TRUE if offering default shortcut */ -extern BOOLEAN long_url_ok; -extern BOOLEAN lynx_mode; -extern BOOLEAN more; /* is there more document to display? */ -extern BOOLEAN news_ok; -extern BOOLEAN number_fields_on_left; -extern BOOLEAN number_links_on_left; -extern BOOLEAN recent_sizechange; -extern BOOLEAN rlogin_ok; -extern BOOLEAN syslog_requested_urls; -extern BOOLEAN system_editor; /* True if locked-down editor */ -extern BOOLEAN telnet_ok; -extern BOOLEAN verbose_img; /* display filenames of images? */ -extern BOOLEAN vi_keys; /* TRUE to turn on vi-like key movement */ - -extern HTList *Goto_URLs; - -extern char *LYRequestReferer; /* Referer, may be set in getfile() */ -extern char *LYRequestTitle; /* newdoc.title in calls to getfile() */ -extern char *LYTransferName; /* abbreviation for Kilobytes */ -extern char *LynxHome; -extern char *LynxSigFile; /* Signature file, in or off home */ -extern char *ftp_lasthost; -extern char *helpfile; -extern char *helpfilepath; -extern char *jumpprompt; /* The default jump statusline prompt */ -extern char *language; -extern char *lynx_cfg_file; /* location of active lynx.cfg file */ -extern char *lynx_cmd_logfile; /* file to write keystroke commands, if any */ -extern char *lynx_cmd_script; /* file to read keystroke commands, if any */ -extern char *lynx_save_space; -extern char *lynx_temp_space; -extern char *lynxjumpfile; -extern char *lynxlinksfile; -extern char *lynxlistfile; -extern char *original_dir; -extern char *pref_charset; /* Lynx's preferred character set - MM */ -extern char *startfile; -extern char *syslog_txt; /* syslog arb text for session */ -extern char *system_mail; -extern char *system_mail_flags; -extern char *x_display; -extern char empty_string[]; - -extern const char *checked_box; /* form boxes */ -extern const char *checked_radio; /* form radio buttons */ -extern const char *unchecked_box; /* form boxes */ -extern const char *unchecked_radio; /* form radio buttons */ - -extern int LYAcceptEncoding; -extern int LYAcceptMedia; -extern int LYTransferRate; /* see enum TransferRate */ -extern int display_lines; /* number of lines in the display */ -extern int dump_output_width; -extern int keypad_mode; /* NUMBERS_AS_ARROWS or LINKS_ARE_NUMBERED */ -extern int lynx_temp_subspace; -extern int max_cookies_buffer; -extern int max_cookies_domain; -extern int max_cookies_global; -extern int user_mode; /* novice or advanced */ -extern int www_search_result; - -extern BOOLEAN exec_frozen; -extern BOOLEAN had_restrictions_all; /* parsed these restriction options */ -extern BOOLEAN had_restrictions_default; /* flags to note whether we have... */ -extern BOOLEAN no_bookmark; -extern BOOLEAN no_bookmark_exec; -extern BOOLEAN no_chdir; -extern BOOLEAN no_compileopts_info; -extern BOOLEAN no_disk_save; -extern BOOLEAN no_dotfiles; -extern BOOLEAN no_download; -extern BOOLEAN no_editor; -extern BOOLEAN no_exec; -extern BOOLEAN no_file_url; -extern BOOLEAN no_goto; -extern BOOLEAN no_goto_configinfo; -extern BOOLEAN no_goto_cso; -extern BOOLEAN no_goto_file; -extern BOOLEAN no_goto_finger; -extern BOOLEAN no_goto_ftp; -extern BOOLEAN no_goto_gopher; -extern BOOLEAN no_goto_http; -extern BOOLEAN no_goto_https; -extern BOOLEAN no_goto_lynxcgi; -extern BOOLEAN no_goto_lynxexec; -extern BOOLEAN no_goto_lynxprog; -extern BOOLEAN no_goto_mailto; -extern BOOLEAN no_goto_news; -extern BOOLEAN no_goto_nntp; -extern BOOLEAN no_goto_rlogin; -extern BOOLEAN no_goto_snews; -extern BOOLEAN no_goto_telnet; -extern BOOLEAN no_goto_tn3270; -extern BOOLEAN no_goto_wais; -extern BOOLEAN no_inside_ftp; -extern BOOLEAN no_inside_news; -extern BOOLEAN no_inside_rlogin; -extern BOOLEAN no_inside_telnet; /* this and following are restrictions */ -extern BOOLEAN no_jump; -extern BOOLEAN no_lynxcfg_info; -extern BOOLEAN no_lynxcfg_xinfo; -extern BOOLEAN no_lynxcgi; -extern BOOLEAN no_mail; -extern BOOLEAN no_multibook; -extern BOOLEAN no_newspost; -extern BOOLEAN no_option_save; -extern BOOLEAN no_outside_ftp; -extern BOOLEAN no_outside_news; -extern BOOLEAN no_outside_rlogin; -extern BOOLEAN no_outside_telnet; -extern BOOLEAN no_print; /* TRUE to disable printing */ -extern BOOLEAN no_shell; -extern BOOLEAN no_suspend; -extern BOOLEAN no_telnet_port; -extern BOOLEAN no_useragent; - -extern BOOLEAN no_statusline; -extern BOOLEAN no_filereferer; -extern char LYRefererWithQuery; /* 'S', 'P', or 'D' */ -extern BOOLEAN local_host_only; -extern BOOLEAN override_no_download; -extern BOOLEAN show_dotfiles; /* From rcfile if no_dotfiles is false */ -extern char *indexfile; -extern char *anonftp_password; -extern char *personal_mail_address; -extern char *homepage; /* startfile or command line argument */ -extern char *editor; /* if non empty it enables edit mode with + extern BOOLEAN LYCursesON; /* start_curses()->TRUE, stop_curses()->FALSE */ + extern BOOLEAN LYJumpFileURL; /* URL from the jump file shortcuts? */ + extern BOOLEAN LYNewsPosting; /* News posting supported if TRUE */ + extern BOOLEAN LYShowCursor; /* Show the cursor or hide it? */ + extern BOOLEAN LYShowTransferRate; + extern BOOLEAN LYUnderlineLinks; /* Show the links underlined vs bold */ + extern BOOLEAN LYUseDefShoCur; /* Command line -show_cursor toggle */ + extern BOOLEAN LYUserSpecifiedURL; /* URL from a goto or document? */ + extern BOOLEAN LYfind_leaks; + extern BOOLEAN LYforce_HTML_mode; + extern BOOLEAN LYforce_no_cache; + extern BOOLEAN LYinternal_flag; /* don't need fresh copy, was internal link */ + extern BOOLEAN LYoverride_no_cache; /* don't need fresh copy, from history */ + extern BOOLEAN LYresubmit_posts; + extern BOOLEAN LYtrimInputFields; + extern BOOLEAN bold_H1; + extern BOOLEAN bold_headers; + extern BOOLEAN bold_name_anchors; + extern BOOLEAN case_sensitive; /* TRUE to turn on case sensitive search */ + extern BOOLEAN check_mail; /* TRUE to report unread/new mail messages */ + extern BOOLEAN child_lynx; /* TRUE to exit with an arrow */ + extern BOOLEAN dump_links_only; + extern BOOLEAN dump_output_immediately; + extern BOOLEAN emacs_keys; /* TRUE to turn on emacs-like key movement */ + extern BOOLEAN error_logging; /* TRUE to mail error messages */ + extern BOOLEAN ftp_local_passive; + extern BOOLEAN ftp_ok; + extern BOOLEAN ftp_passive; /* TRUE if we want to use passive mode ftp */ + extern BOOLEAN goto_buffer; /* TRUE if offering default goto URL */ + extern BOOLEAN is_www_index; + extern BOOLEAN jump_buffer; /* TRUE if offering default shortcut */ + extern BOOLEAN long_url_ok; + extern BOOLEAN lynx_mode; + extern BOOLEAN more; /* is there more document to display? */ + extern BOOLEAN news_ok; + extern BOOLEAN number_fields_on_left; + extern BOOLEAN number_links_on_left; + extern BOOLEAN recent_sizechange; + extern BOOLEAN rlogin_ok; + extern BOOLEAN syslog_requested_urls; + extern BOOLEAN system_editor; /* True if locked-down editor */ + extern BOOLEAN telnet_ok; + extern BOOLEAN verbose_img; /* display filenames of images? */ + extern BOOLEAN vi_keys; /* TRUE to turn on vi-like key movement */ + + extern HTList *Goto_URLs; + + extern char *LYRequestReferer; /* Referer, may be set in getfile() */ + extern char *LYRequestTitle; /* newdoc.title in calls to getfile() */ + extern char *LYTransferName; /* abbreviation for Kilobytes */ + extern char *LynxHome; + extern char *LynxSigFile; /* Signature file, in or off home */ + extern char *ftp_lasthost; + extern char *helpfile; + extern char *helpfilepath; + extern char *jumpprompt; /* The default jump statusline prompt */ + extern char *language; + extern char *lynx_cfg_file; /* location of active lynx.cfg file */ + extern char *lynx_cmd_logfile; /* file to write keystroke commands, if any */ + extern char *lynx_cmd_script; /* file to read keystroke commands, if any */ + extern char *lynx_save_space; + extern char *lynx_temp_space; + extern char *lynxjumpfile; + extern char *lynxlinksfile; + extern char *lynxlistfile; + extern char *original_dir; + extern char *pref_charset; /* Lynx's preferred character set - MM */ + extern char *startfile; + extern char *syslog_txt; /* syslog arb text for session */ + extern char *system_mail; + extern char *system_mail_flags; + extern char *x_display; + extern char empty_string[]; + + extern const char *checked_box; /* form boxes */ + extern const char *checked_radio; /* form radio buttons */ + extern const char *unchecked_box; /* form boxes */ + extern const char *unchecked_radio; /* form radio buttons */ + + extern int LYAcceptEncoding; + extern int LYAcceptMedia; + extern int LYTransferRate; /* see enum TransferRate */ + extern int display_lines; /* number of lines in the display */ + extern int dump_output_width; + extern int keypad_mode; /* NUMBERS_AS_ARROWS or LINKS_ARE_NUMBERED */ + extern int lynx_temp_subspace; + extern int max_cookies_buffer; + extern int max_cookies_domain; + extern int max_cookies_global; + extern int user_mode; /* novice or advanced */ + extern int www_search_result; + + extern BOOLEAN exec_frozen; + extern BOOLEAN had_restrictions_all; /* parsed these restriction options */ + extern BOOLEAN had_restrictions_default; /* flags to note whether we have... */ + extern BOOLEAN no_bookmark; + extern BOOLEAN no_bookmark_exec; + extern BOOLEAN no_chdir; + extern BOOLEAN no_compileopts_info; + extern BOOLEAN no_disk_save; + extern BOOLEAN no_dotfiles; + extern BOOLEAN no_download; + extern BOOLEAN no_editor; + extern BOOLEAN no_exec; + extern BOOLEAN no_file_url; + extern BOOLEAN no_goto; + extern BOOLEAN no_goto_configinfo; + extern BOOLEAN no_goto_cso; + extern BOOLEAN no_goto_file; + extern BOOLEAN no_goto_finger; + extern BOOLEAN no_goto_ftp; + extern BOOLEAN no_goto_gopher; + extern BOOLEAN no_goto_http; + extern BOOLEAN no_goto_https; + extern BOOLEAN no_goto_lynxcgi; + extern BOOLEAN no_goto_lynxexec; + extern BOOLEAN no_goto_lynxprog; + extern BOOLEAN no_goto_mailto; + extern BOOLEAN no_goto_news; + extern BOOLEAN no_goto_nntp; + extern BOOLEAN no_goto_rlogin; + extern BOOLEAN no_goto_snews; + extern BOOLEAN no_goto_telnet; + extern BOOLEAN no_goto_tn3270; + extern BOOLEAN no_goto_wais; + extern BOOLEAN no_inside_ftp; + extern BOOLEAN no_inside_news; + extern BOOLEAN no_inside_rlogin; + extern BOOLEAN no_inside_telnet; /* this and following are restrictions */ + extern BOOLEAN no_jump; + extern BOOLEAN no_lynxcfg_info; + extern BOOLEAN no_lynxcfg_xinfo; + extern BOOLEAN no_lynxcgi; + extern BOOLEAN no_mail; + extern BOOLEAN no_multibook; + extern BOOLEAN no_newspost; + extern BOOLEAN no_option_save; + extern BOOLEAN no_outside_ftp; + extern BOOLEAN no_outside_news; + extern BOOLEAN no_outside_rlogin; + extern BOOLEAN no_outside_telnet; + extern BOOLEAN no_print; /* TRUE to disable printing */ + extern BOOLEAN no_shell; + extern BOOLEAN no_suspend; + extern BOOLEAN no_telnet_port; + extern BOOLEAN no_useragent; + + extern BOOLEAN no_statusline; + extern BOOLEAN no_filereferer; + extern char LYRefererWithQuery; /* 'S', 'P', or 'D' */ + extern BOOLEAN local_host_only; + extern BOOLEAN override_no_download; + extern BOOLEAN show_dotfiles; /* From rcfile if no_dotfiles is false */ + extern char *indexfile; + extern char *anonftp_password; + extern char *personal_mail_address; + extern char *homepage; /* startfile or command line argument */ + extern char *editor; /* if non empty it enables edit mode with * the editor that is named */ -extern char *jumpfile; -extern char *bookmark_page; -extern char *BookmarkPage; -extern char *personal_type_map; -extern char *global_type_map; -extern char *global_extension_map; -extern char *personal_extension_map; -extern char *LYHostName; -extern char *LYLocalDomain; -extern BOOLEAN use_underscore; -extern BOOLEAN no_list; -extern BOOLEAN historical_comments; -extern BOOLEAN minimal_comments; -extern BOOLEAN soft_dquotes; + extern char *jumpfile; + extern char *bookmark_page; + extern char *BookmarkPage; + extern char *personal_type_map; + extern char *global_type_map; + extern char *global_extension_map; + extern char *personal_extension_map; + extern char *LYHostName; + extern char *LYLocalDomain; + extern BOOLEAN use_underscore; + extern BOOLEAN no_list; + extern BOOLEAN historical_comments; + extern BOOLEAN minimal_comments; + extern BOOLEAN soft_dquotes; #ifdef USE_SOURCE_CACHE -extern BOOLEAN source_cache_file_error; -extern int LYCacheSource; + extern BOOLEAN source_cache_file_error; + extern int LYCacheSource; #define SOURCE_CACHE_NONE 0 #define SOURCE_CACHE_FILE 1 #define SOURCE_CACHE_MEMORY 2 -extern int LYCacheSourceForAborted; + extern int LYCacheSourceForAborted; #define SOURCE_CACHE_FOR_ABORTED_KEEP 1 #define SOURCE_CACHE_FOR_ABORTED_DROP 0 #endif -extern BOOLEAN LYCancelDownload; -extern BOOLEAN LYRestricted; /* whether we had -anonymous option */ -extern BOOLEAN LYValidate; -extern BOOLEAN LYPermitURL; -extern BOOLEAN enable_scrollback; /* Clear screen before displaying new page */ -extern BOOLEAN keep_mime_headers; /* Include mime headers and * + extern BOOLEAN LYCancelDownload; + extern BOOLEAN LYRestricted; /* whether we had -anonymous option */ + extern BOOLEAN LYValidate; + extern BOOLEAN LYPermitURL; + extern BOOLEAN enable_scrollback; /* Clear screen before displaying new page */ + extern BOOLEAN keep_mime_headers; /* Include mime headers and * * force source dump */ -extern BOOLEAN no_url_redirection; /* Don't follow URL redirections */ + extern BOOLEAN no_url_redirection; /* Don't follow URL redirections */ #ifdef DISP_PARTIAL -extern BOOLEAN display_partial; /* Display document while loading */ -extern int NumOfLines_partial; /* -//- "current" number of lines */ -extern int partial_threshold; -extern BOOLEAN debug_display_partial; /* show with MessageSecs delay */ -extern BOOLEAN display_partial_flag; /* permanent flag, not mutable */ + extern BOOLEAN display_partial; /* Display document while loading */ + extern int NumOfLines_partial; /* -//- "current" number of lines */ + extern int partial_threshold; + extern BOOLEAN debug_display_partial; /* show with MessageSecs delay */ + extern BOOLEAN display_partial_flag; /* permanent flag, not mutable */ #endif -extern char *form_post_data; /* User data for post form */ -extern char *form_get_data; /* User data for get form */ -extern char *http_error_file; /* Place HTTP status code in this file */ -extern char *authentication_info[2]; /* Id:Password for protected documents */ -extern char *proxyauth_info[2]; /* Id:Password for protected proxy server */ -extern BOOLEAN HEAD_request; /* Do a HEAD request */ -extern BOOLEAN scan_for_buried_news_references; -extern BOOLEAN bookmark_start; /* Use bookmarks as startfile */ -extern BOOLEAN clickable_images; -extern BOOLEAN nested_tables; -extern BOOLEAN pseudo_inline_alts; -extern BOOLEAN crawl; -extern BOOLEAN traversal; -extern BOOLEAN check_realm; -extern char *startrealm; -extern BOOLEAN more_links; -extern int crawl_count; -extern BOOLEAN LYCancelledFetch; -extern const char *LYToolbarName; - -extern int AlertSecs; -extern int InfoSecs; -extern int MessageSecs; -extern int DebugSecs; -extern int ReplaySecs; - -extern char *LYUserAgent; /* Lynx User-Agent header */ -extern char *LYUserAgentDefault; /* Lynx default User-Agent header */ -extern BOOLEAN LYNoRefererHeader; /* Never send Referer header? */ -extern BOOLEAN LYNoRefererForThis; /* No Referer header for this URL? */ -extern BOOLEAN LYNoFromHeader; /* Never send From header? */ -extern BOOLEAN LYListNewsNumbers; -extern BOOLEAN LYUseMouse; -extern BOOLEAN LYListNewsDates; - -extern BOOLEAN LYRawMode; -extern BOOLEAN LYDefaultRawMode; -extern BOOLEAN LYUseDefaultRawMode; -extern char *UCAssume_MIMEcharset; -extern BOOLEAN UCSaveBookmarksInUnicode; /* in titles, chars >127 save as &#xUUUU */ -extern BOOLEAN UCForce8bitTOUPPER; /* disable locale case-conversion for >127 */ -extern int outgoing_mail_charset; /* translate outgoing mail to this charset */ - -extern BOOLEAN LYisConfiguredForX; -extern char *URLDomainPrefixes; -extern char *URLDomainSuffixes; -extern BOOLEAN startfile_ok; -extern BOOLEAN LYSelectPopups; /* Cast popups to radio buttons? */ -extern BOOLEAN LYUseDefSelPop; /* Command line -popup toggle */ -extern int LYMultiBookmarks; /* Multi bookmark support on? */ -extern BOOLEAN LYMBMBlocked; /* Force MBM support off? */ -extern int LYStatusLine; /* Line for statusline() or -1 */ -extern BOOLEAN LYCollapseBRs; /* Collapse serial BRs? */ -extern BOOLEAN LYSetCookies; /* Process Set-Cookie headers? */ -extern BOOLEAN LYAcceptAllCookies; /* accept ALL cookies? */ - -extern char *LYCookieAcceptDomains; /* domains to accept all cookies */ -extern char *LYCookieRejectDomains; /* domains to reject all cookies */ -extern char *LYCookieStrictCheckDomains; /* domains to check strictly */ -extern char *LYCookieLooseCheckDomains; /* domains to check loosely */ -extern char *LYCookieQueryCheckDomains; /* domains to check w/a query */ -extern char *LYCookieSAcceptDomains; /* domains to accept all cookies */ -extern char *LYCookieSRejectDomains; /* domains to reject all cookies */ -extern char *LYCookieSStrictCheckDomains; /* domains to check strictly */ -extern char *LYCookieSLooseCheckDomains; /* domains to check loosely */ -extern char *LYCookieSQueryCheckDomains; /* domains to check w/a query */ + extern char *form_post_data; /* User data for post form */ + extern char *form_get_data; /* User data for get form */ + extern char *http_error_file; /* Place HTTP status code in this file */ + extern char *authentication_info[2]; /* Id:Password for protected documents */ + extern char *proxyauth_info[2]; /* Id:Password for protected proxy server */ + extern BOOLEAN HEAD_request; /* Do a HEAD request */ + extern BOOLEAN scan_for_buried_news_references; + extern BOOLEAN bookmark_start; /* Use bookmarks as startfile */ + extern BOOLEAN clickable_images; + extern BOOLEAN nested_tables; + extern BOOLEAN pseudo_inline_alts; + extern BOOLEAN crawl; + extern BOOLEAN traversal; + extern BOOLEAN check_realm; + extern char *startrealm; + extern BOOLEAN more_links; + extern int crawl_count; + extern BOOLEAN LYCancelledFetch; + extern const char *LYToolbarName; + + extern int AlertSecs; + extern int InfoSecs; + extern int MessageSecs; + extern int DebugSecs; + extern int ReplaySecs; + + extern char *LYUserAgent; /* Lynx User-Agent header */ + extern char *LYUserAgentDefault; /* Lynx default User-Agent header */ + extern BOOLEAN LYNoRefererHeader; /* Never send Referer header? */ + extern BOOLEAN LYNoRefererForThis; /* No Referer header for this URL? */ + extern BOOLEAN LYNoFromHeader; /* Never send From header? */ + extern BOOLEAN LYListNewsNumbers; + extern BOOLEAN LYUseMouse; + extern BOOLEAN LYListNewsDates; + + extern BOOLEAN LYRawMode; + extern BOOLEAN LYDefaultRawMode; + extern BOOLEAN LYUseDefaultRawMode; + extern char *UCAssume_MIMEcharset; + extern BOOLEAN UCSaveBookmarksInUnicode; /* in titles, chars >127 save as &#xUUUU */ + extern BOOLEAN UCForce8bitTOUPPER; /* disable locale case-conversion for >127 */ + extern int outgoing_mail_charset; /* translate outgoing mail to this charset */ + + extern BOOLEAN LYisConfiguredForX; + extern char *URLDomainPrefixes; + extern char *URLDomainSuffixes; + extern BOOLEAN startfile_ok; + extern BOOLEAN LYSelectPopups; /* Cast popups to radio buttons? */ + extern BOOLEAN LYUseDefSelPop; /* Command line -popup toggle */ + extern int LYMultiBookmarks; /* Multi bookmark support on? */ + extern BOOLEAN LYMBMBlocked; /* Force MBM support off? */ + extern int LYStatusLine; /* Line for statusline() or -1 */ + extern BOOLEAN LYCollapseBRs; /* Collapse serial BRs? */ + extern BOOLEAN LYSetCookies; /* Process Set-Cookie headers? */ + extern BOOLEAN LYAcceptAllCookies; /* accept ALL cookies? */ + + extern char *LYCookieAcceptDomains; /* domains to accept all cookies */ + extern char *LYCookieRejectDomains; /* domains to reject all cookies */ + extern char *LYCookieStrictCheckDomains; /* domains to check strictly */ + extern char *LYCookieLooseCheckDomains; /* domains to check loosely */ + extern char *LYCookieQueryCheckDomains; /* domains to check w/a query */ + extern char *LYCookieSAcceptDomains; /* domains to accept all cookies */ + extern char *LYCookieSRejectDomains; /* domains to reject all cookies */ + extern char *LYCookieSStrictCheckDomains; /* domains to check strictly */ + extern char *LYCookieSLooseCheckDomains; /* domains to check loosely */ + extern char *LYCookieSQueryCheckDomains; /* domains to check w/a query */ #ifndef DISABLE_BIBP -extern BOOLEAN no_goto_bibp; -extern char *BibP_globalserver; /* global server for bibp: links */ -extern char *BibP_bibhost; /* local server for bibp: links */ -extern BOOLEAN BibP_bibhost_checked; /* bibhost has been checked */ -extern BOOLEAN BibP_bibhost_available; /* bibhost is responding */ + extern BOOLEAN no_goto_bibp; + extern char *BibP_globalserver; /* global server for bibp: links */ + extern char *BibP_bibhost; /* local server for bibp: links */ + extern BOOLEAN BibP_bibhost_checked; /* bibhost has been checked */ + extern BOOLEAN BibP_bibhost_available; /* bibhost is responding */ #endif #ifdef USE_PERSISTENT_COOKIES -extern BOOLEAN persistent_cookies; -extern char *LYCookieFile; /* cookie read file */ -extern char *LYCookieSaveFile; /* cookie save file */ -#endif /* USE_PERSISTENT_COOKIES */ + extern BOOLEAN persistent_cookies; + extern char *LYCookieFile; /* cookie read file */ + extern char *LYCookieSaveFile; /* cookie save file */ +#endif /* USE_PERSISTENT_COOKIES */ -extern char *XLoadImageCommand; /* Default image viewer for X */ + extern char *XLoadImageCommand; /* Default image viewer for X */ #ifdef USE_EXTERNALS -extern BOOLEAN no_externals; /* don't allow the use of externals */ + extern BOOLEAN no_externals; /* don't allow the use of externals */ #endif -extern BOOLEAN LYNoISMAPifUSEMAP; /* Omit ISMAP link if MAP present? */ -extern int LYHiddenLinks; + extern BOOLEAN LYNoISMAPifUSEMAP; /* Omit ISMAP link if MAP present? */ + extern int LYHiddenLinks; -extern int Old_DTD; + extern int Old_DTD; #define MBM_V_MAXFILES 25 /* Max number of sub-bookmark files */ @@ -487,118 +490,118 @@ extern int Old_DTD; * Arrays that holds the names of sub-bookmark files * and their descriptions. */ -extern char *MBM_A_subbookmark[MBM_V_MAXFILES + 1]; -extern char *MBM_A_subdescript[MBM_V_MAXFILES + 1]; - -extern BOOLEAN LYForceSSLCookiesSecure; -extern BOOLEAN LYNoCc; -extern BOOLEAN LYNonRestartingSIGWINCH; -extern BOOLEAN LYPreparsedSource; /* Show source as preparsed? */ -extern BOOLEAN LYPrependBaseToSource; -extern BOOLEAN LYPrependCharsetToSource; -extern BOOLEAN LYQuitDefaultYes; -extern BOOLEAN LYReuseTempfiles; -extern BOOLEAN LYSeekFragAREAinCur; -extern BOOLEAN LYSeekFragMAPinCur; -extern BOOLEAN LYStripDotDotURLs; /* Try to fix ../ in some URLs? */ -extern BOOLEAN LYUseBuiltinSuffixes; -extern BOOLEAN dont_wrap_pre; - -extern int cookie_noprompt; - -typedef enum { - FORCE_PROMPT_DFT /* force a prompt, use the result */ - ,FORCE_PROMPT_YES /* assume "yes" where a prompt would be used */ - ,FORCE_PROMPT_NO /* assume "no" where a prompt would be used */ -} FORCE_PROMPT; + extern char *MBM_A_subbookmark[MBM_V_MAXFILES + 1]; + extern char *MBM_A_subdescript[MBM_V_MAXFILES + 1]; + + extern BOOLEAN LYForceSSLCookiesSecure; + extern BOOLEAN LYNoCc; + extern BOOLEAN LYNonRestartingSIGWINCH; + extern BOOLEAN LYPreparsedSource; /* Show source as preparsed? */ + extern BOOLEAN LYPrependBaseToSource; + extern BOOLEAN LYPrependCharsetToSource; + extern BOOLEAN LYQuitDefaultYes; + extern BOOLEAN LYReuseTempfiles; + extern BOOLEAN LYSeekFragAREAinCur; + extern BOOLEAN LYSeekFragMAPinCur; + extern BOOLEAN LYStripDotDotURLs; /* Try to fix ../ in some URLs? */ + extern BOOLEAN LYUseBuiltinSuffixes; + extern BOOLEAN dont_wrap_pre; + + extern int cookie_noprompt; + + typedef enum { + FORCE_PROMPT_DFT /* force a prompt, use the result */ + ,FORCE_PROMPT_YES /* assume "yes" where a prompt would be used */ + ,FORCE_PROMPT_NO /* assume "no" where a prompt would be used */ + } FORCE_PROMPT; #ifdef USE_SSL -extern int ssl_noprompt; + extern int ssl_noprompt; #endif #ifdef MISC_EXP -extern int LYNoZapKey; /* 0: off (do 'z' checking), 1: full, 2: initially */ + extern int LYNoZapKey; /* 0: off (do 'z' checking), 1: full, 2: initially */ #endif #ifdef EXP_JUSTIFY_ELTS -extern BOOL ok_justify; -extern int justify_max_void_percent; + extern BOOL ok_justify; + extern int justify_max_void_percent; #endif #ifdef EXP_LOCALE_CHARSET -extern BOOLEAN LYLocaleCharset; + extern BOOLEAN LYLocaleCharset; #endif #ifndef NO_DUMP_WITH_BACKSPACES -extern BOOLEAN with_backspaces; + extern BOOLEAN with_backspaces; #endif #if defined(PDCURSES) && defined(PDC_BUILD) && PDC_BUILD >= 2401 -extern int scrsize_x; -extern int scrsize_y; + extern int scrsize_x; + extern int scrsize_y; #endif #ifndef NO_LYNX_TRACE -extern FILE *LYTraceLogFP; /* Pointer for TRACE log */ -extern char *LYTraceLogPath; /* Path for TRACE log */ + extern FILE *LYTraceLogFP; /* Pointer for TRACE log */ + extern char *LYTraceLogPath; /* Path for TRACE log */ #endif -extern BOOLEAN LYUseTraceLog; /* Use a TRACE log? */ + extern BOOLEAN LYUseTraceLog; /* Use a TRACE log? */ -extern BOOL force_empty_hrefless_a; -extern int connect_timeout; + extern BOOL force_empty_hrefless_a; + extern int connect_timeout; #ifdef TEXTFIELDS_MAY_NEED_ACTIVATION -extern BOOL textfields_need_activation; -extern BOOL textfields_activation_option; + extern BOOL textfields_need_activation; + extern BOOL textfields_activation_option; #ifdef INACTIVE_INPUT_STYLE_VH -extern BOOL textinput_redrawn; + extern BOOL textinput_redrawn; #endif #else #define textfields_need_activation FALSE -#endif /* TEXTFIELDS_MAY_NEED_ACTIVATION */ +#endif /* TEXTFIELDS_MAY_NEED_ACTIVATION */ -extern BOOLEAN textfield_prompt_at_left_edge; + extern BOOLEAN textfield_prompt_at_left_edge; #ifndef VMS -extern BOOLEAN LYNoCore; -extern BOOLEAN restore_sigpipe_for_children; -#endif /* !VMS */ + extern BOOLEAN LYNoCore; + extern BOOLEAN restore_sigpipe_for_children; +#endif /* !VMS */ #if defined(USE_COLOR_STYLE) -extern char *lynx_lss_file; + extern char *lynx_lss_file; #endif -extern int HTNoDataOK; /* HT_NO_DATA-is-ok hack */ -extern BOOLEAN FileInitAlreadyDone; + extern int HTNoDataOK; /* HT_NO_DATA-is-ok hack */ + extern BOOLEAN FileInitAlreadyDone; #ifdef __DJGPP__ -extern BOOLEAN watt_debug; -extern BOOLEAN dj_is_bash; -#endif /* __DJGPP__ */ + extern BOOLEAN watt_debug; + extern BOOLEAN dj_is_bash; +#endif /* __DJGPP__ */ #ifdef WIN_EX /* LYMain.c */ -extern BOOLEAN focus_window; -extern BOOLEAN system_is_NT; -extern char windows_drive[4]; -extern int lynx_timeout; -#endif /* _WINDOWS */ + extern BOOLEAN focus_window; + extern BOOLEAN system_is_NT; + extern char windows_drive[4]; + extern int lynx_timeout; +#endif /* _WINDOWS */ #ifdef SH_EX -extern BOOLEAN show_cfg; + extern BOOLEAN show_cfg; #endif -extern BOOLEAN no_table_center; + extern BOOLEAN no_table_center; #if USE_BLAT_MAILER -extern BOOLEAN mail_is_blat; + extern BOOLEAN mail_is_blat; #endif #if defined(__CYGWIN__) -extern void cygwin_conv_to_full_win32_path(char *posix, char *dos); -extern void cygwin_conv_to_full_posix_path(char *dos, char *posix); -extern int setmode(int handle, int amode); + extern void cygwin_conv_to_full_win32_path(char *posix, char *dos); + extern void cygwin_conv_to_full_posix_path(char *dos, char *posix); + extern int setmode(int handle, int amode); #endif #if !defined(__CYGWIN__) && defined(__CYGWIN32__) @@ -613,18 +616,21 @@ extern int setmode(int handle, int amode); #ifdef USE_SCROLLBAR /* GridText.c */ -extern BOOLEAN LYShowScrollbar; -extern BOOLEAN LYsb_arrow; -extern int LYsb_begin; -extern int LYsb_end; + extern BOOLEAN LYShowScrollbar; + extern BOOLEAN LYsb_arrow; + extern int LYsb_begin; + extern int LYsb_end; #endif #ifdef MARK_HIDDEN_LINKS -extern char *hidden_link_marker; + extern char *hidden_link_marker; #endif #ifdef USE_BLINK -extern BOOLEAN term_blink_is_boldbg; + extern BOOLEAN term_blink_is_boldbg; #endif -#endif /* LYGLOBALDEFS_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYGLOBALDEFS_H */ diff --git a/src/LYHash.h b/src/LYHash.h index b0d2674d..f8aaf4a2 100644 --- a/src/LYHash.h +++ b/src/LYHash.h @@ -1,81 +1,87 @@ -#if !defined(_LYHASH_H_) +#ifndef _LYHASH_H_ #define _LYHASH_H_ 1 #ifndef HTUTILS_H #include <HTUtils.h> #endif -#define OMIT_SCN_KEEPING 0 /* whether to omit keeping of Style_className - in HTML.c when lss support is on. 1 to increase performance. */ - -struct _hashbucket { - char *name; /* name of this item */ - int code; /* code of this item */ - int color; /* color highlighting to be done */ - int mono; /* mono highlighting to be done */ - int cattr; /* attributes to go with the color */ - struct _hashbucket *next; /* next item */ -}; +#ifdef __cplusplus +extern "C" { +#endif + /* define OMIT_SCN_KEEPING to 1 to omit keeping of Style_className + * in HTML.c when lss support is on. 1 to increase performance. + */ +#define OMIT_SCN_KEEPING 0 + struct _hashbucket { + char *name; /* name of this item */ + int code; /* code of this item */ + int color; /* color highlighting to be done */ + int mono; /* mono highlighting to be done */ + int cattr; /* attributes to go with the color */ + struct _hashbucket *next; /* next item */ + }; -typedef struct _hashbucket bucket; + typedef struct _hashbucket bucket; -#if !defined(CSHASHSIZE) +#ifndef CSHASHSIZE #define CSHASHSIZE 8193 #endif #define NOSTYLE -1 -extern bucket hashStyles[CSHASHSIZE]; -extern int hash_code(const char *string); -extern bucket nostyle_bucket; /* initialized properly - to be used in CTRACE + /* hashStyles[] is used in CTRACE when NOSTYLE is passed as 'style' to + * curses_w_style + */ + extern bucket hashStyles[CSHASHSIZE]; + extern int hash_code(const char *string); + extern bucket nostyle_bucket; - * when NOSTYLE is passed as 'style' to - * curses_w_style - */ + extern int hash_code_lowercase_on_fly(const char *string); + extern int hash_code_aggregate_char(char c, int hash); + extern int hash_code_aggregate_lower_str(const char *c, int hash_was); -extern int hash_code_lowercase_on_fly(const char *string); -extern int hash_code_aggregate_char(char c, int hash); -extern int hash_code_aggregate_lower_str(const char *c, int hash_was); - -extern int s_a; -extern int s_aedit; -extern int s_aedit_arr; -extern int s_aedit_pad; -extern int s_aedit_sel; -extern int s_alert; -extern int s_alink; -extern int s_curedit; -extern int s_forw_backw; -extern int s_hot_paste; -extern int s_menu_active; -extern int s_menu_bg; -extern int s_menu_entry; -extern int s_menu_frame; -extern int s_menu_number; -extern int s_menu_sb; -extern int s_normal; -extern int s_prompt_edit; -extern int s_prompt_edit_arr; -extern int s_prompt_edit_pad; -extern int s_prompt_sel; -extern int s_status; -extern int s_title; -extern int s_whereis; + extern int s_a; + extern int s_aedit; + extern int s_aedit_arr; + extern int s_aedit_pad; + extern int s_aedit_sel; + extern int s_alert; + extern int s_alink; + extern int s_curedit; + extern int s_forw_backw; + extern int s_hot_paste; + extern int s_menu_active; + extern int s_menu_bg; + extern int s_menu_entry; + extern int s_menu_frame; + extern int s_menu_number; + extern int s_menu_sb; + extern int s_normal; + extern int s_prompt_edit; + extern int s_prompt_edit_arr; + extern int s_prompt_edit_pad; + extern int s_prompt_sel; + extern int s_status; + extern int s_title; + extern int s_whereis; #ifdef USE_SCROLLBAR -extern int s_sb_aa; -extern int s_sb_bar; -extern int s_sb_bg; -extern int s_sb_naa; + extern int s_sb_aa; + extern int s_sb_bar; + extern int s_sb_bg; + extern int s_sb_naa; #endif #if OMIT_SCN_KEEPING -extern bucket special_bucket; + extern bucket special_bucket; #endif #define CACHEW 128 #define CACHEH 64 -extern unsigned cached_styles[CACHEH][CACHEW]; + extern unsigned cached_styles[CACHEH][CACHEW]; -#endif /* _LYHASH_H_ */ +#ifdef __cplusplus +} +#endif +#endif /* _LYHASH_H_ */ diff --git a/src/LYHistory.c b/src/LYHistory.c index 7f90bc87..0e3da111 100644 --- a/src/LYHistory.c +++ b/src/LYHistory.c @@ -93,7 +93,7 @@ static void trace_history(const char *tag) */ void LYAddVisitedLink(DocInfo *doc) { - VisitedLink *new; + VisitedLink *tmp; HTList *cur; const char *title = (doc->title ? doc->title : NO_TITLE); @@ -152,36 +152,36 @@ void LYAddVisitedLink(DocInfo *doc) } cur = Visited_Links; - while (NULL != (new = (VisitedLink *) HTList_nextObject(cur))) { - if (!strcmp(NonNull(new->address), + while (NULL != (tmp = (VisitedLink *) HTList_nextObject(cur))) { + if (!strcmp(NonNull(tmp->address), NonNull(doc->address))) { - PrevVisitedLink = PrevActiveVisitedLink = new; + PrevVisitedLink = PrevActiveVisitedLink = tmp; /* Already visited. Update the last-visited info. */ - if (new->next_latest == &Latest_last) /* optimization */ + if (tmp->next_latest == &Latest_last) /* optimization */ return; /* Remove from "latest" chain */ - new->prev_latest->next_latest = new->next_latest; - new->next_latest->prev_latest = new->prev_latest; + tmp->prev_latest->next_latest = tmp->next_latest; + tmp->next_latest->prev_latest = tmp->prev_latest; /* Insert at the end of the "latest" chain */ - Latest_last.prev_latest->next_latest = new; - new->prev_latest = Latest_last.prev_latest; - new->next_latest = &Latest_last; - Latest_last.prev_latest = new; + Latest_last.prev_latest->next_latest = tmp; + tmp->prev_latest = Latest_last.prev_latest; + tmp->next_latest = &Latest_last; + Latest_last.prev_latest = tmp; return; } } - if ((new = typecalloc(VisitedLink)) == NULL) + if ((tmp = typecalloc(VisitedLink)) == NULL) outofmem(__FILE__, "LYAddVisitedLink"); - StrAllocCopy(new->address, doc->address); - LYformTitle(&(new->title), title); + StrAllocCopy(tmp->address, doc->address); + LYformTitle(&(tmp->title), title); /* First-visited chain */ - HTList_appendObject(Visited_Links, new); /* At end */ - new->prev_first = Last_by_first; - Last_by_first = new; + HTList_appendObject(Visited_Links, tmp); /* At end */ + tmp->prev_first = Last_by_first; + Last_by_first = tmp; /* Tree structure */ if (PrevVisitedLink) { @@ -194,27 +194,27 @@ void LYAddVisitedLink(DocInfo *doc) a = b, b = b->next_tree; if (!b) /* a == Latest_tree */ - Latest_tree = new; - new->next_tree = a->next_tree; - a->next_tree = new; + Latest_tree = tmp; + tmp->next_tree = a->next_tree; + a->next_tree = tmp; - new->level = PrevVisitedLink->level + 1; + tmp->level = PrevVisitedLink->level + 1; } else { if (Latest_tree) - Latest_tree->next_tree = new; - new->level = 0; - new->next_tree = NULL; - Latest_tree = new; + Latest_tree->next_tree = tmp; + tmp->level = 0; + tmp->next_tree = NULL; + Latest_tree = tmp; } - PrevVisitedLink = PrevActiveVisitedLink = new; + PrevVisitedLink = PrevActiveVisitedLink = tmp; if (!First_tree) - First_tree = new; + First_tree = tmp; /* "latest" chain */ - Latest_last.prev_latest->next_latest = new; - new->prev_latest = Latest_last.prev_latest; - new->next_latest = &Latest_last; - Latest_last.prev_latest = new; + Latest_last.prev_latest->next_latest = tmp; + tmp->prev_latest = Latest_last.prev_latest; + tmp->next_latest = &Latest_last; + Latest_last.prev_latest = tmp; return; } @@ -334,7 +334,7 @@ static int are_identical(HistInfo * doc, DocInfo *doc1) void LYAllocHistory(int entries) { - CTRACE((tfp, "FIXME LYAllocHistory %d vs %d\n", entries, size_history)); + CTRACE((tfp, "LYAllocHistory %d vs %d\n", entries, size_history)); if (entries + 1 >= size_history) { unsigned want; int save = size_history; @@ -349,11 +349,11 @@ void LYAllocHistory(int entries) if (history == 0) outofmem(__FILE__, "LYAllocHistory"); while (save < size_history) { - CTRACE((tfp, "FIXME ...LYAllocHistory clearing %d\n", save)); + CTRACE((tfp, "...LYAllocHistory clearing %d\n", save)); memset(&history[save++], 0, sizeof(history[0])); } } - CTRACE((tfp, "FIXME ...LYAllocHistory %d vs %d\n", entries, size_history)); + CTRACE((tfp, "...LYAllocHistory %d vs %d\n", entries, size_history)); } /* diff --git a/src/LYHistory.h b/src/LYHistory.h index c5cc8a94..249304f5 100644 --- a/src/LYHistory.h +++ b/src/LYHistory.h @@ -5,24 +5,30 @@ #include <LYStructs.h> #endif /* LYSTRUCTS_H */ -extern BOOLEAN LYwouldPush(const char *title, const char *docurl); -extern BOOLEAN historytarget(DocInfo *newdoc); -extern int LYShowVisitedLinks(char **newfile); -extern int LYhist_next(DocInfo *doc, DocInfo *newdoc); -extern int LYpush(DocInfo *doc, BOOLEAN force_push); -extern int showhistory(char **newfile); -extern void LYAddVisitedLink(DocInfo *doc); -extern void LYAllocHistory(int entries); -extern void LYFreePostData(DocInfo *data); -extern void LYFreeDocInfo(DocInfo *data); -extern void LYhist_prev(DocInfo *doc); -extern void LYhist_prev_register(DocInfo *doc); -extern void LYpop(DocInfo *doc); -extern void LYpop_num(int number, DocInfo *doc); -extern void LYstatusline_messages_on_exit(char **buf); -extern void LYstore_message(const char *message); -extern void LYstore_message2(const char *message, const char *argument); +#ifdef __cplusplus +extern "C" { +#endif + extern BOOLEAN LYwouldPush(const char *title, const char *docurl); + extern BOOLEAN historytarget(DocInfo *newdoc); + extern int LYShowVisitedLinks(char **newfile); + extern int LYhist_next(DocInfo *doc, DocInfo *newdoc); + extern int LYpush(DocInfo *doc, BOOLEAN force_push); + extern int showhistory(char **newfile); + extern void LYAddVisitedLink(DocInfo *doc); + extern void LYAllocHistory(int entries); + extern void LYFreePostData(DocInfo *data); + extern void LYFreeDocInfo(DocInfo *data); + extern void LYhist_prev(DocInfo *doc); + extern void LYhist_prev_register(DocInfo *doc); + extern void LYpop(DocInfo *doc); + extern void LYpop_num(int number, DocInfo *doc); + extern void LYstatusline_messages_on_exit(char **buf); + extern void LYstore_message(const char *message); + extern void LYstore_message2(const char *message, const char *argument); -extern int nhist_extra; + extern int nhist_extra; -#endif /* LYHISTORY_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYHISTORY_H */ diff --git a/src/LYJump.c b/src/LYJump.c index 419963ea..903c2ee2 100644 --- a/src/LYJump.c +++ b/src/LYJump.c @@ -33,14 +33,7 @@ void LYJumpTable_free(void) FREE(cur->file); FREE(cur->shortcut); if (cur->history) { - char *shortcut; - HTList *current = cur->history; - - while (NULL != (shortcut = (char *) HTList_nextObject(current))) { - FREE(shortcut); - }; - - HTList_delete(cur->history); + LYFreeStringList(cur->history); cur->history = NULL; } FREE(cur->table); @@ -58,23 +51,23 @@ void LYJumpTable_free(void) */ void LYAddJumpShortcut(HTList *historyp, char *shortcut) { - char *new = NULL; + char *tmp = NULL; char *old; HTList *cur = historyp; if (!historyp || isEmpty(shortcut)) return; - StrAllocCopy(new, shortcut); + StrAllocCopy(tmp, shortcut); while (NULL != (old = (char *) HTList_nextObject(cur))) { - if (!strcmp(old, new)) { + if (!strcmp(old, tmp)) { HTList_removeObject(historyp, old); FREE(old); break; } } - HTList_addObject(historyp, new); + HTList_addObject(historyp, tmp); return; } @@ -185,7 +178,8 @@ char *LYJump(int key) static char buf[124]; char *bp, *cp; struct JumpTable *jtp; - int ch, recall; + int ch; + RecallType recall; int ShortcutTotal; int ShortcutNum; BOOLEAN FirstShortcutRecall = TRUE; diff --git a/src/LYJump.h b/src/LYJump.h index fad6608e..24b5222e 100644 --- a/src/LYJump.h +++ b/src/LYJump.h @@ -3,27 +3,33 @@ #include <HTList.h> -typedef struct _JumpDatum { - char *key; - char *url; -} JumpDatum; +#ifdef __cplusplus +extern "C" { +#endif + typedef struct _JumpDatum { + char *key; + char *url; + } JumpDatum; -struct JumpTable { - int key; - int nel; - char *msg; - char *file; - char *shortcut; - HTList *history; - JumpDatum *table; - struct JumpTable *next; - char *mp; -}; + struct JumpTable { + int key; + int nel; + char *msg; + char *file; + char *shortcut; + HTList *history; + JumpDatum *table; + struct JumpTable *next; + char *mp; + }; -extern struct JumpTable *JThead; -extern void LYJumpTable_free(void); -extern void LYAddJumpShortcut(HTList *the_history, char *shortcut); -extern BOOL LYJumpInit(char *config); -extern char *LYJump(int key); + extern struct JumpTable *JThead; + extern void LYJumpTable_free(void); + extern void LYAddJumpShortcut(HTList *the_history, char *shortcut); + extern BOOL LYJumpInit(char *config); + extern char *LYJump(int key); -#endif /* LYJUMP_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYJUMP_H */ diff --git a/src/LYJustify.h b/src/LYJustify.h index 3bebdc56..43e22bd0 100644 --- a/src/LYJustify.h +++ b/src/LYJustify.h @@ -7,25 +7,27 @@ #include <HTUtils.h> +#ifdef __cplusplus +extern "C" { +#endif #ifdef EXP_JUSTIFY_ELTS + extern BOOL ok_justify; + extern BOOL can_justify_here; + extern BOOL can_justify_here_saved; -extern BOOL ok_justify; -extern BOOL can_justify_here; -extern BOOL can_justify_here_saved; - -extern BOOL can_justify_this_line; -extern int wait_for_this_stacked_elt; -extern BOOL form_in_htext; + extern BOOL can_justify_this_line; + extern int wait_for_this_stacked_elt; + extern BOOL form_in_htext; /* this is the element with SGML_EMPTY content, so it won't get on the stack, * so we can't trap it with wait_for_this_stacked_elt */ -extern BOOL in_DT; + extern BOOL in_DT; /*disabled by default*/ /*#define DEBUG_JUSTIFY*/ #ifdef DEBUG_JUSTIFY -extern BOOL can_justify_stack_depth; /* can be 0 or 1 if all code is correct */ + extern BOOL can_justify_stack_depth; /* can be 0 or 1 if all code is correct */ # define CAN_JUSTIFY_STACK_INC ++can_justify_stack_depth;\ assert(can_justify_stack_depth < 2 && can_justify_stack_depth >=0 ); @@ -57,25 +59,23 @@ extern BOOL can_justify_stack_depth; /* can be 0 or 1 if all code is correct */ #define EMIT_IFDEF_EXP_JUSTIFY_ELTS(x) x /*defined in order not to wrap single line of code into #ifdef/#endif */ -extern void ht_justify_cleanup(void); -extern void mark_justify_start_position(void *text); - -#else /* ! EXP_JUSTIFY_ELTS */ + extern void ht_justify_cleanup(void); + extern void mark_justify_start_position(void *text); +#else /* ! EXP_JUSTIFY_ELTS */ /* * define empty macros so that they can be used without wrapping them in * #ifdef EXP_JUSTIFY_ELTS/#endif */ - #define CAN_JUSTIFY_PUSH(x) #define CAN_JUSTIFY_POP #define CAN_JUSTIFY_SET(x) #define CAN_JUSTIFY_START #define CANT_JUSTIFY_THIS_LINE #define EMIT_IFDEF_EXP_JUSTIFY_ELTS(x) - -#endif /* EXP_JUSTIFY_ELTS */ - +#endif /* EXP_JUSTIFY_ELTS */ #define CAN_JUSTIFY_PUSH_F CAN_JUSTIFY_PUSH(FALSE) - -#endif /* LYJUSTIFY_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYJUSTIFY_H */ diff --git a/src/LYKeymap.c b/src/LYKeymap.c index 3e81e27d..f794a828 100644 --- a/src/LYKeymap.c +++ b/src/LYKeymap.c @@ -1264,7 +1264,7 @@ static char *pretty_html(int c) static char *format_binding(LYKeymap_t * table, int i) { - LYKeymap_t the_key = table[i]; + LYKeymapCode the_key = (LYKeymapCode) table[i]; char *buf = 0; char *formatted; Kcmd *rmap = LYKeycodeToKcmd(the_key); @@ -1292,7 +1292,7 @@ static void print_binding(HTStream *target, int i, #if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE) if (prev_lynx_edit_mode && !no_dired_support && - (lac1 = key_override[i]) != LYK_UNKNOWN) { + (lac1 = (LYKeymapCode) key_override[i]) != LYK_UNKNOWN) { if ((buf = format_binding(key_override, i)) != 0) { PUTS(buf); FREE(buf); @@ -1300,7 +1300,7 @@ static void print_binding(HTStream *target, int i, } else #endif /* DIRED_SUPPORT && OK_OVERRIDE */ if ((buf = format_binding(keymap, i)) != 0) { - lac1 = keymap[i]; + lac1 = (LYKeymapCode) keymap[i]; PUTS(buf); FREE(buf); } diff --git a/src/LYKeymap.h b/src/LYKeymap.h index 2df5de6e..a6549615 100644 --- a/src/LYKeymap.h +++ b/src/LYKeymap.h @@ -5,46 +5,49 @@ #include <HTList.h> #include <LYCurses.h> -extern BOOLEAN LYisNonAlnumKeyname(int ch, int KeyName); -extern HTList *LYcommandList(void); -extern char *LYKeycodeToString(int c, BOOLEAN upper8); -extern char *fmt_keys(int lkc_first, int lkc_second); -extern char *key_for_func(int func); -extern char *key_for_func_ext(int lac, int context_code); -extern int LYReverseKeymap(int KeyName); -extern int LYStringToKeycode(char *src); -extern int lacname_to_lac(const char *func); -extern int lecname_to_lec(const char *func); -extern int lkcstring_to_lkc(const char *src); -extern int remap(char *key, const char *func, BOOLEAN for_dired); -extern void print_keymap(char **newfile); -extern void reset_emacs_keys(void); -extern void reset_numbers_as_arrows(void); -extern void reset_vi_keys(void); -extern void set_emacs_keys(void); -extern void set_numbers_as_arrows(void); -extern void set_vi_keys(void); -extern void set_vms_keys(void); +#ifdef __cplusplus +extern "C" { +#endif + extern BOOLEAN LYisNonAlnumKeyname(int ch, int KeyName); + extern HTList *LYcommandList(void); + extern char *LYKeycodeToString(int c, BOOLEAN upper8); + extern char *fmt_keys(int lkc_first, int lkc_second); + extern char *key_for_func(int func); + extern char *key_for_func_ext(int lac, int context_code); + extern int LYReverseKeymap(int KeyName); + extern int LYStringToKeycode(char *src); + extern int lacname_to_lac(const char *func); + extern int lecname_to_lec(const char *func); + extern int lkcstring_to_lkc(const char *src); + extern int remap(char *key, const char *func, BOOLEAN for_dired); + extern void print_keymap(char **newfile); + extern void reset_emacs_keys(void); + extern void reset_numbers_as_arrows(void); + extern void reset_vi_keys(void); + extern void set_emacs_keys(void); + extern void set_numbers_as_arrows(void); + extern void set_vi_keys(void); + extern void set_vms_keys(void); /* We only use unsigned keycodes; if there's a problem matching with enum * (which is supposed to be 'int'), that would be okay, but not as clean * for type-checking. */ -typedef unsigned short LYKeymap_t; + typedef unsigned short LYKeymap_t; #define KEYMAP_SIZE 661 -extern LYKeymap_t keymap[KEYMAP_SIZE]; /* main keymap matrix */ + extern LYKeymap_t keymap[KEYMAP_SIZE]; /* main keymap matrix */ #ifdef EXP_KEYBOARD_LAYOUT -typedef unsigned short LYKbLayout_t; -extern int current_layout; -extern LYKbLayout_t *LYKbLayouts[]; -extern const char *LYKbLayoutNames[]; -extern int LYSetKbLayout(char *layout_id); + typedef unsigned short LYKbLayout_t; + extern int current_layout; + extern LYKbLayout_t *LYKbLayouts[]; + extern const char *LYKbLayoutNames[]; + extern int LYSetKbLayout(char *layout_id); #endif #if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE) -extern LYKeymap_t key_override[]; + extern LYKeymap_t key_override[]; #endif /* * * LynxKeyCodes * * */ @@ -56,7 +59,7 @@ extern LYKeymap_t key_override[]; /* Used to distinguish internal Lynx keycodes of (say) extended ncurses once. */ #define LKC_ISLKC 0x0400 /* flag: already lynxkeycode (not native) */ - /* 0x0400 is MOUSE_KEYSYM for slang in LYStrings.c */ + /* 0x0400 is MOUSE_KEYSYM for slang in LYStrings.c */ #define LKC_MASK 0x07FF /* mask for lynxkeycode proper */ #define LKC_DONE 0x07FE /* special value - operation done, not-a-key */ @@ -65,8 +68,8 @@ extern LYKeymap_t key_override[]; #define LAC_SHIFT 8 /* shift for lynxactioncode - must not overwrite any assigned LYK_* values */ #define LAC_MASK ((1<<LAC_SHIFT)-1) - /* mask for lynxactioncode - must cover all - assigned LYK_* values */ + /* mask for lynxactioncode - must cover all + assigned LYK_* values */ /* Return lkc masking single actioncode, given an lkc masking a lac + lec */ #define LKC2_TO_LKC(c) (((c) == -1 || !((c) & LKC_ISLECLAC)) ? (c) : \ @@ -105,142 +108,142 @@ extern LYKeymap_t key_override[]; * The values in this enum are indexed against the command names in the * 'revmap[]' array in LYKeymap.c */ -typedef enum { - LYK_UNKNOWN = 0 - ,LYK_COMMAND - ,LYK_1 - ,LYK_2 - ,LYK_3 - ,LYK_4 - ,LYK_5 - ,LYK_6 - ,LYK_7 - ,LYK_8 - ,LYK_9 - ,LYK_SOURCE - ,LYK_RELOAD - ,LYK_QUIT - ,LYK_ABORT - ,LYK_NEXT_PAGE - ,LYK_PREV_PAGE - ,LYK_UP_TWO - ,LYK_DOWN_TWO - ,LYK_UP_HALF - ,LYK_DOWN_HALF - ,LYK_REFRESH - ,LYK_HOME - ,LYK_END - ,LYK_FIRST_LINK - ,LYK_LAST_LINK - ,LYK_PREV_LINK - ,LYK_NEXT_LINK - ,LYK_LPOS_PREV_LINK - ,LYK_LPOS_NEXT_LINK - ,LYK_FASTBACKW_LINK - ,LYK_FASTFORW_LINK - ,LYK_UP_LINK - ,LYK_DOWN_LINK - ,LYK_RIGHT_LINK - ,LYK_LEFT_LINK - ,LYK_HISTORY - ,LYK_PREV_DOC - ,LYK_NEXT_DOC - ,LYK_ACTIVATE - ,LYK_SUBMIT /* mostly like LYK_ACTIVATE, for mouse use, don't map */ - ,LYK_GOTO - ,LYK_ECGOTO - ,LYK_HELP - ,LYK_DWIMHELP - ,LYK_INDEX - ,LYK_NOCACHE - ,LYK_INTERRUPT - ,LYK_MAIN_MENU - ,LYK_OPTIONS - ,LYK_INDEX_SEARCH - ,LYK_WHEREIS - ,LYK_PREV - ,LYK_NEXT - ,LYK_COMMENT - ,LYK_EDIT - ,LYK_INFO - ,LYK_PRINT - ,LYK_ADD_BOOKMARK - ,LYK_DEL_BOOKMARK - ,LYK_VIEW_BOOKMARK - ,LYK_VLINKS - ,LYK_SHELL - ,LYK_DOWNLOAD - ,LYK_TRACE_TOGGLE - ,LYK_TRACE_LOG - ,LYK_IMAGE_TOGGLE - ,LYK_INLINE_TOGGLE - ,LYK_HEAD - ,LYK_DO_NOTHING - ,LYK_TOGGLE_HELP - ,LYK_JUMP - ,LYK_KEYMAP - ,LYK_LIST - ,LYK_TOOLBAR - ,LYK_HISTORICAL - ,LYK_MINIMAL - ,LYK_SOFT_DQUOTES - ,LYK_RAW_TOGGLE - ,LYK_COOKIE_JAR - ,LYK_F_LINK_NUM - ,LYK_CLEAR_AUTH - ,LYK_SWITCH_DTD - ,LYK_ELGOTO - ,LYK_CHANGE_LINK - ,LYK_DWIMEDIT - ,LYK_EDIT_TEXTAREA - ,LYK_GROW_TEXTAREA - ,LYK_INSERT_FILE + typedef enum { + LYK_UNKNOWN = 0 + ,LYK_COMMAND + ,LYK_1 + ,LYK_2 + ,LYK_3 + ,LYK_4 + ,LYK_5 + ,LYK_6 + ,LYK_7 + ,LYK_8 + ,LYK_9 + ,LYK_SOURCE + ,LYK_RELOAD + ,LYK_QUIT + ,LYK_ABORT + ,LYK_NEXT_PAGE + ,LYK_PREV_PAGE + ,LYK_UP_TWO + ,LYK_DOWN_TWO + ,LYK_UP_HALF + ,LYK_DOWN_HALF + ,LYK_REFRESH + ,LYK_HOME + ,LYK_END + ,LYK_FIRST_LINK + ,LYK_LAST_LINK + ,LYK_PREV_LINK + ,LYK_NEXT_LINK + ,LYK_LPOS_PREV_LINK + ,LYK_LPOS_NEXT_LINK + ,LYK_FASTBACKW_LINK + ,LYK_FASTFORW_LINK + ,LYK_UP_LINK + ,LYK_DOWN_LINK + ,LYK_RIGHT_LINK + ,LYK_LEFT_LINK + ,LYK_HISTORY + ,LYK_PREV_DOC + ,LYK_NEXT_DOC + ,LYK_ACTIVATE + ,LYK_SUBMIT /* mostly like LYK_ACTIVATE, for mouse use, don't map */ + ,LYK_GOTO + ,LYK_ECGOTO + ,LYK_HELP + ,LYK_DWIMHELP + ,LYK_INDEX + ,LYK_NOCACHE + ,LYK_INTERRUPT + ,LYK_MAIN_MENU + ,LYK_OPTIONS + ,LYK_INDEX_SEARCH + ,LYK_WHEREIS + ,LYK_PREV + ,LYK_NEXT + ,LYK_COMMENT + ,LYK_EDIT + ,LYK_INFO + ,LYK_PRINT + ,LYK_ADD_BOOKMARK + ,LYK_DEL_BOOKMARK + ,LYK_VIEW_BOOKMARK + ,LYK_VLINKS + ,LYK_SHELL + ,LYK_DOWNLOAD + ,LYK_TRACE_TOGGLE + ,LYK_TRACE_LOG + ,LYK_IMAGE_TOGGLE + ,LYK_INLINE_TOGGLE + ,LYK_HEAD + ,LYK_DO_NOTHING + ,LYK_TOGGLE_HELP + ,LYK_JUMP + ,LYK_KEYMAP + ,LYK_LIST + ,LYK_TOOLBAR + ,LYK_HISTORICAL + ,LYK_MINIMAL + ,LYK_SOFT_DQUOTES + ,LYK_RAW_TOGGLE + ,LYK_COOKIE_JAR + ,LYK_F_LINK_NUM + ,LYK_CLEAR_AUTH + ,LYK_SWITCH_DTD + ,LYK_ELGOTO + ,LYK_CHANGE_LINK + ,LYK_DWIMEDIT + ,LYK_EDIT_TEXTAREA + ,LYK_GROW_TEXTAREA + ,LYK_INSERT_FILE #ifdef EXP_ADDRLIST_PAGE - ,LYK_ADDRLIST + ,LYK_ADDRLIST #else #define LYK_ADDRLIST LYK_ADD_BOOKMARK #endif #ifdef USE_EXTERNALS - ,LYK_EXTERN_LINK - ,LYK_EXTERN_PAGE + ,LYK_EXTERN_LINK + ,LYK_EXTERN_PAGE #else #define LYK_EXTERN_LINK LYK_UNKNOWN #define LYK_EXTERN_PAGE LYK_UNKNOWN #endif /* !defined(USE_EXTERNALS) */ #if defined(VMS) || defined(DIRED_SUPPORT) - ,LYK_DIRED_MENU + ,LYK_DIRED_MENU #else #define LYK_DIRED_MENU LYK_UNKNOWN #endif /* VMS || DIRED_SUPPORT */ #ifdef DIRED_SUPPORT - ,LYK_CREATE - ,LYK_REMOVE - ,LYK_MODIFY - ,LYK_TAG_LINK - ,LYK_UPLOAD - ,LYK_INSTALL + ,LYK_CREATE + ,LYK_REMOVE + ,LYK_MODIFY + ,LYK_TAG_LINK + ,LYK_UPLOAD + ,LYK_INSTALL #else #define LYK_TAG_LINK LYK_UNKNOWN #endif /* DIRED_SUPPORT */ - ,LYK_CHG_CENTER + ,LYK_CHG_CENTER #ifdef KANJI_CODE_OVERRIDE - ,LYK_CHG_KCODE + ,LYK_CHG_KCODE #endif #ifdef SUPPORT_CHDIR - ,LYK_CHDIR + ,LYK_CHDIR #endif #ifdef USE_CURSES_PADS - ,LYK_SHIFT_LEFT - ,LYK_SHIFT_RIGHT - ,LYK_LINEWRAP_TOGGLE + ,LYK_SHIFT_LEFT + ,LYK_SHIFT_RIGHT + ,LYK_LINEWRAP_TOGGLE #else #define LYK_SHIFT_LEFT LYK_UNKNOWN #define LYK_SHIFT_RIGHT LYK_UNKNOWN @@ -248,31 +251,34 @@ typedef enum { #endif #ifdef CAN_CUT_AND_PASTE - ,LYK_PASTE_URL - ,LYK_TO_CLIPBOARD + ,LYK_PASTE_URL + ,LYK_TO_CLIPBOARD #else #define LYK_PASTE_URL LYK_UNKNOWN #define LYK_TO_CLIPBOARD LYK_UNKNOWN #endif #ifdef EXP_NESTED_TABLES - ,LYK_NESTED_TABLES + ,LYK_NESTED_TABLES #else #define LYK_NESTED_TABLES LYK_UNKNOWN #endif -} LYKeymapCode; + } LYKeymapCode; /* * Symbol table for internal commands. */ -typedef struct { - LYKeymapCode code; - const char *name; - const char *doc; -} Kcmd; + typedef struct { + LYKeymapCode code; + const char *name; + const char *doc; + } Kcmd; -extern Kcmd *LYKeycodeToKcmd(LYKeymapCode code); -extern Kcmd *LYStringToKcmd(const char *name); + extern Kcmd *LYKeycodeToKcmd(LYKeymapCode code); + extern Kcmd *LYStringToKcmd(const char *name); -#endif /* LYKEYMAP_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYKEYMAP_H */ diff --git a/src/LYList.h b/src/LYList.h index a3955bc6..3d99adbe 100644 --- a/src/LYList.h +++ b/src/LYList.h @@ -3,7 +3,13 @@ #include <LYStructs.h> -extern int showlist(DocInfo *newdoc, BOOLEAN titles); -extern void printlist(FILE *fp, BOOLEAN titles); +#ifdef __cplusplus +extern "C" { +#endif + extern int showlist(DocInfo *newdoc, BOOLEAN titles); + extern void printlist(FILE *fp, BOOLEAN titles); -#endif /* LYLIST_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYLIST_H */ diff --git a/src/LYLocal.c b/src/LYLocal.c index 12c11902..595cf101 100644 --- a/src/LYLocal.c +++ b/src/LYLocal.c @@ -692,7 +692,7 @@ static int modify_tagged(char *testpath) /* * Prepare to get directory path from one of the tagged files. */ - cp = HTList_lastObject(tagged); + cp = (char *) HTList_lastObject(tagged); testpath = NULL; /* Won't be needed any more in this function, set to NULL as a flag. */ } @@ -1566,7 +1566,7 @@ void showtags(HTList *t) for (i = 0; i < nlinks; i++) { s = t; - while ((name = HTList_nextObject(s)) != NULL) { + while ((name = (char *) HTList_nextObject(s)) != NULL) { if (!strcmp(links[i].lname, name)) { tagflag(ON, i); break; @@ -2048,7 +2048,7 @@ int dired_options(DocInfo *doc, char **newfile) LYAddHtmlSep(&cd); m = (n < NUM_TAGS_TO_WRITE) ? n : NUM_TAGS_TO_WRITE; for (i = 1; i <= m; i++) { - cp1 = HTRelative(HTList_objectAt(tagged, i - 1), + cp1 = HTRelative((char *) HTList_objectAt(tagged, i - 1), (*cd ? cd : "file://localhost")); HTUnEscape(cp1); LYEntify(&cp1, TRUE); /* _should_ do this everywhere... */ @@ -2412,7 +2412,7 @@ void clear_tags(void) { char *cp = NULL; - while ((cp = HTList_removeLastObject(tagged)) != NULL) { + while ((cp = (char *) HTList_removeLastObject(tagged)) != NULL) { FREE(cp); } if (HTList_isEmpty(tagged)) @@ -2424,7 +2424,7 @@ void clear_tags(void) */ void add_menu_item(char *str) { - struct dired_menu *new, *mp; + struct dired_menu *tmp, *mp; char *cp; /* @@ -2433,9 +2433,9 @@ void add_menu_item(char *str) if (menu_head == defmenu) menu_head = NULL; - new = typecalloc(struct dired_menu); + tmp = typecalloc(struct dired_menu); - if (new == NULL) + if (tmp == NULL) outofmem(__FILE__, "add_menu_item"); /* @@ -2444,14 +2444,14 @@ void add_menu_item(char *str) cp = strchr(str, ':'); *cp++ = '\0'; if (strcasecomp(str, "tag") == 0) { - new->cond = DE_TAG; + tmp->cond = DE_TAG; } else if (strcasecomp(str, "dir") == 0) { - new->cond = DE_DIR; + tmp->cond = DE_DIR; } else if (strcasecomp(str, "file") == 0) { - new->cond = DE_FILE; + tmp->cond = DE_FILE; #ifdef S_IFLNK } else if (strcasecomp(str, "link") == 0) { - new->cond = DE_SYMLINK; + tmp->cond = DE_SYMLINK; #endif /* S_IFLNK */ } @@ -2461,25 +2461,25 @@ void add_menu_item(char *str) str = cp; cp = strchr(str, ':'); *cp++ = '\0'; - StrAllocCopy(new->sfx, str); + StrAllocCopy(tmp->sfx, str); str = cp; cp = strchr(str, ':'); *cp++ = '\0'; - StrAllocCopy(new->link, str); + StrAllocCopy(tmp->link, str); str = cp; cp = strchr(str, ':'); *cp++ = '\0'; - StrAllocCopy(new->rest, str); + StrAllocCopy(tmp->rest, str); - StrAllocCopy(new->href, cp); + StrAllocCopy(tmp->href, cp); if (menu_head) { for (mp = menu_head; mp && mp->next != NULL; mp = mp->next) ; - mp->next = new; + mp->next = tmp; } else - menu_head = new; + menu_head = tmp; } void reset_dired_menu(void) diff --git a/src/LYLocal.h b/src/LYLocal.h index 9a1fc636..9a7fe240 100644 --- a/src/LYLocal.h +++ b/src/LYLocal.h @@ -1,31 +1,36 @@ #ifndef LYLOCAL_H #define LYLOCAL_H -#ifdef DIRED_SUPPORT - #include <HTUtils.h> +#include <LYStructs.h> +#ifdef __cplusplus +extern "C" { +#endif +#ifdef DIRED_SUPPORT /* Special return code for LYMainLoop.c */ #define PERMIT_FORM_RESULT (-99) - -extern int local_create(DocInfo *doc); -extern int local_modify(DocInfo *doc, char **newpath); -extern int local_remove(DocInfo *doc); + extern int local_create(DocInfo *doc); + extern int local_modify(DocInfo *doc, char **newpath); + extern int local_remove(DocInfo *doc); #ifdef OK_INSTALL -extern BOOLEAN local_install(char *destpath, char *srcpath, char **newpath); + extern BOOLEAN local_install(char *destpath, char *srcpath, char **newpath); #endif /* MainLoop needs to know about this one for atexit cleanup */ -extern void clear_tags(void); + extern void clear_tags(void); -extern int dired_options(DocInfo *doc, char **newfile); -extern int local_dired(DocInfo *doc); -extern void add_menu_item(char *str); -extern void reset_dired_menu(void); -extern void showtags(HTList *tag); -extern void tagflag(int flag, int cur); + extern int dired_options(DocInfo *doc, char **newfile); + extern int local_dired(DocInfo *doc); + extern void add_menu_item(char *str); + extern void reset_dired_menu(void); + extern void showtags(HTList *tag); + extern void tagflag(int flag, int cur); -#endif /* DIRED_SUPPORT */ +#endif /* DIRED_SUPPORT */ -#endif /* LYLOCAL_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYLOCAL_H */ diff --git a/src/LYMail.h b/src/LYMail.h index b9baf792..7e58bbf7 100644 --- a/src/LYMail.h +++ b/src/LYMail.h @@ -5,18 +5,19 @@ #include <LYStructs.h> #endif /* LYSTRUCTS_H */ +#ifdef __cplusplus +extern "C" { +#endif #ifdef SH_EX #define USE_BLAT_MAILER 1 #else #define USE_BLAT_MAILER 0 #endif - #ifdef VMS #define USE_VMS_MAILER 1 #else #define USE_VMS_MAILER 0 #endif - /* * Ifdef's in case we have a working popen/pclose, useful for piping to the * mail program. @@ -26,28 +27,30 @@ #else #define CAN_PIPE_TO_MAILER 1 #endif + extern BOOLEAN term_letter; -extern BOOLEAN term_letter; + extern BOOLEAN LYSystemMail(void); + extern BOOLEAN LYMailPMDF(void); + extern FILE *LYPipeToMailer(void); + extern int LYSendMailFile(char *the_address, + char *the_filename, + char *the_subject, + char *the_ccaddr, + char *message); + extern void mailform(const char *mailto_address, + const char *mailto_subject, + const char *mailto_content, + const char *mailto_type); + extern void mailmsg(int cur, + char *owner_address, + char *filename, + char *linkname); + extern void reply_by_mail(char *mail_address, + char *filename, + const char *title, + const char *refid); -extern BOOLEAN LYSystemMail(void); -extern BOOLEAN LYMailPMDF(void); -extern FILE *LYPipeToMailer(void); -extern int LYSendMailFile(char *the_address, - char *the_filename, - char *the_subject, - char *the_ccaddr, - char *message); -extern void mailform(const char *mailto_address, - const char *mailto_subject, - const char *mailto_content, - const char *mailto_type); -extern void mailmsg(int cur, - char *owner_address, - char *filename, - char *linkname); -extern void reply_by_mail(char *mail_address, - char *filename, - const char *title, - const char *refid); - -#endif /* LYMAIL_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYMAIL_H */ diff --git a/src/LYMain.c b/src/LYMain.c index ef16071e..05b9b570 100644 --- a/src/LYMain.c +++ b/src/LYMain.c @@ -23,6 +23,7 @@ #include <LYReadCFG.h> #include <LYrcFile.h> #include <LYKeymap.h> +#include <HTForms.h> #include <LYList.h> #include <LYJump.h> #include <LYMainLoop.h> @@ -601,6 +602,10 @@ static HTList *LYStdinArgs = NULL; #define EXTENDED_STARTFILE_RECALL 1 #endif +#if EXTENDED_STARTFILE_RECALL +static char *nonoption = 0; +#endif + #ifndef OPTNAME_ALLOW_DASHES /* if set, then will allow dashes and underscores to be used interchangeable in commandline option's names - VH */ @@ -740,8 +745,10 @@ static void free_lynx_globals(void) FREE(proxyauth_info[0]); FREE(proxyauth_info[1]); FREE(lynxjumpfile); + FREE(ftp_lasthost); FREE(startrealm); FREE(personal_mail_address); + FREE(anonftp_password); FREE(URLDomainPrefixes); FREE(URLDomainSuffixes); FREE(XLoadImageCommand); @@ -754,11 +761,13 @@ static void free_lynx_globals(void) #endif FREE(UCAssume_MIMEcharset); LYUIPages_free(); - for (i = 0; i < nlinks; i++) { - FREE(links[i].lname); - } + LYFreeHilites(0, nlinks); nlinks = 0; - HTList_delete(LYcommandList()); + LYFreeStringList(LYcommandList()); + HTInitProgramPaths(); +#if EXTENDED_STARTFILE_RECALL + FREE(nonoption); +#endif return; } @@ -769,18 +778,8 @@ static void free_lynx_globals(void) */ static void LYStdinArgs_free(void) { - char *argument; - HTList *cur = LYStdinArgs; - - if (cur == NULL) - return; - - while (NULL != (argument = (char *) HTList_nextObject(cur))) { - FREE(argument); - } - HTList_delete(LYStdinArgs); + LYFreeStringList(LYStdinArgs); LYStdinArgs = NULL; - return; } void reset_signals(void) @@ -980,7 +979,7 @@ int main(int argc, #ifndef DISABLE_FTP /* malloc a sizeof(char) so 1st strcmp() won't dump in HTLoadFile() */ - ftp_lasthost = calloc(1, sizeof(char)); + ftp_lasthost = typecalloc(char); #endif #ifdef EXP_CHARSET_CHOICE @@ -1386,7 +1385,9 @@ int main(int argc, */ if ((cp = LYGetEnv("LYNX_TRACE_FILE")) == 0) cp = TRACE_FILE; - LYAddPathToHome(LYTraceLogPath = malloc(LY_MAXPATH), LY_MAXPATH, cp); + LYTraceLogPath = typeMallocn(char, LY_MAXPATH); + + LYAddPathToHome(LYTraceLogPath, LY_MAXPATH, cp); LYOpenTraceLog(); @@ -1674,7 +1675,9 @@ int main(int argc, */ if (persistent_cookies) { if (LYCookieFile == NULL) { - LYAddPathToHome(LYCookieFile = malloc(LY_MAXPATH), LY_MAXPATH, COOKIE_FILE); + LYCookieFile = typeMallocn(char, LY_MAXPATH); + + LYAddPathToHome(LYCookieFile, LY_MAXPATH, COOKIE_FILE); } else { tildeExpand(&LYCookieFile, FALSE); } @@ -2141,9 +2144,6 @@ int main(int argc, cleanup(); #if defined(PDCURSES) && defined(PDC_BUILD) && PDC_BUILD >= 2401 if (!isendwin()) { - extern int saved_scrsize_x; - extern int saved_scrsize_y; - if ((saved_scrsize_x != 0) && (saved_scrsize_y != 0)) { resize_term(saved_scrsize_y, saved_scrsize_x); } @@ -4066,7 +4066,6 @@ static BOOL parse_arg(char **argv, char *arg_name; #if EXTENDED_STARTFILE_RECALL - static char *nonoption = 0; static BOOLEAN no_options_further = FALSE; /* set to TRUE after '--' argument */ #endif diff --git a/src/LYMainLoop.c b/src/LYMainLoop.c index 0dfb8d33..e43a35ed 100644 --- a/src/LYMainLoop.c +++ b/src/LYMainLoop.c @@ -531,9 +531,14 @@ static BOOL set_curdoc_link(int nextlink) static void goto_line(int nextline) { int n; + int old_link = newdoc.link; + newdoc.link = 0; for (n = 0; n < nlinks; ++n) { if (nextline == links[n].anchor_line_num + 1) { + CTRACE((tfp, "top_of_screen %d\n", HText_getTopOfScreen() + 1)); + CTRACE((tfp, "goto_line(%d) -> link %d -> %d\n", nextline, + old_link, n)); newdoc.link = n; break; } @@ -705,7 +710,7 @@ static BOOL do_check_recall(int ch, char **old_user_input, int URLTotal, int *URLNum, - int recall, + RecallType recall, BOOLEAN *FirstURLRecall) { char *cp; @@ -2829,7 +2834,7 @@ static void handle_LYK_FIRST_LINK(void) static BOOLEAN handle_LYK_GOTO(int *ch, char *user_input_buffer, char **old_user_input, - int *recall, + RecallType * recall, int *URLTotal, int *URLNum, BOOLEAN *FirstURLRecall, @@ -3355,7 +3360,7 @@ static void handle_LYK_INSTALL(void) static BOOLEAN handle_LYK_JUMP(int c, char *user_input_buffer, char **old_user_input GCC_UNUSED, - int *recall GCC_UNUSED, + RecallType * recall GCC_UNUSED, BOOLEAN *FirstURLRecall GCC_UNUSED, int *URLNum GCC_UNUSED, int *URLTotal GCC_UNUSED, @@ -3631,12 +3636,9 @@ static BOOLEAN handle_LYK_OPTIONS(int *cmd, char *CurrentNegoLanguage = NULL; char *CurrentNegoCharset = NULL; - StrAllocCopy(CurrentUserAgent, (LYUserAgent ? - LYUserAgent : "")); - StrAllocCopy(CurrentNegoLanguage, (language ? - language : "")); - StrAllocCopy(CurrentNegoCharset, (pref_charset ? - pref_charset : "")); + StrAllocCopy(CurrentUserAgent, NonNull(LYUserAgent)); + StrAllocCopy(CurrentNegoLanguage, NonNull(language)); + StrAllocCopy(CurrentNegoCharset, NonNull(pref_charset)); LYoptions(); /** do the old-style options stuff **/ @@ -3653,12 +3655,9 @@ static BOOLEAN handle_LYK_OPTIONS(int *cmd, verbose_img_flag != verbose_img || LYUseDefaultRawMode_flag != LYUseDefaultRawMode || LYSelectPopups_flag != LYSelectPopups || - ((strcmp(CurrentUserAgent, (LYUserAgent ? - LYUserAgent : "")) || - strcmp(CurrentNegoLanguage, (language ? - language : "")) || - strcmp(CurrentNegoCharset, (pref_charset ? - pref_charset : ""))) && + ((strcmp(CurrentUserAgent, NonNull(LYUserAgent)) || + strcmp(CurrentNegoLanguage, NonNull(language)) || + strcmp(CurrentNegoCharset, NonNull(pref_charset))) && (!strncmp(curdoc.address, "http", 4) || isLYNXCGI(curdoc.address)))) { @@ -3678,8 +3677,7 @@ static BOOLEAN handle_LYK_OPTIONS(int *cmd, HTInfoMsg(WILL_NOT_RELOAD_DOC); } else { copy_address(&newdoc, &curdoc); - if (((strcmp(CurrentUserAgent, (LYUserAgent ? - LYUserAgent : "")) || + if (((strcmp(CurrentUserAgent, NonNull(LYUserAgent)) || strcmp(CurrentNegoLanguage, NonNull(language)) || strcmp(CurrentNegoCharset, NonNull(pref_charset))) && (strncmp(curdoc.address, "http", 4) == 0 || @@ -4956,7 +4954,7 @@ void handle_LYK_CHDIR(void) /* some people may prefer automatic clearing of the previous user input, here, to do this, just uncomment next line - VH */ /* buf[0]='\0'; */ - if (LYgetstr(buf, VISIBLE, sizeof(buf) - 1, 0) < 0 || !*buf) { + if (LYgetstr(buf, VISIBLE, sizeof(buf) - 1, NORECALL) < 0 || !*buf) { HTInfoMsg(CANCELLED); return; } @@ -5140,7 +5138,10 @@ int mainloop(void) #define BUFF_MAX 1024 char sjis_buff[BUFF_MAX]; #endif - int c = 0, real_c = 0, old_c = 0, pending_form_c = -1; + int c = 0; + int real_c = 0; + int old_c = 0; + int pending_form_c = -1; int cmd = LYK_DO_NOTHING, real_cmd = LYK_DO_NOTHING; int getresult; int arrowup = FALSE, show_help = FALSE; @@ -5159,7 +5160,8 @@ int mainloop(void) char cfile[128]; FILE *cfp; char *cp; - int ch, recall; + int ch; + RecallType recall; int URLTotal; int URLNum; BOOLEAN FirstURLRecall = TRUE; @@ -5840,8 +5842,7 @@ int mainloop(void) if (newdoc.address && curdoc.address && isLYNXDOWNLOAD(newdoc.address)) { copy_address(&newdoc, &curdoc); - StrAllocCopy(newdoc.title, (curdoc.title ? - curdoc.title : "")); + StrAllocCopy(newdoc.title, NonNull(curdoc.title)); StrAllocCopy(newdoc.bookmark, curdoc.bookmark); newdoc.line = curdoc.line; newdoc.link = curdoc.link; @@ -6187,7 +6188,8 @@ int mainloop(void) * If more equals TRUE, then there is more info below this page. */ more = HText_canScrollDown(); - goto_line(Newline); + if (newdoc.link < 0) + goto_line(Newline); curdoc.line = Newline = HText_getTopOfScreen() + 1; if (curdoc.title == NULL) { @@ -6240,6 +6242,8 @@ int mainloop(void) newdoc.line = 1; newdoc.link = 0; curdoc.line = Newline; /* set */ + } else if (newdoc.link < 0) { + newdoc.link = 0; /* ...just in case getfile set this */ } /* @@ -7458,16 +7462,8 @@ static int are_phys_different(DocInfo *doc1, DocInfo *doc2) #ifdef LY_FIND_LEAKS static void HTGotoURLs_free(void) { - char *url; - HTList *cur = Goto_URLs; - - if (cur != 0) { - while (NULL != (url = (char *) HTList_nextObject(cur))) { - FREE(url); - } - HTList_delete(Goto_URLs); - Goto_URLs = NULL; - } + LYFreeStringList(Goto_URLs); + Goto_URLs = NULL; } #endif @@ -7779,7 +7775,5 @@ static void status_link(char *curlink_name, const char *LYDownLoadAddress(void) { - const char *s = newdoc.address ? newdoc.address : ""; - - return s; + return NonNull(newdoc.address); } diff --git a/src/LYMainLoop.h b/src/LYMainLoop.h index c1cef7c4..3c220ddf 100644 --- a/src/LYMainLoop.h +++ b/src/LYMainLoop.h @@ -5,23 +5,29 @@ #include <HTUtils.h> #endif +#ifdef __cplusplus +extern "C" { +#endif #ifdef DISP_PARTIAL -extern BOOL LYMainLoop_pageDisplay(int line_num); + extern BOOL LYMainLoop_pageDisplay(int line_num); #endif -extern BOOLEAN LYOpenTraceLog(void); -extern const char *LYDownLoadAddress(void); -extern int LYGetNewline(void); -extern int mainloop(void); -extern void HTAddGotoURL(char *url); -extern void LYCloseTracelog(void); -extern void LYSetNewline(int value); -extern void handle_LYK_TRACE_TOGGLE(void); -extern void handle_LYK_WHEREIS(int cmd, BOOLEAN *refresh_screen); -extern void repaint_main_statusline(int for_what); + extern BOOLEAN LYOpenTraceLog(void); + extern const char *LYDownLoadAddress(void); + extern int LYGetNewline(void); + extern int mainloop(void); + extern void HTAddGotoURL(char *url); + extern void LYCloseTracelog(void); + extern void LYSetNewline(int value); + extern void handle_LYK_TRACE_TOGGLE(void); + extern void handle_LYK_WHEREIS(int cmd, BOOLEAN *refresh_screen); + extern void repaint_main_statusline(int for_what); #ifdef SUPPORT_CHDIR -extern void handle_LYK_CHDIR(void); + extern void handle_LYK_CHDIR(void); #endif -#endif /* LYMAINLOOP_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYMAINLOOP_H */ diff --git a/src/LYMap.c b/src/LYMap.c index c401a27e..5b563b85 100644 --- a/src/LYMap.c +++ b/src/LYMap.c @@ -125,7 +125,7 @@ BOOL LYAddImageMap(char *address, char *title, HTParentAnchor *node_anchor) { - LYImageMap *new = NULL; + LYImageMap *tmp = NULL; LYImageMap *old = NULL; HTList *cur = NULL; HTList *theList = NULL; @@ -189,17 +189,17 @@ BOOL LYAddImageMap(char *address, } } - new = (old != NULL) ? + tmp = (old != NULL) ? old : typecalloc(LYImageMap); - if (new == NULL) { + if (tmp == NULL) { outofmem(__FILE__, "LYAddImageMap"); return FALSE; } - StrAllocCopy(new->address, address); + StrAllocCopy(tmp->address, address); if (non_empty(title)) - StrAllocCopy(new->title, title); - if (new != old) - HTList_addObject(theList, new); + StrAllocCopy(tmp->title, title); + if (tmp != old) + HTList_addObject(theList, tmp); return TRUE; } @@ -213,7 +213,7 @@ BOOL LYAddMapElement(char *map, HTParentAnchor *node_anchor, BOOL intern_flag GCC_UNUSED) { - LYMapElement *new = NULL; + LYMapElement *tmp = NULL; LYImageMap *theMap = NULL; HTList *theList = NULL; HTList *cur = NULL; @@ -259,30 +259,30 @@ BOOL LYAddMapElement(char *map, if (!theMap->elements) theMap->elements = HTList_new(); cur = theMap->elements; - while (NULL != (new = (LYMapElement *) HTList_nextObject(cur))) { - if (!strcmp(new->address, address)) { - FREE(new->address); - FREE(new->title); - HTList_removeObject(theMap->elements, new); - FREE(new); + while (NULL != (tmp = (LYMapElement *) HTList_nextObject(cur))) { + if (!strcmp(tmp->address, address)) { + FREE(tmp->address); + FREE(tmp->title); + HTList_removeObject(theMap->elements, tmp); + FREE(tmp); break; } } - new = typecalloc(LYMapElement); - if (new == NULL) { + tmp = typecalloc(LYMapElement); + if (tmp == NULL) { perror("Out of memory in LYAddMapElement"); return FALSE; } - StrAllocCopy(new->address, address); + StrAllocCopy(tmp->address, address); if (non_empty(title)) - StrAllocCopy(new->title, title); + StrAllocCopy(tmp->title, title); else - StrAllocCopy(new->title, address); + StrAllocCopy(tmp->title, address); #ifndef DONT_TRACK_INTERNAL_LINKS - new->intern_flag = intern_flag; + tmp->intern_flag = intern_flag; #endif - HTList_appendObject(theMap->elements, new); + HTList_appendObject(theMap->elements, tmp); return TRUE; } @@ -394,7 +394,7 @@ static int LYLoadIMGmap(const char *arg, HTFormat format_in = WWW_HTML; HTStream *target = NULL; char *buf = NULL; - LYMapElement *new = NULL; + LYMapElement *tmp = NULL; LYImageMap *theMap = NULL; char *MapTitle = NULL; char *MapAddress = NULL; @@ -571,18 +571,18 @@ static int LYLoadIMGmap(const char *arg, "ol" : "ul")); PUTS(buf); cur = theMap->elements; - while (NULL != (new = (LYMapElement *) HTList_nextObject(cur))) { - StrAllocCopy(MapAddress, new->address); + while (NULL != (tmp = (LYMapElement *) HTList_nextObject(cur))) { + StrAllocCopy(MapAddress, tmp->address); LYEntify(&MapAddress, FALSE); PUTS("<li><a href=\""); PUTS(MapAddress); PUTS("\""); #ifndef DONT_TRACK_INTERNAL_LINKS - if (new->intern_flag) + if (tmp->intern_flag) PUTS(" TYPE=\"internal link\""); #endif PUTS("\n>"); - LYformTitle(&MapTitle, new->title); + LYformTitle(&MapTitle, tmp->title); LYEntify(&MapTitle, TRUE); PUTS(MapTitle); PUTS("</a>\n"); diff --git a/src/LYMap.h b/src/LYMap.h index 1f5ddabb..bd16ad8b 100644 --- a/src/LYMap.h +++ b/src/LYMap.h @@ -8,14 +8,20 @@ #include <HTList.h> #include <HTAnchor.h> -extern BOOL LYMapsOnly; +#ifdef __cplusplus +extern "C" { +#endif + extern BOOL LYMapsOnly; -extern void ImageMapList_free(HTList *list); -extern BOOL LYAddImageMap(char *address, char *title, - HTParentAnchor *node_anchor); -extern BOOL LYAddMapElement(char *map, char *address, char *title, - HTParentAnchor *node_anchor, - BOOL intern_flag); -extern BOOL LYHaveImageMap(char *address); + extern void ImageMapList_free(HTList *list); + extern BOOL LYAddImageMap(char *address, char *title, + HTParentAnchor *node_anchor); + extern BOOL LYAddMapElement(char *map, char *address, char *title, + HTParentAnchor *node_anchor, + BOOL intern_flag); + extern BOOL LYHaveImageMap(char *address); -#endif /* LYMAP_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYMAP_H */ diff --git a/src/LYNews.h b/src/LYNews.h index 4f19ef85..780f8fa6 100644 --- a/src/LYNews.h +++ b/src/LYNews.h @@ -5,8 +5,14 @@ #include <LYStructs.h> #endif /* LYSTRUCTS_H */ -extern BOOLEAN term_message; +#ifdef __cplusplus +extern "C" { +#endif + extern BOOLEAN term_message; -extern char *LYNewsPost(char *newsgroups, BOOLEAN followup); + extern char *LYNewsPost(char *newsgroups, BOOLEAN followup); -#endif /* LYNEWSPOST_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYNEWSPOST_H */ diff --git a/src/LYOptions.c b/src/LYOptions.c index 3ab09f00..ff309b27 100644 --- a/src/LYOptions.c +++ b/src/LYOptions.c @@ -2522,7 +2522,7 @@ static PostPair *break_data(bstring *data) * Like I said, screw efficiency. Sides, realloc is fast on * Linux ;-> */ - q = realloc(q, sizeof(PostPair) * (count + 1)); + q = typeRealloc(PostPair, q, count + 1); if (q == NULL) outofmem(__FILE__, "break_data(realloc)"); q[count].tag = NULL; @@ -3237,7 +3237,7 @@ static char *NewSecureValue(void) static char oops[] = "?"; FREE(secure_value); - if ((secure_value = malloc(80)) != 0) { + if ((secure_value = typeMallocn(char, 80)) != 0) { #if defined(RAND_MAX) long key = lynx_rand(); diff --git a/src/LYOptions.h b/src/LYOptions.h index 04b8b18e..2e402613 100644 --- a/src/LYOptions.h +++ b/src/LYOptions.h @@ -4,28 +4,34 @@ #include <LYStructs.h> #include <LYStrings.h> -extern BOOLEAN term_options; /* for LYgetstr() */ +#ifdef __cplusplus +extern "C" { +#endif + extern BOOLEAN term_options; /* for LYgetstr() */ -extern BOOLEAN LYCheckUserAgent(void); -extern void edit_bookmarks(void); -extern int popup_choice(int cur_choice, - int line, - int column, - const char **choices, - int length, - int disabled, - BOOLEAN mouse); + extern BOOLEAN LYCheckUserAgent(void); + extern void edit_bookmarks(void); + extern int popup_choice(int cur_choice, + int line, + int column, + const char **choices, + int length, + int disabled, + BOOLEAN mouse); #define LYChoosePopup(cur, line, column, choices, length, disabled, mouse) \ popup_choice(cur, line, column, (const char **)choices, length, disabled, mouse) #ifndef NO_OPTION_FORMS -extern void LYMenuVisitedLinks(FILE *fp0, int disable_all); -extern int postoptions(DocInfo *newdoc); -#endif /* !NO_OPTION_FORMS */ + extern void LYMenuVisitedLinks(FILE *fp0, int disable_all); + extern int postoptions(DocInfo *newdoc); +#endif /* !NO_OPTION_FORMS */ #ifndef NO_OPTION_MENU -extern void LYoptions(void); -#endif /* !NO_OPTION_MENU */ + extern void LYoptions(void); +#endif /* !NO_OPTION_MENU */ -#endif /* LYOPTIONS_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYOPTIONS_H */ diff --git a/src/LYPrettySrc.c b/src/LYPrettySrc.c index d4a46304..988a1ab6 100644 --- a/src/LYPrettySrc.c +++ b/src/LYPrettySrc.c @@ -106,7 +106,7 @@ static void append_close_tag(char *tagname, } subj = typecalloc(HT_tagspec); - subj->element = idx; + subj->element = (HTMLElement) idx; subj->present = typecallocn(BOOL, nattr); subj->value = typecallocn(char *, nattr); @@ -335,7 +335,7 @@ void html_src_clean_data(void) int i; for (i = 0; i < HTL_num_lexemes; ++i) - html_src_clean_item(i); + html_src_clean_item((HTlexeme) i); } void html_src_on_lynxcfg_reload(void) @@ -361,12 +361,13 @@ void HTMLSRC_init_caches(BOOL dont_exit) if ((p = strchr(buf, ':')) != 0) *p = '\0'; - if (html_src_parse_tagspec(buf, i, FALSE, TRUE) && !dont_exit) { + if (html_src_parse_tagspec(buf, (HTlexeme) i, FALSE, TRUE) && !dont_exit) { fprintf(stderr, "internal error while caching 1st tagspec of %d lexeme", i); exit_immediately(EXIT_FAILURE); } - if (html_src_parse_tagspec(p ? p + 1 : NULL, i, FALSE, FALSE) && !dont_exit) { + if (html_src_parse_tagspec(p ? p + 1 : NULL, (HTlexeme) i, FALSE, + FALSE) && !dont_exit) { fprintf(stderr, "internal error while caching 2nd tagspec of %d lexeme", i); exit_immediately(EXIT_FAILURE); diff --git a/src/LYPrettySrc.h b/src/LYPrettySrc.h index f12fe26d..9886a49d 100644 --- a/src/LYPrettySrc.h +++ b/src/LYPrettySrc.h @@ -5,79 +5,85 @@ #include <HTMLDTD.h> -extern BOOL psrc_convert_string; +#ifdef __cplusplus +extern "C" { +#endif + extern BOOL psrc_convert_string; - /*whether HTML_put_string should convert string passed with - TRANSLATE_AND_UNESCAPE_TO_STD */ -extern BOOL psrc_view; -extern BOOL LYpsrc; + /*whether HTML_put_string should convert string passed with + TRANSLATE_AND_UNESCAPE_TO_STD */ + extern BOOL psrc_view; + extern BOOL LYpsrc; /* * This is used for tracking down whether the SGML engine was initialized * ==TRUE if yes. It's value is meaningful if psrc_view = TRUE */ -extern BOOL sgml_in_psrc_was_initialized; + extern BOOL sgml_in_psrc_was_initialized; -extern BOOL psrc_nested_call; /* this is used when distinguishing whether + extern BOOL psrc_nested_call; /* this is used when distinguishing whether - the current call is nested or not in HTML.c HTML_{start,end}_element. - It ==FALSE if psrc_view==FALSE || sgml_in_psrc_was_initialized==TRUE */ + the current call is nested or not in HTML.c HTML_{start,end}_element. + It ==FALSE if psrc_view==FALSE || sgml_in_psrc_was_initialized==TRUE */ -extern BOOL psrc_first_tag; /* this is also used in HTML.c to trigger the + extern BOOL psrc_first_tag; /* this is also used in HTML.c to trigger the 1st tag to preform special. */ -extern BOOL mark_htext_as_source; + extern BOOL mark_htext_as_source; /* here is a list of lexeme codes. */ -typedef enum { - HTL_comm = 0, - HTL_tag, - HTL_attrib, - HTL_attrval, - HTL_abracket, - HTL_entity, - HTL_href, - HTL_entire, - HTL_badseq, - HTL_badtag, - HTL_badattr, - HTL_sgmlspecial, - HTL_num_lexemes -} HTlexeme; - -typedef struct _HT_tagspec { - struct _HT_tagspec *next; /* 0 at the last */ + typedef enum { + HTL_comm = 0, + HTL_tag, + HTL_attrib, + HTL_attrval, + HTL_abracket, + HTL_entity, + HTL_href, + HTL_entire, + HTL_badseq, + HTL_badtag, + HTL_badattr, + HTL_sgmlspecial, + HTL_num_lexemes + } HTlexeme; + + typedef struct _HT_tagspec { + struct _HT_tagspec *next; /* 0 at the last */ #ifdef USE_COLOR_STYLE - int style; /* precalculated value of the style */ - char *class_name; + int style; /* precalculated value of the style */ + char *class_name; #endif - /* these will be passed to HTML_start_element */ - HTMLElement element; - BOOL *present; - char **value; + /* these will be passed to HTML_start_element */ + HTMLElement element; + BOOL *present; + char **value; - BOOL start; /* if true, then this starts element, otherwise - ends */ -} HT_tagspec; + BOOL start; /* if true, then this starts element, otherwise - ends */ + } HT_tagspec; -extern char *HTL_tagspecs[HTL_num_lexemes]; -extern HT_tagspec *lexeme_start[HTL_num_lexemes]; -extern HT_tagspec *lexeme_end[HTL_num_lexemes]; + extern char *HTL_tagspecs[HTL_num_lexemes]; + extern HT_tagspec *lexeme_start[HTL_num_lexemes]; + extern HT_tagspec *lexeme_end[HTL_num_lexemes]; -extern int html_src_parse_tagspec(char *ts, HTlexeme lexeme, - BOOL checkonly, BOOL isstart); -extern void HTMLSRC_init_caches(BOOL dont_exit); -extern void html_src_clean_item(HTlexeme l); -extern void html_src_clean_data(void); -extern void html_src_on_lynxcfg_reload(void); + extern int html_src_parse_tagspec(char *ts, HTlexeme lexeme, + BOOL checkonly, BOOL isstart); + extern void HTMLSRC_init_caches(BOOL dont_exit); + extern void html_src_clean_item(HTlexeme l); + extern void html_src_clean_data(void); + extern void html_src_on_lynxcfg_reload(void); /* these 2 vars tell what kind of transform should be appiled to tag names and attribute names. 0 - lowercase, 1 - as is, 2 uppercase. */ -extern int tagname_transform; -extern int attrname_transform; + extern int tagname_transform; + extern int attrname_transform; -extern BOOL psrcview_no_anchor_numbering; -#endif /* ifdef USE_PRETTYSRC */ + extern BOOL psrcview_no_anchor_numbering; -#endif /* LYPrettySrc_H */ +#ifdef __cplusplus +} +#endif +#endif /* ifdef USE_PRETTYSRC */ +#endif /* LYPrettySrc_H */ diff --git a/src/LYPrint.c b/src/LYPrint.c index a547d06d..06ea81c7 100644 --- a/src/LYPrint.c +++ b/src/LYPrint.c @@ -178,7 +178,7 @@ static int RecallFilename(char *filename, { int ch; char *cp; - int recall; + RecallType recall; /* * Set up the sug_filenames recall buffer. diff --git a/src/LYPrint.h b/src/LYPrint.h index 02f98e28..645b8749 100644 --- a/src/LYPrint.h +++ b/src/LYPrint.h @@ -5,10 +5,16 @@ #include <LYStructs.h> #endif /* LYSTRUCTS_H */ -extern int printfile(DocInfo *newdoc); -extern int print_options(char **newfile, - const char *printed_url, - int lines_in_file); -extern char *GetFileName(void); +#ifdef __cplusplus +extern "C" { +#endif + extern int printfile(DocInfo *newdoc); + extern int print_options(char **newfile, + const char *printed_url, + int lines_in_file); + extern char *GetFileName(void); -#endif /* LYPRINT_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYPRINT_H */ diff --git a/src/LYReadCFG.c b/src/LYReadCFG.c index 2f939a42..a6a8f384 100644 --- a/src/LYReadCFG.c +++ b/src/LYReadCFG.c @@ -426,10 +426,10 @@ static Config_Enum tbl_abort_source_cache[] = { #define PARSE_FUN(n,v) {n, CONF_FUN, UNION_FUN(v), 0} #define PARSE_REQ(n,v) {n, CONF_INCLUDE, UNION_FUN(v), 0} #define PARSE_DEF(n,v) {n, CONF_ADD_TRUSTED, UNION_DEF(v), 0} -#define PARSE_NIL {NULL,0, UNION_DEF(0), 0} +#define PARSE_NIL {NULL, CONF_NIL, UNION_DEF(0), 0} typedef enum { - CONF_UNSPECIFIED = 0 + CONF_NIL = 0 ,CONF_BOOL /* BOOLEAN type */ ,CONF_FUN ,CONF_TIME @@ -1150,7 +1150,7 @@ static int psrcspec_fun(char *s) s, e + 1)); return 0; } - parse_html_src_spec(found, e + 1, s); + parse_html_src_spec((HTlexeme) found, e + 1, s); return 0; } @@ -1747,7 +1747,7 @@ void LYSetConfigValue(char *name, case CONF_PRG: if (StrAllocCopy(temp, value)) - HTSetProgramPath(q->def_value, temp); + HTSetProgramPath((ProgramPaths) (q->def_value), temp); break; default: @@ -1878,7 +1878,7 @@ static void do_read_cfg(const char *cfg_filename, q = ParseUnionOf(tbl); switch ((fp0 != 0 && tbl->type != CONF_INCLUDE) - ? CONF_UNSPECIFIED + ? CONF_NIL : tbl->type) { case CONF_BOOL: case CONF_FUN: diff --git a/src/LYReadCFG.h b/src/LYReadCFG.h index 7853904a..bbdcf5c3 100644 --- a/src/LYReadCFG.h +++ b/src/LYReadCFG.h @@ -5,12 +5,13 @@ #include <LYStructs.h> #endif /* LYSTRUCTS_H */ +#ifdef __cplusplus +extern "C" { +#endif #if defined(USE_COLOR_STYLE) || defined(USE_COLOR_TABLE) - #define DEFAULT_COLOR -1 #define NO_COLOR -2 #define ERR_COLOR -3 - /* Note: the sense of colors that Lynx uses for defaults is the reverse of * the standard for color-curses. */ @@ -35,35 +36,38 @@ # define DEFAULT_FG COLOR_BLACK # define DEFAULT_BG COLOR_WHITE # endif -#endif /* USE_DEFAULT_COLORS */ - -extern int default_fg; -extern int default_bg; -extern BOOL default_color_reset; +#endif /* USE_DEFAULT_COLORS */ + extern int default_fg; + extern int default_bg; + extern BOOL default_color_reset; #if defined(HAVE_USE_DEFAULT_COLORS) && defined(USE_DEFAULT_COLORS) -extern int lynx_default_colors(void); + extern int lynx_default_colors(void); #endif -extern int check_color(char *color, int the_default); -extern const char *lookup_color(int code); + extern int check_color(char *color, int the_default); + extern const char *lookup_color(int code); #endif -extern void read_cfg(const char *cfg_filename, - const char *parent_filename, - int nesting_level, - FILE *fp0); -extern void free_lynx_cfg(void); -extern BOOLEAN have_read_cfg; + extern void read_cfg(const char *cfg_filename, + const char *parent_filename, + int nesting_level, + FILE *fp0); + extern void free_lynx_cfg(void); + extern BOOLEAN have_read_cfg; -extern FILE *LYOpenCFG(const char *cfg_filename, const char *parent_filename, const char *dft_filename); -extern int lynx_cfg_infopage(DocInfo *newdoc); -extern int lynx_compile_opts(DocInfo *newdoc); -extern int match_item_by_name(lynx_list_item_type *ptr, char *name, BOOLEAN only_overriders); -extern lynx_list_item_type *find_item_by_number(lynx_list_item_type * - list_ptr, - char *number); -extern void reload_read_cfg(void); /* implemented in LYMain.c */ -extern void LYSetConfigValue(char *name, char *value); + extern FILE *LYOpenCFG(const char *cfg_filename, const char + *parent_filename, const char *dft_filename); + extern int lynx_cfg_infopage(DocInfo *newdoc); + extern int lynx_compile_opts(DocInfo *newdoc); + extern int match_item_by_name(lynx_list_item_type *ptr, char *name, BOOLEAN only_overriders); + extern lynx_list_item_type *find_item_by_number(lynx_list_item_type * + list_ptr, + char *number); + extern void reload_read_cfg(void); /* implemented in LYMain.c */ + extern void LYSetConfigValue(char *name, char *value); -#endif /* LYREADCFG_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYREADCFG_H */ diff --git a/src/LYSearch.c b/src/LYSearch.c index 8bf4ad27..01fdc8ac 100644 --- a/src/LYSearch.c +++ b/src/LYSearch.c @@ -158,7 +158,8 @@ BOOL textsearch(DocInfo *cur_doc, char *prev_target, static char prev_target_buffer[512]; /* Search string buffer */ static BOOL first = TRUE; char *cp; - int ch = 0, recall; + int ch = 0; + RecallType recall; int QueryTotal; int QueryNum; BOOLEAN FirstRecall = TRUE; diff --git a/src/LYSearch.h b/src/LYSearch.h index 55118157..f9763301 100644 --- a/src/LYSearch.h +++ b/src/LYSearch.h @@ -1,4 +1,3 @@ - #ifndef LYSEARCH_H #define LYSEARCH_H @@ -6,16 +5,22 @@ #include <LYStructs.h> #endif /* LYSTRUCT_H */ -extern BOOL textsearch(DocInfo *cur_doc, - char *prev_target, - int target_size, - int direction); +#ifdef __cplusplus +extern "C" { +#endif + extern BOOL textsearch(DocInfo *cur_doc, + char *prev_target, + int target_size, + int direction); #define IN_FILE 1 #define IN_LINKS 2 #ifndef NOT_FOUND #define NOT_FOUND 0 -#endif /* NOT_FOUND */ +#endif /* NOT_FOUND */ -#endif /* LYSEARCH_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYSEARCH_H */ diff --git a/src/LYShowInfo.c b/src/LYShowInfo.c index b545a756..5133be88 100644 --- a/src/LYShowInfo.c +++ b/src/LYShowInfo.c @@ -440,9 +440,7 @@ int LYShowInfo(DocInfo *doc, } } else { ADD_SS("URL:", - (links[doc->link].lname - ? links[doc->link].lname - : "")); + NonNull(links[doc->link].lname)); } END_DL(); diff --git a/src/LYShowInfo.h b/src/LYShowInfo.h index 826821e0..443bff37 100644 --- a/src/LYShowInfo.h +++ b/src/LYShowInfo.h @@ -5,11 +5,17 @@ #include <LYStructs.h> #endif /* LYSTRUCTS_H */ -extern BOOL LYVersionIsRelease(void); -extern const char *LYVersionStatus(void); -extern const char *LYVersionDate(void); -extern int LYShowInfo(DocInfo *doc, - DocInfo *newdoc, - char *owner_address); +#ifdef __cplusplus +extern "C" { +#endif + extern BOOL LYVersionIsRelease(void); + extern const char *LYVersionStatus(void); + extern const char *LYVersionDate(void); + extern int LYShowInfo(DocInfo *doc, + DocInfo *newdoc, + char *owner_address); -#endif /* LYSHOWINFO_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYSHOWINFO_H */ diff --git a/src/LYSignal.h b/src/LYSignal.h index 95619457..ccb81021 100644 --- a/src/LYSignal.h +++ b/src/LYSignal.h @@ -1,26 +1,31 @@ - #ifndef LYSIGNAL_H #define LYSIGNAL_H #include <signal.h> +#ifdef __cplusplus +extern "C" { +#endif #ifdef VMS -extern void VMSsignal(int sig, void (*func) ()); + extern void VMSsignal(int sig, void (*func) ()); #ifdef signal #undef signal -#endif /* signal */ +#endif /* signal */ #define signal(a,b) VMSsignal(a,b) /* use LYCurses.c routines for interrupts */ -#endif /* VMS */ +#endif /* VMS */ #ifdef HAVE_SIGACTION -typedef void LYSigHandlerFunc_t(int); + typedef void LYSigHandlerFunc_t(int); /* implementation in LYUtils.c */ -extern void LYExtSignal(int sig, LYSigHandlerFunc_t * handler); + extern void LYExtSignal(int sig, LYSigHandlerFunc_t * handler); #else #define LYExtSignal(sig,h) signal(sig, h) #endif -#endif /* LYSIGNAL_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYSIGNAL_H */ diff --git a/src/LYStrings.c b/src/LYStrings.c index 14897d65..ec12ea65 100644 --- a/src/LYStrings.c +++ b/src/LYStrings.c @@ -277,7 +277,7 @@ static HTList *whichRecall(RecallType recall) */ static void LYRemoveFromCloset(HTList *list) { - char *data = HTList_removeFirstObject(list); + void *data = HTList_removeFirstObject(list); if (data != 0) FREE(data); @@ -305,7 +305,7 @@ static char *LYFindInCloset(RecallType recall, char *base) unsigned len = strlen(base); while (!HTList_isEmpty(list)) { - data = HTList_nextObject(list); + data = (char *) HTList_nextObject(list); if (!strncmp(base, data, len)) return (data); } @@ -3724,7 +3724,7 @@ static char **sortedList(HTList *list, BOOL ignorecase) outofmem(__FILE__, "sortedList"); while (!HTList_isEmpty(list)) - result[j++] = HTList_nextObject(list); + result[j++] = (char *) HTList_nextObject(list); if (count > 1) { qsort((char *) result, count, sizeof(*result), @@ -3879,7 +3879,8 @@ int LYhandlePopupList(int cur_choice, static char prev_target_buffer[MAX_LINE]; /* Next search buffer */ static BOOL first = TRUE; char *cp; - int ch = 0, recall; + int ch = 0; + RecallType recall; int QueryTotal; int QueryNum; BOOLEAN FirstRecall = TRUE; diff --git a/src/LYStrings.h b/src/LYStrings.h index 290b5e25..5fca7a06 100644 --- a/src/LYStrings.h +++ b/src/LYStrings.h @@ -3,69 +3,72 @@ #include <LYCurses.h> -typedef enum { - NORECALL = 0 - ,RECALL_URL - ,RECALL_CMD - ,RECALL_MAIL -} RecallType; +#ifdef __cplusplus +extern "C" { +#endif + typedef enum { + NORECALL = 0 + ,RECALL_URL + ,RECALL_CMD + ,RECALL_MAIL + } RecallType; #define is8bits(ch) (UCH(ch) >= 128) /* isascii(ch) is not POSIX */ /* UPPER8(ch1,ch2) is an extension of (TOUPPER(ch1) - TOUPPER(ch2)) */ -extern int UPPER8(int ch1, - int ch2); - -extern int get_mouse_link(void); -extern int peek_mouse_link(void); -extern int peek_mouse_levent(void); -extern int fancy_mouse(WINDOW * win, int row, int *position); - -extern char *LYstrncpy(char *dst, - const char *src, - int n); -extern void ena_csi(BOOLEAN flag); -extern int get_popup_number(const char *msg, - int *c, - int *rel); -extern int LYarrayLength(const char **list); -extern int LYarrayWidth(const char **list); -extern int LYgetch(void); -extern int LYgetch_choice(void); -extern int LYgetch_input(void); -extern int LYgetch_single(void); -extern int LYgetstr(char *inputline, - int hidden, - size_t bufsize, - RecallType recall); -extern char *LYstrsep(char **stringp, - const char *delim); -extern char *LYstrstr(char *chptr, - const char *tarptr); -extern char *LYmbcsstrncpy(char *dst, + extern int UPPER8(int ch1, + int ch2); + + extern int get_mouse_link(void); + extern int peek_mouse_link(void); + extern int peek_mouse_levent(void); + extern int fancy_mouse(WINDOW * win, int row, int *position); + + extern char *LYstrncpy(char *dst, const char *src, - int n_bytes, - int n_glyphs, - BOOL utf_flag); -extern const char *LYmbcs_skip_glyphs(const char *data, - int n_glyphs, - BOOL utf_flag); -extern int LYmbcsstrlen(const char *str, - BOOL utf_flag, - BOOL count_gcells); - -extern const char *LYno_attr_mbcs_strstr(const char *chptr, - const char *tarptr, - BOOL utf_flag, - BOOL count_gcells, - int *nstartp, - int *nendp); -extern const char *LYno_attr_mbcs_case_strstr(const char *chptr, - const char *tarptr, - BOOL utf_flag, - BOOL count_gcells, - int *nstartp, - int *nendp); + int n); + extern void ena_csi(BOOLEAN flag); + extern int get_popup_number(const char *msg, + int *c, + int *rel); + extern int LYarrayLength(const char **list); + extern int LYarrayWidth(const char **list); + extern int LYgetch(void); + extern int LYgetch_choice(void); + extern int LYgetch_input(void); + extern int LYgetch_single(void); + extern int LYgetstr(char *inputline, + int hidden, + size_t bufsize, + RecallType recall); + extern char *LYstrsep(char **stringp, + const char *delim); + extern char *LYstrstr(char *chptr, + const char *tarptr); + extern char *LYmbcsstrncpy(char *dst, + const char *src, + int n_bytes, + int n_glyphs, + BOOL utf_flag); + extern const char *LYmbcs_skip_glyphs(const char *data, + int n_glyphs, + BOOL utf_flag); + extern int LYmbcsstrlen(const char *str, + BOOL utf_flag, + BOOL count_gcells); + + extern const char *LYno_attr_mbcs_strstr(const char *chptr, + const char *tarptr, + BOOL utf_flag, + BOOL count_gcells, + int *nstartp, + int *nendp); + extern const char *LYno_attr_mbcs_case_strstr(const char *chptr, + const char *tarptr, + BOOL utf_flag, + BOOL count_gcells, + int *nstartp, + int *nendp); #define non_empty(s) !isEmpty(s) @@ -74,35 +77,35 @@ extern const char *LYno_attr_mbcs_case_strstr(const char *chptr, ? LYno_attr_mbcs_strstr(chptr, tarptr, utf_flag, count_gcells, nstartp, nendp) \ : LYno_attr_mbcs_case_strstr(chptr, tarptr, utf_flag, count_gcells, nstartp, nendp)) -extern const char *LYno_attr_char_strstr(const char *chptr, - const char *tarptr); -extern const char *LYno_attr_char_case_strstr(const char *chptr, - const char *tarptr); + extern const char *LYno_attr_char_strstr(const char *chptr, + const char *tarptr); + extern const char *LYno_attr_char_case_strstr(const char *chptr, + const char *tarptr); #define LYno_attr_strstr(chptr, tarptr) \ (case_sensitive \ ? LYno_attr_char_strstr(chptr, tarptr) \ : LYno_attr_char_case_strstr(chptr, tarptr)) -extern char *SNACopy(char **dest, - const char *src, - int n); -extern char *SNACat(char **dest, - const char *src, - int n); + extern char *SNACopy(char **dest, + const char *src, + int n); + extern char *SNACat(char **dest, + const char *src, + int n); #define StrnAllocCopy(dest, src, n) SNACopy (&(dest), src, n) #define StrnAllocCat(dest, src, n) SNACat (&(dest), src, n) -extern char *LYSafeGets(char **src, FILE *fp); + extern char *LYSafeGets(char **src, FILE *fp); #ifdef EXP_CMD_LOGGING -extern BOOL LYHaveCmdScript(void); -extern int LYReadCmdKey(int mode); -extern void LYCloseCmdLogfile(void); -extern void LYOpenCmdLogfile(int argc, char **argv); -extern void LYOpenCmdScript(void); -extern void LYWriteCmdKey(int ch); + extern BOOL LYHaveCmdScript(void); + extern int LYReadCmdKey(int mode); + extern void LYCloseCmdLogfile(void); + extern void LYOpenCmdLogfile(int argc, char **argv); + extern void LYOpenCmdScript(void); + extern void LYWriteCmdKey(int ch); #else #define LYHaveCmdScript() FALSE @@ -182,91 +185,91 @@ extern void LYWriteCmdKey(int ch); /* EditFieldData preserves state between calls to LYEdit1 */ -typedef struct _EditFieldData { - - int sx; /* Origin of editfield */ - int sy; - int dspwdth; /* Screen real estate for editting */ - - int strlen; /* Current size of string. */ - int maxlen; /* Max size of string, excluding zero at end */ - char pad; /* Right padding typically ' ' or '_' */ - BOOL hidden; /* Masked password entry flag */ - - BOOL dirty; /* accumulate refresh requests */ - BOOL panon; /* Need horizontal scroll indicator */ - int xpan; /* Horizontal scroll offset */ - int pos; /* Insertion point in string */ - int margin; /* Number of columns look-ahead/look-back */ - int current_modifiers; /* Modifiers for next input lynxkeycode */ + typedef struct _EditFieldData { + + int sx; /* Origin of editfield */ + int sy; + int dspwdth; /* Screen real estate for editting */ + + int strlen; /* Current size of string. */ + int maxlen; /* Max size of string, excluding zero at end */ + char pad; /* Right padding typically ' ' or '_' */ + BOOL hidden; /* Masked password entry flag */ + + BOOL dirty; /* accumulate refresh requests */ + BOOL panon; /* Need horizontal scroll indicator */ + int xpan; /* Horizontal scroll offset */ + int pos; /* Insertion point in string */ + int margin; /* Number of columns look-ahead/look-back */ + int current_modifiers; /* Modifiers for next input lynxkeycode */ #ifdef ENHANCED_LINEEDIT - int mark; /* position of emacs-like mark, or -1-pos to denote + int mark; /* position of emacs-like mark, or -1-pos to denote unactive mark. */ #endif - char buffer[1024]; /* String buffer */ + char buffer[1024]; /* String buffer */ -} EditFieldData; + } EditFieldData; /* line-edit action encoding */ -typedef enum { - LYE_NOP = 0 /* Do Nothing */ - ,LYE_CHAR /* Insert printable char */ - ,LYE_ENTER /* Input complete, return char/lynxkeycode */ - ,LYE_TAB /* Input complete, return TAB */ - ,LYE_STOP /* Input complete, deactivate */ - ,LYE_ABORT /* Input cancelled */ + typedef enum { + LYE_NOP = 0 /* Do Nothing */ + ,LYE_CHAR /* Insert printable char */ + ,LYE_ENTER /* Input complete, return char/lynxkeycode */ + ,LYE_TAB /* Input complete, return TAB */ + ,LYE_STOP /* Input complete, deactivate */ + ,LYE_ABORT /* Input cancelled */ - ,LYE_FORM_PASS /* In form fields: input complete, + ,LYE_FORM_PASS /* In form fields: input complete, return char / lynxkeycode; Elsewhere: Do Nothing */ - ,LYE_DELN /* Delete next/curr char */ - ,LYE_DELC /* Obsolete (DELC case was equiv to DELN) */ - ,LYE_DELP /* Delete prev char */ - ,LYE_DELNW /* Delete next word */ - ,LYE_DELPW /* Delete prev word */ + ,LYE_DELN /* Delete next/curr char */ + ,LYE_DELC /* Obsolete (DELC case was equiv to DELN) */ + ,LYE_DELP /* Delete prev char */ + ,LYE_DELNW /* Delete next word */ + ,LYE_DELPW /* Delete prev word */ - ,LYE_ERASE /* Erase the line */ + ,LYE_ERASE /* Erase the line */ - ,LYE_BOL /* Go to begin of line */ - ,LYE_EOL /* Go to end of line */ - ,LYE_FORW /* Cursor forwards */ - ,LYE_FORW_RL /* Cursor forwards or right link */ - ,LYE_BACK /* Cursor backwards */ - ,LYE_BACK_LL /* Cursor backwards or left link */ - ,LYE_FORWW /* Word forward */ - ,LYE_BACKW /* Word back */ + ,LYE_BOL /* Go to begin of line */ + ,LYE_EOL /* Go to end of line */ + ,LYE_FORW /* Cursor forwards */ + ,LYE_FORW_RL /* Cursor forwards or right link */ + ,LYE_BACK /* Cursor backwards */ + ,LYE_BACK_LL /* Cursor backwards or left link */ + ,LYE_FORWW /* Word forward */ + ,LYE_BACKW /* Word back */ - ,LYE_LOWER /* Lower case the line */ - ,LYE_UPPER /* Upper case the line */ + ,LYE_LOWER /* Lower case the line */ + ,LYE_UPPER /* Upper case the line */ - ,LYE_LKCMD /* Invoke command prompt */ + ,LYE_LKCMD /* Invoke command prompt */ - ,LYE_AIX /* Hex 97 */ + ,LYE_AIX /* Hex 97 */ - ,LYE_DELBL /* Delete back to BOL */ - ,LYE_DELEL /* Delete thru EOL */ + ,LYE_DELBL /* Delete back to BOL */ + ,LYE_DELEL /* Delete thru EOL */ - ,LYE_SWMAP /* Switch input keymap */ + ,LYE_SWMAP /* Switch input keymap */ - ,LYE_TPOS /* Transpose characters */ + ,LYE_TPOS /* Transpose characters */ - ,LYE_SETM1 /* Set modifier 1 flag */ - ,LYE_SETM2 /* Set modifier 2 flag */ - ,LYE_UNMOD /* Fall back to no-modifier command */ + ,LYE_SETM1 /* Set modifier 1 flag */ + ,LYE_SETM2 /* Set modifier 2 flag */ + ,LYE_UNMOD /* Fall back to no-modifier command */ - ,LYE_C1CHAR /* Insert C1 char if printable */ + ,LYE_C1CHAR /* Insert C1 char if printable */ - ,LYE_SETMARK /* emacs-like set-mark-command */ - ,LYE_XPMARK /* emacs-like exchange-point-and-mark */ - ,LYE_KILLREG /* emacs-like kill-region */ - ,LYE_YANK /* emacs-like yank */ + ,LYE_SETMARK /* emacs-like set-mark-command */ + ,LYE_XPMARK /* emacs-like exchange-point-and-mark */ + ,LYE_KILLREG /* emacs-like kill-region */ + ,LYE_YANK /* emacs-like yank */ #ifdef CAN_CUT_AND_PASTE - ,LYE_PASTE /* ClipBoard to Lynx */ + ,LYE_PASTE /* ClipBoard to Lynx */ #endif -} LYEditCodes; + } LYEditCodes; /* All preceding values must be within 0x00..0x7f - kw */ @@ -277,70 +280,73 @@ typedef enum { lower bits. Doesn't fit in a char! */ #if defined(USE_KEYMAPS) -extern int lynx_initialize_keymaps(void); -extern int map_string_to_keysym(const char *src, int *lec); + extern int lynx_initialize_keymaps(void); + extern int map_string_to_keysym(const char *src, int *lec); #endif -extern char *LYElideString(char *str, - int cut_pos); -extern void LYEscapeStartfile(char **buffer); -extern void LYLowerCase(char *buffer); -extern void LYUpperCase(char *buffer); -extern BOOLEAN LYRemoveNewlines(char *buffer); -extern char *LYReduceBlanks(char *buffer); -extern char *LYRemoveBlanks(char *buffer); -extern char *LYSkipBlanks(char *buffer); -extern char *LYSkipNonBlanks(char *buffer); -extern const char *LYSkipCBlanks(const char *buffer); -extern const char *LYSkipCNonBlanks(const char *buffer); -extern void LYTrimLeading(char *buffer); -extern char *LYTrimNewline(char *buffer); -extern void LYTrimTrailing(char *buffer); -extern void LYTrimAllStartfile(char *buffer); -extern BOOLEAN LYTrimStartfile(char *buffer); -extern void LYSetupEdit(EditFieldData *edit, char *old, - int maxstr, - int maxdsp); -extern void LYRefreshEdit(EditFieldData *edit); -extern int EditBinding(int ch); /* in LYEditmap.c */ -extern BOOL LYRemapEditBinding(int xlkc, - int lec, - int select_edi); /* in LYEditmap.c */ -extern int LYKeyForEditAction(int lec); /* in LYEditmap.c */ -extern int LYEditKeyForAction(int lac, int *pmodkey); /* LYEditmap.c */ -extern int LYEdit1(EditFieldData *edit, int ch, - int action, - BOOL maxMessage); -extern void LYCloseCloset(RecallType recall); -extern int LYhandlePopupList(int cur_choice, - int ly, - int lx, - const char **choices, - int width, - int i_length, - int disabled, - BOOLEAN for_mouse, - BOOLEAN numbered); - -typedef unsigned char LYEditCode; - -extern int current_lineedit; -extern const char *LYLineeditNames[]; -extern LYEditCode *LYLineEditors[]; -extern const char *LYLineeditHelpURLs[]; - -extern const char *LYLineeditHelpURL(void); - -extern int escape_bound; + extern char *LYElideString(char *str, + int cut_pos); + extern void LYEscapeStartfile(char **buffer); + extern void LYLowerCase(char *buffer); + extern void LYUpperCase(char *buffer); + extern BOOLEAN LYRemoveNewlines(char *buffer); + extern char *LYReduceBlanks(char *buffer); + extern char *LYRemoveBlanks(char *buffer); + extern char *LYSkipBlanks(char *buffer); + extern char *LYSkipNonBlanks(char *buffer); + extern const char *LYSkipCBlanks(const char *buffer); + extern const char *LYSkipCNonBlanks(const char *buffer); + extern void LYTrimLeading(char *buffer); + extern char *LYTrimNewline(char *buffer); + extern void LYTrimTrailing(char *buffer); + extern void LYTrimAllStartfile(char *buffer); + extern BOOLEAN LYTrimStartfile(char *buffer); + extern void LYSetupEdit(EditFieldData *edit, char *old, + int maxstr, + int maxdsp); + extern void LYRefreshEdit(EditFieldData *edit); + extern int EditBinding(int ch); /* in LYEditmap.c */ + extern BOOL LYRemapEditBinding(int xlkc, + int lec, + int select_edi); /* in LYEditmap.c */ + extern int LYKeyForEditAction(int lec); /* in LYEditmap.c */ + extern int LYEditKeyForAction(int lac, int *pmodkey); /* LYEditmap.c */ + extern int LYEdit1(EditFieldData *edit, int ch, + int action, + BOOL maxMessage); + extern void LYCloseCloset(RecallType recall); + extern int LYhandlePopupList(int cur_choice, + int ly, + int lx, + const char **choices, + int width, + int i_length, + int disabled, + BOOLEAN for_mouse, + BOOLEAN numbered); + + typedef unsigned char LYEditCode; + + extern int current_lineedit; + extern const char *LYLineeditNames[]; + extern LYEditCode *LYLineEditors[]; + extern const char *LYLineeditHelpURLs[]; + + extern const char *LYLineeditHelpURL(void); + + extern int escape_bound; #define LYLineEdit(e,c,m) LYEdit1(e, c, EditBinding(c) & ~LYE_DF, m) /* Dummy initializer for LYEditmap.c */ -extern int LYEditmapDeclared(void); + extern int LYEditmapDeclared(void); -extern int LYEditInsert(EditFieldData *edit, - unsigned const char *s, - int len, int map_active, - BOOL maxMessage); + extern int LYEditInsert(EditFieldData *edit, + unsigned const char *s, + int len, int map_active, + BOOL maxMessage); -#endif /* LYSTRINGS_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYSTRINGS_H */ diff --git a/src/LYStructs.h b/src/LYStructs.h index 361fc8af..4d604736 100644 --- a/src/LYStructs.h +++ b/src/LYStructs.h @@ -5,100 +5,99 @@ #include <HTAnchor.h> #endif /* HTANCHOR_H */ -typedef struct { - char *hl_text; - short hl_x; -} HiliteInfo; - -typedef struct { - HiliteInfo *hl_info; - HiliteInfo hl_base; - short hl_len; /* number of strings in this struct */ -} HiliteList; - -typedef struct { - char *lname; - char *target; - char *l_hightext; - char *l_hightext2; - int l_hightext2_offset; - BOOL inUnderline; /* TRUE when this link is in underlined context. */ - int lx; - int ly; - int type; /* Type of link, Forms, WWW, etc. */ - int anchor_number; /* The anchor number within the HText structure. */ - int anchor_line_num; /* The anchor line number in the HText structure. */ - HiliteList list; - struct _FormInfo *l_form; /* Pointer to form info. */ -} LinkInfo; -extern LinkInfo links[MAXLINKS]; -extern int nlinks; - -typedef struct { - /* FIXME: see DocAddress */ - char *title; - char *address; - bstring *post_data; - char *post_content_type; - char *bookmark; - BOOL isHEAD; - BOOL safe; - - int link; - int line; - BOOL internal_link; /* whether doc was reached via an internal +#ifdef __cplusplus +extern "C" { +#endif + typedef struct { + char *hl_text; + short hl_x; + } HiliteInfo; + + typedef struct { + HiliteInfo *hl_info; + HiliteInfo hl_base; + short hl_len; /* number of strings in this struct */ + } HiliteList; + + typedef struct { + char *lname; + char *target; + char *l_hightext; + char *l_hightext2; + int l_hightext2_offset; + BOOL inUnderline; /* TRUE when this link is in underlined context. */ + int lx; + int ly; + int type; /* Type of link, Forms, WWW, etc. */ + int anchor_number; /* The anchor number within the HText structure. */ + int anchor_line_num; /* The anchor line number in the HText structure. */ + HiliteList list; + struct _FormInfo *l_form; /* Pointer to form info. */ + } LinkInfo; + extern LinkInfo links[MAXLINKS]; + extern int nlinks; + + typedef struct { + /* FIXME: see DocAddress */ + char *title; + char *address; + bstring *post_data; + char *post_content_type; + char *bookmark; + BOOL isHEAD; + BOOL safe; + + int link; + int line; + BOOL internal_link; /* whether doc was reached via an internal (fragment) link. - kw */ #ifdef USE_COLOR_STYLE - char *style; + char *style; #endif -} DocInfo; - -#ifndef HTFORMS_H -#include <HTForms.h> -#endif /* HTFORMS_H */ + } DocInfo; -typedef struct { - DocInfo hdoc; - int intern_seq_start; /* indicates which element on the history + typedef struct { + DocInfo hdoc; + int intern_seq_start; /* indicates which element on the history is the start of this sequence of "internal links", otherwise -1 */ -} HistInfo; + } HistInfo; #define HDOC(n) history[n].hdoc -extern int Visited_Links_As; + extern int Visited_Links_As; #define VISITED_LINKS_AS_FIRST_V 0 #define VISITED_LINKS_AS_TREE 1 #define VISITED_LINKS_AS_LATEST 2 #define VISITED_LINKS_REVERSE 4 -typedef struct _VisitedLink { - char *title; - char *address; - int level; - struct _VisitedLink *next_tree; - struct _VisitedLink *prev_latest; - struct _VisitedLink *next_latest; - struct _VisitedLink *prev_first; -} VisitedLink; + typedef struct _VisitedLink { + char *title; + char *address; + int level; + struct _VisitedLink *next_tree; + struct _VisitedLink *prev_latest; + struct _VisitedLink *next_latest; + struct _VisitedLink *prev_first; + } VisitedLink; -extern HistInfo *history; -extern int nhist; -extern int size_history; + extern HistInfo *history; + extern int nhist; + extern int size_history; /******************************************************************************/ -typedef struct _lynx_list_item_type { - struct _lynx_list_item_type *next; /* the next item in the linked list */ - char *name; /* a description of the item */ - char *command; /* the command to execute */ - int always_enabled; /* a constant to tell whether or + typedef struct _lynx_list_item_type { + struct _lynx_list_item_type *next; /* the next item in the linked list */ + char *name; /* a description of the item */ + char *command; /* the command to execute */ + int always_enabled; /* a constant to tell whether or * not to disable the printer * when the no_print option is on */ - /* HTML lists: */ - BOOL override_primary_action; /* whether primary action will be + /* HTML lists: */ + BOOL override_primary_action; /* whether primary action will be * overridden by this - e.g. this * allows invoking user's MUA when * mailto: link is activated using @@ -106,33 +105,33 @@ typedef struct _lynx_list_item_type { * field is only examined by code that * handles EXTERNAL command. */ - /* PRINTER lists: */ - int pagelen; /* an integer to store the printer's + /* PRINTER lists: */ + int pagelen; /* an integer to store the printer's * page length */ -} lynx_list_item_type; + } lynx_list_item_type; -extern lynx_list_item_type *printers; + extern lynx_list_item_type *printers; /* for download commands */ -extern lynx_list_item_type *downloaders; + extern lynx_list_item_type *downloaders; /* for upload commands */ -extern lynx_list_item_type *uploaders; + extern lynx_list_item_type *uploaders; #ifdef USE_EXTERNALS /* for external commands */ -extern lynx_list_item_type *externals; + extern lynx_list_item_type *externals; #endif /******************************************************************************/ -typedef struct { - const char *name; - int value; -} Config_Enum; + typedef struct { + const char *name; + int value; + } Config_Enum; -typedef int (*ParseFunc) (char *); + typedef int (*ParseFunc) (char *); #define ParseUnionMembers \ lynx_list_item_type** add_value; \ @@ -142,9 +141,9 @@ typedef int (*ParseFunc) (char *); ParseFunc fun_value; \ long def_value -typedef union { - ParseUnionMembers; -} ParseUnion; + typedef union { + ParseUnionMembers; + } ParseUnion; #ifdef PARSE_DEBUG #define ParseUnionPtr Config_Type * @@ -170,4 +169,7 @@ typedef union { #define UNION_DEF(v) (long) (v) #endif -#endif /* LYSTRUCTS_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYSTRUCTS_H */ diff --git a/src/LYStyle.c b/src/LYStyle.c index 0ea3bc41..6e8743bf 100644 --- a/src/LYStyle.c +++ b/src/LYStyle.c @@ -1,6 +1,6 @@ /* character level styles for Lynx * (c) 1996 Rob Partington -- donated to the Lyncei (if they want it :-) - * @Id: LYStyle.c 1.58 Thu, 30 Dec 2004 04:11:59 -0800 dickey @ + * @Id: LYStyle.c 1.59 Sun, 02 Jan 2005 15:35:21 -0800 dickey @ */ #include <HTUtils.h> #include <HTML.h> @@ -441,7 +441,7 @@ void parse_userstyles(void) if (HTList_isEmpty(cur)) { initialise_default_stylesheet(); } else { - while ((name = HTList_nextObject(cur)) != NULL) { + while ((name = (char *) HTList_nextObject(cur)) != NULL) { CTRACE2(TRACE_STYLE, (tfp, "LSS:%s\n", (name ? name @@ -499,11 +499,7 @@ static void HStyle_addStyle(char *buffer) void style_deleteStyleList(void) { - char *name; - - while ((name = HTList_removeLastObject(lss_styles)) != NULL) - FREE(name); - HTList_delete(lss_styles); + LYFreeStringList(lss_styles); lss_styles = NULL; } diff --git a/src/LYStyle.h b/src/LYStyle.h index fc31d698..474efa54 100644 --- a/src/LYStyle.h +++ b/src/LYStyle.h @@ -8,63 +8,67 @@ #include <AttrList.h> #include <HTMLDTD.h> -/* list of elements */ -extern const SGML_dtd HTML_dtd; +#ifdef __cplusplus +extern "C" { +#endif +/* list of elements */ extern const SGML_dtd HTML_dtd; /* array of currently set styles */ -extern HTCharStyle displayStyles[DSTYLE_ELEMENTS]; + extern HTCharStyle displayStyles[DSTYLE_ELEMENTS]; /* Set all the buckets in the hash table to be empty */ -extern void parse_userstyles(void); + extern void parse_userstyles(void); -extern void style_deleteStyleList(void); + extern void style_deleteStyleList(void); -extern void style_defaultStyleSheet(void); + extern void style_defaultStyleSheet(void); -extern int style_readFromFile(char *file); + extern int style_readFromFile(char *file); -extern void TrimColorClass(const char *tagname, - char *styleclassname, - int *phcode); + extern void TrimColorClass(const char *tagname, + char *styleclassname, + int *phcode); /* this is an array of styles for tags that don't specify 'class' - the values * from that array will be suggested by SGML.c by setting the following * variable. Value of -1 means that style value should be calculated honestly. * -HV */ -extern int cached_tag_styles[HTML_ELEMENTS]; + extern int cached_tag_styles[HTML_ELEMENTS]; /* the style for current tag is suggested in current_tag_style. If * force_current_tag_style =TRUE, then no attempts to calculate the color style * for current tag should be made - the value of 'current_tag_style' must be * used. */ -extern int current_tag_style; -extern BOOL force_current_tag_style; + extern int current_tag_style; + extern BOOL force_current_tag_style; -extern BOOL force_classname; + extern BOOL force_classname; /* if force_current_tag_style =TRUE, then here will be the classname (this is * done to avoid copying the class name to the buffer class_name. */ -extern char *forced_classname; + extern char *forced_classname; /* This is called each time lss styles are read. It will fill each elt of * 'cached_tag_styles' -HV */ -extern void cache_tag_styles(void); + extern void cache_tag_styles(void); /* this is global var - it can be used for reading the end of string found * during last invokation of TrimColorClass. */ -extern void FastTrimColorClass(const char *tag_name, - int name_len, - char *stylename, - char **pstylename_end, - int *hcode); - -#endif /* USE_COLOR_STYLE */ - + extern void FastTrimColorClass(const char *tag_name, + int name_len, + char *stylename, + char **pstylename_end, + int *hcode); + +#ifdef __cplusplus +} +#endif +#endif /* USE_COLOR_STYLE */ extern int lynx_has_color; #endif /* LYSTYLE_H */ diff --git a/src/LYTraversal.h b/src/LYTraversal.h index 7da7da36..8e712e51 100644 --- a/src/LYTraversal.h +++ b/src/LYTraversal.h @@ -7,11 +7,17 @@ #include <HTUtils.h> /* BOOL, ARGS */ #endif -extern BOOLEAN lookup_link(char *target); -extern void add_to_table(char *target); -extern void add_to_traverse_list(char *fname, char *prev_link_name); -extern void dump_traversal_history(void); -extern void add_to_reject_list(char *target); -extern BOOLEAN lookup_reject(char *target); +#ifdef __cplusplus +extern "C" { +#endif + extern BOOLEAN lookup_link(char *target); + extern void add_to_table(char *target); + extern void add_to_traverse_list(char *fname, char *prev_link_name); + extern void dump_traversal_history(void); + extern void add_to_reject_list(char *target); + extern BOOLEAN lookup_reject(char *target); -#endif /* TRAVERSAL_H */ +#ifdef __cplusplus +} +#endif +#endif /* TRAVERSAL_H */ diff --git a/src/LYUpload.h b/src/LYUpload.h index be421626..84a71a03 100644 --- a/src/LYUpload.h +++ b/src/LYUpload.h @@ -1,4 +1,3 @@ - #ifndef LYUPLOAD_H #define LYUPLOAD_H @@ -6,7 +5,13 @@ #include <LYStructs.h> #endif /* LYSTRUCTS_H */ -extern int LYUpload(char *line); -extern int LYUpload_options(char **newfile, char *directory); +#ifdef __cplusplus +extern "C" { +#endif + extern int LYUpload(char *line); + extern int LYUpload_options(char **newfile, char *directory); -#endif /* LYUPLOAD_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYUPLOAD_H */ diff --git a/src/LYUtils.c b/src/LYUtils.c index beacf9fa..a33686cf 100644 --- a/src/LYUtils.c +++ b/src/LYUtils.c @@ -265,6 +265,19 @@ size_t utf8_length(BOOL utf_flag, } /* + * Free storage used for the link-highlighting. + */ +void LYFreeHilites(int first, int last) +{ + int i; + + for (i = first; i < last; i++) { + LYSetHilite(i, NULL); + FREE(links[i].lname); + } +} + +/* * Set the initial highlight information for a given link. */ void LYSetHilite(int cur, @@ -285,12 +298,12 @@ void LYAddHilite(int cur, HiliteList *list = &(links[cur].list); HiliteInfo *have = list->hl_info; unsigned need = (list->hl_len - 1); - unsigned want = (list->hl_len += 1) * sizeof(HiliteInfo); + unsigned want = (list->hl_len += 1); if (have != NULL) { - have = realloc(have, want); + have = typeRealloc(HiliteInfo, have, want); } else { - have = malloc(want); + have = typeMallocn(HiliteInfo, want); } list->hl_info = have; have[need].hl_text = text; @@ -396,8 +409,7 @@ static BOOL show_whereis_targets(int flag, * the screen. -FM */ LYmbcsstrncpy(buffer, - (LYGetHiliteStr(cur, count) ? - LYGetHiliteStr(cur, count) : ""), + NonNull(LYGetHiliteStr(cur, count)), (sizeof(buffer) - 1), (LYcolLimit - LYGetHilitePos(cur, count)), utf_flag); @@ -1076,8 +1088,7 @@ void LYhighlight(int flag, * screen. */ LYmbcsstrncpy(buffer, - (LYGetHiliteStr(cur, 0) ? - LYGetHiliteStr(cur, 0) : ""), + NonNull(LYGetHiliteStr(cur, 0)), (sizeof(buffer) - 1), (LYcolLimit - links[cur].lx), utf_flag); @@ -1311,7 +1322,7 @@ void statusline(const char *text) /* * Deal with any newlines or tabs in the string. - FM */ - convert_to_spaces((char *) temp, FALSE); + LYReduceBlanks((char *) temp); /* * Handle the Kanji, making sure the text is not longer than the @@ -1351,7 +1362,7 @@ void statusline(const char *text) /* * Deal with any newlines or tabs in the string. - FM */ - convert_to_spaces(buffer, FALSE); + LYReduceBlanks(buffer); } /* @@ -1611,12 +1622,10 @@ int HTCheckForInterrupt(void) FD_SET(0, &readfds); #ifdef SOCKS if (socks_flag) - ret = Rselect(1, (void *) &readfds, NULL, NULL, - &socket_timeout); + ret = Rselect(1, &readfds, NULL, NULL, &socket_timeout); else #endif /* SOCKS */ - ret = select(1, (void *) &readfds, NULL, NULL, - &socket_timeout); + ret = select(1, &readfds, NULL, NULL, &socket_timeout); /** Suspended? **/ if ((ret == -1) && (SOCKET_ERRNO == EINTR)) @@ -1640,7 +1649,7 @@ int HTCheckForInterrupt(void) #endif /* PDCURSES */ #else /* VMS: */ - extern int typeahead(); + extern int typeahead(void); if (fake_zap > 0) { fake_zap--; @@ -1900,22 +1909,28 @@ BOOLEAN LYisLocalHost(const char *filename) } /* - * Utility for freeing the list of local host aliases. - FM + * Free an HTList that contains strings. */ -void LYLocalhostAliases_free(void) +void LYFreeStringList(HTList *list) { - char *alias; - HTList *cur = localhost_aliases; + if (list != NULL) { + char *argument; + HTList *cur = list; - if (!cur) - return; - - while (NULL != (alias = (char *) HTList_nextObject(cur))) { - FREE(alias); + while (NULL != (argument = (char *) HTList_nextObject(cur))) { + FREE(argument); + } + HTList_delete(list); } - HTList_delete(localhost_aliases); +} + +/* + * Utility for freeing the list of local host aliases. - FM + */ +void LYLocalhostAliases_free(void) +{ + LYFreeStringList(localhost_aliases); localhost_aliases = NULL; - return; } /* @@ -1986,7 +2001,7 @@ BOOLEAN LYisLocalAlias(const char *filename) * it returns UNKNOWN_URL_TYPE. Otherwise, it returns * 0 (not a URL). - FM */ -int LYCheckForProxyURL(char *filename) +UrlTypes LYCheckForProxyURL(char *filename) { char *cp = filename; char *cp1; @@ -2009,6 +2024,7 @@ int LYCheckForProxyURL(char *filename) if ((cp2 = strchr((cp + 1), '/')) != NULL && cp2 < cp1) return (NOT_A_URL_TYPE); *cp1 = '\0'; + cp2 = NULL; StrAllocCopy(cp2, cp); *cp1 = ':'; StrAllocCat(cp2, "_proxy"); @@ -2075,11 +2091,11 @@ static BOOLEAN compare_type(char *tst, * Chains to LYCheckForProxyURL() if a colon * is present but the type is not recognized. */ -int is_url(char *filename) +UrlTypes is_url(char *filename) { char *cp = filename; char *cp1; - int result = NOT_A_URL_TYPE; + UrlTypes result = NOT_A_URL_TYPE; int len; int limit; @@ -2877,18 +2893,8 @@ void size_change(int sig GCC_UNUSED) */ void HTSugFilenames_free(void) { - char *fname; - HTList *cur = sug_filenames; - - if (!cur) - return; - - while (NULL != (fname = (char *) HTList_nextObject(cur))) { - FREE(fname); - } - HTList_delete(sug_filenames); + LYFreeStringList(sug_filenames); sug_filenames = NULL; - return; } /* @@ -2897,33 +2903,33 @@ void HTSugFilenames_free(void) */ void HTAddSugFilename(char *fname) { - char *new = NULL; + char *tmp = NULL; char *old; HTList *cur; if (!non_empty(fname)) return; - StrAllocCopy(new, fname); + StrAllocCopy(tmp, fname); if (!sug_filenames) { sug_filenames = HTList_new(); #ifdef LY_FIND_LEAKS atexit(HTSugFilenames_free); #endif - HTList_addObject(sug_filenames, new); + HTList_addObject(sug_filenames, tmp); return; } cur = sug_filenames; while (NULL != (old = (char *) HTList_nextObject(cur))) { - if (!strcmp(old, new)) { + if (!strcmp(old, tmp)) { HTList_removeObject(sug_filenames, old); FREE(old); break; } } - HTList_addObject(sug_filenames, new); + HTList_addObject(sug_filenames, tmp); return; } @@ -4475,8 +4481,9 @@ BOOLEAN LYExpandHostForURL(char **AllocatedString, * Set the first prefix, making it a zero-length string if the list is NULL * or if the potential host field ends with a dot. - FM */ - StartP = ((prefix_list && Str[strlen(Str) - 1] != '.') ? - prefix_list : ""); + StartP = ((prefix_list && Str[strlen(Str) - 1] != '.') + ? prefix_list + : ""); /* * If we have a prefix, but the allocated string is one of the common host * prefixes, make our prefix a zero-length string. - FM @@ -4512,8 +4519,9 @@ BOOLEAN LYExpandHostForURL(char **AllocatedString, * Set the first suffix, making it a zero-length string if the list is * NULL or if the potential host field begins with a dot. - FM */ - StartS = ((suffix_list && *Str != '.') ? - suffix_list : ""); + StartS = ((suffix_list && *Str != '.') + ? suffix_list + : ""); while ((*StartS) && (WHITE(*StartS) || *StartS == ',')) { StartS++; /* Skip whitespace and separators */ } @@ -6442,7 +6450,7 @@ BOOL LYIsUIPage3(const char *url, char *p; HTList *l0 = ly_uip[i].alturls; - while ((p = HTList_nextObject(l0)) != NULL) { + while ((p = (char *) HTList_nextObject(l0)) != NULL) { if ((flagparam & UIP_P_FRAG) ? (!strncmp(p, url, (l = strlen(p))) && (url[l] == '\0' || url[l] == '#')) : @@ -6475,7 +6483,7 @@ void LYRegisterUIPage(const char *url, int n = 0; HTList *l0 = ly_uip[i].alturls; - while ((p = HTList_nextObject(l0)) != NULL) { + while ((p = (char *) HTList_nextObject(l0)) != NULL) { if (!strcmp(p, url)) return; if (!strcmp(p, ly_uip[i].url)) { @@ -6502,17 +6510,11 @@ void LYRegisterUIPage(const char *url, void LYUIPages_free(void) { unsigned int i; - char *p; - HTList *l0; for (i = 0; i < TABLESIZE(ly_uip); i++) { FREE(ly_uip[i].url); FREE(ly_uip[i].file); - l0 = ly_uip[i].alturls; - while ((p = HTList_nextObject(l0)) != NULL) { - FREE(p); - } - HTList_delete(ly_uip[i].alturls); + LYFreeStringList(ly_uip[i].alturls); ly_uip[i].alturls = NULL; } } @@ -7447,7 +7449,8 @@ char *get_clip_grab(void) if (strchr(paste_buf + off, '\r') || strchr(paste_buf + off, '\n')) break; - paste_buf = realloc(paste_buf, size += PASTE_BUFFER - 1); + paste_buf = typeRealloc(char, paste_buf, size += PASTE_BUFFER - 1); + off += len; } return paste_buf; diff --git a/src/LYUtils.h b/src/LYUtils.h index 51a7680b..d9e26567 100644 --- a/src/LYUtils.h +++ b/src/LYUtils.h @@ -11,30 +11,37 @@ #ifdef VMS #include <HTFTP.h> #include <HTVMSUtils.h> -#define HTSYS_name(path) HTVMS_name("", path) -#define HTSYS_purge(path) HTVMS_purge(path) -#define HTSYS_remove(path) HTVMS_remove(path) #endif /* VMS */ #if defined(USE_DOS_DRIVES) #include <HTDOS.h> -#define HTSYS_name(path) HTDOS_name(path) #endif +#if defined(SYSLOG_REQUESTED_URLS) +#include <syslog.h> +#endif + +#ifdef __cplusplus +extern "C" { +#endif +#ifdef VMS +#define HTSYS_name(path) HTVMS_name("", path) +#define HTSYS_purge(path) HTVMS_purge(path) +#define HTSYS_remove(path) HTVMS_remove(path) +#endif /* VMS */ +#if defined(USE_DOS_DRIVES) +#define HTSYS_name(path) HTDOS_name(path) +#endif #ifndef HTSYS_name #define HTSYS_name(path) path #endif - #ifndef HTSYS_purge #define HTSYS_purge(path) /* nothing */ #endif - #ifndef HTSYS_remove #define HTSYS_remove(path) remove(path) #endif - #define LYIsPipeCommand(s) ((s)[0] == '|') - #ifdef VMS #define TTY_DEVICE "tt:" #define NUL_DEVICE "nl:" @@ -61,21 +68,17 @@ #define LYIsNullDevice(s) LYSameFilename(s,NUL_DEVICE) #define LYSameFilename(a,b) (!strcmp(a,b)) #define LYSameHostname(a,b) (!strcmp(a,b)) -#endif /* __CYGWIN__ */ -#endif /* DOSPATH */ -#endif /* VMS */ - +#endif /* __CYGWIN__ */ +#endif /* DOSPATH */ +#endif /* VMS */ /* See definitions in src/LYCharVals.h. The hardcoded values... This prohibits binding C-c and C-g. Maybe it is better to remove this? */ #define LYCharIsINTERRUPT_HARD(ch) \ ((ch) == LYCharINTERRUPT1 || ch == LYCharINTERRUPT2) - #define LYCharIsINTERRUPT(ch) \ (LYCharIsINTERRUPT_HARD(ch) || LKC_TO_LAC(keymap,ch) == LYK_INTERRUPT) - #define LYCharIsINTERRUPT_NO_letter(ch) \ (LYCharIsINTERRUPT(ch) && !isprint(ch)) - #if defined(USE_DOS_DRIVES) #define PATHSEP_STR "\\" #define LYIsPathSep(ch) ((ch) == '/' || (ch) == '\\') @@ -85,7 +88,6 @@ #define LYIsPathSep(ch) ((ch) == '/') #define LYIsDosDrive(s) FALSE /* really nothing */ #endif - #ifdef EXP_ADDRLIST_PAGE #define LYIsListpageTitle(name) \ (!strcmp((name), LIST_PAGE_TITLE) || \ @@ -94,183 +96,181 @@ #define LYIsListpageTitle(name) \ (!strcmp((name), LIST_PAGE_TITLE)) #endif - #define LYIsHtmlSep(ch) ((ch) == '/') - #define findPoundSelector(address) strchr(address, '#') #define restorePoundSelector(pound) if ((pound) != NULL) *(pound) = '#' - -extern BOOL strn_dash_equ(const char *p1, const char *p2, int len); -extern BOOLEAN LYAddSchemeForURL(char **AllocatedString, const char *default_scheme); -extern BOOLEAN LYCachedTemp(char *result, char **cached); -extern BOOLEAN LYCanDoHEAD(const char *address); -extern BOOLEAN LYCanReadFile(const char *name); -extern BOOLEAN LYCanWriteFile(const char *name); -extern BOOLEAN LYCloseInput(FILE *fp); -extern BOOLEAN LYCloseOutput(FILE *fp); -extern BOOLEAN LYExpandHostForURL(char **AllocatedString, char *prefix_list, char *suffix_list); -extern BOOLEAN LYFixCursesOnForAccess(const char *addr, const char *physical); -extern BOOLEAN LYPathOffHomeOK(char *fbuffer, size_t fbuffer_size); -extern BOOLEAN LYValidateFilename(char *result, char *given); -extern BOOLEAN LYisAbsPath(const char *path); -extern BOOLEAN LYisLocalAlias(const char *filename); -extern BOOLEAN LYisLocalFile(const char *filename); -extern BOOLEAN LYisLocalHost(const char *filename); -extern BOOLEAN LYisRootPath(const char *path); -extern BOOLEAN inlocaldomain(void); -extern FILE *InternalPageFP(char *filename, int reuse_flag); -extern FILE *LYAppendToTxtFile(const char *name); -extern FILE *LYNewBinFile(const char *name); -extern FILE *LYNewTxtFile(const char *name); -extern FILE *LYOpenScratch(char *result, const char *prefix); -extern FILE *LYOpenTemp(char *result, const char *suffix, const char *mode); -extern FILE *LYOpenTempRewrite(char *result, const char *suffix, const char *mode); -extern FILE *LYReopenTemp(char *name); -extern char *Current_Dir(char *pathname); -extern char *LYAddPathToSave(char *fname); -extern char *LYGetEnv(const char *name); -extern char *LYLastPathSep(const char *path); -extern char *LYPathLeaf(char *pathname); -extern char *LYgetXDisplay(void); -extern char *strip_trailing_slash(char *my_dirname); -extern char *trimPoundSelector(char *address); -extern const char *Home_Dir(void); -extern const char *LYGetHiliteStr(int cur, int count); -extern const char *LYSysShell(void); -extern const char *index_to_restriction(int inx); -extern const char *wwwName(const char *pathname); -extern int HTCheckForInterrupt(void); -extern int LYCheckForProxyURL(char *filename); -extern int LYConsoleInputFD(BOOLEAN need_selectable); -extern int LYCopyFile(char *src, char *dst); -extern int LYGetHilitePos(int cur, int count); -extern int LYRemoveTemp(char *name); -extern int LYSystem(char *command); -extern int LYValidateOutput(char *filename); -extern int find_restriction(const char *name, int len); -extern int is_url(char *filename); -extern int number2arrows(int number); -extern size_t utf8_length(BOOL utf_flag, const char *data); -extern time_t LYmktime(char *string, BOOL absolute); -extern void BeginInternalPage(FILE *fp0, const char *Title, const char *HelpURL); -extern void EndInternalPage(FILE *fp0); -extern void HTAddSugFilename(char *fname); -extern void HTSugFilenames_free(void); -extern void LYAddHilite(int cur, char *text, int x); -extern void LYAddHtmlSep(char **path); -extern void LYAddHtmlSep0(char *path); -extern void LYAddLocalhostAlias(char *alias); -extern void LYAddPathSep(char **path); -extern void LYAddPathSep0(char *path); -extern void LYAddPathToHome(char *fbuffer, size_t fbuffer_size, const char *fname); -extern void LYCheckBibHost(void); -extern void LYCheckMail(void); -extern void LYCleanupTemp(void); -extern void LYCloseTemp(char *name); -extern void LYCloseTempFP(FILE *fp); -extern void LYConvertToURL(char **AllocatedString, int fixit); -extern void LYDoCSI(char *url, const char *comment, char **csi); -extern void LYEnsureAbsoluteURL(char **href, const char *name, int fixit); -extern void LYFakeZap(BOOL set); -extern void LYFixCursesOn(const char *reason); -extern void LYLocalFileToURL(char **target, const char *source); -extern void LYLocalhostAliases_free(void); -extern void LYRenamedTemp(char *oldname, char *newname); -extern void LYSetHilite(int cur, const char *text); -extern void LYTrimHtmlSep(char *path); -extern void LYTrimPathSep(char *path); -extern void LYTrimRelFromAbsPath(char *path); -extern void LYhighlight(int flag, int cur, const char *target); -extern void LYmsec_delay(unsigned msec); -extern void LYsetXDisplay(char *new_display); -extern void WriteInternalTitle(FILE *fp0, const char *Title); -extern void change_sug_filename(char *fname); -extern void convert_to_spaces(char *string, BOOL condense); -extern void free_and_clear(char **obj); -extern void noviceline(int more_flag); -extern void parse_restrictions(const char *s); -extern void print_restrictions_to_fd(FILE *fp); -extern void remove_backslashes(char *buf); -extern void size_change(int sig); -extern void statusline(const char *text); -extern void toggle_novice_line(void); + extern BOOL strn_dash_equ(const char *p1, const char *p2, int len); + extern BOOLEAN LYAddSchemeForURL(char **AllocatedString, const char *default_scheme); + extern BOOLEAN LYCachedTemp(char *result, char **cached); + extern BOOLEAN LYCanDoHEAD(const char *address); + extern BOOLEAN LYCanReadFile(const char *name); + extern BOOLEAN LYCanWriteFile(const char *name); + extern BOOLEAN LYCloseInput(FILE *fp); + extern BOOLEAN LYCloseOutput(FILE *fp); + extern BOOLEAN LYExpandHostForURL(char **AllocatedString, char + *prefix_list, char *suffix_list); + extern BOOLEAN LYFixCursesOnForAccess(const char *addr, const char *physical); + extern BOOLEAN LYPathOffHomeOK(char *fbuffer, size_t fbuffer_size); + extern BOOLEAN LYValidateFilename(char *result, char *given); + extern BOOLEAN LYisAbsPath(const char *path); + extern BOOLEAN LYisLocalAlias(const char *filename); + extern BOOLEAN LYisLocalFile(const char *filename); + extern BOOLEAN LYisLocalHost(const char *filename); + extern BOOLEAN LYisRootPath(const char *path); + extern BOOLEAN inlocaldomain(void); + extern FILE *InternalPageFP(char *filename, int reuse_flag); + extern FILE *LYAppendToTxtFile(const char *name); + extern FILE *LYNewBinFile(const char *name); + extern FILE *LYNewTxtFile(const char *name); + extern FILE *LYOpenScratch(char *result, const char *prefix); + extern FILE *LYOpenTemp(char *result, const char *suffix, const char *mode); + extern FILE *LYOpenTempRewrite(char *result, const char *suffix, const char *mode); + extern FILE *LYReopenTemp(char *name); + extern char *Current_Dir(char *pathname); + extern char *LYAddPathToSave(char *fname); + extern char *LYGetEnv(const char *name); + extern char *LYLastPathSep(const char *path); + extern char *LYPathLeaf(char *pathname); + extern char *LYgetXDisplay(void); + extern char *strip_trailing_slash(char *my_dirname); + extern char *trimPoundSelector(char *address); + extern const char *Home_Dir(void); + extern const char *LYGetHiliteStr(int cur, int count); + extern const char *LYSysShell(void); + extern const char *index_to_restriction(int inx); + extern const char *wwwName(const char *pathname); + extern int HTCheckForInterrupt(void); + extern int LYConsoleInputFD(BOOLEAN need_selectable); + extern int LYCopyFile(char *src, char *dst); + extern int LYGetHilitePos(int cur, int count); + extern int LYRemoveTemp(char *name); + extern int LYSystem(char *command); + extern int LYValidateOutput(char *filename); + extern int find_restriction(const char *name, int len); + extern int number2arrows(int number); + extern size_t utf8_length(BOOL utf_flag, const char *data); + extern time_t LYmktime(char *string, BOOL absolute); + extern void BeginInternalPage(FILE *fp0, const char *Title, const char *HelpURL); + extern void EndInternalPage(FILE *fp0); + extern void HTAddSugFilename(char *fname); + extern void HTSugFilenames_free(void); + extern void LYAddHilite(int cur, char *text, int x); + extern void LYAddHtmlSep(char **path); + extern void LYAddHtmlSep0(char *path); + extern void LYAddLocalhostAlias(char *alias); + extern void LYAddPathSep(char **path); + extern void LYAddPathSep0(char *path); + extern void LYAddPathToHome(char *fbuffer, size_t fbuffer_size, const char *fname); + extern void LYCheckBibHost(void); + extern void LYCheckMail(void); + extern void LYCleanupTemp(void); + extern void LYCloseTemp(char *name); + extern void LYCloseTempFP(FILE *fp); + extern void LYConvertToURL(char **AllocatedString, int fixit); + extern void LYDoCSI(char *url, const char *comment, char **csi); + extern void LYEnsureAbsoluteURL(char **href, const char *name, int fixit); + extern void LYFakeZap(BOOL set); + extern void LYFixCursesOn(const char *reason); + extern void LYFreeHilites(int first, int last); + extern void LYFreeStringList(HTList *list); + extern void LYLocalFileToURL(char **target, const char *source); + extern void LYLocalhostAliases_free(void); + extern void LYRenamedTemp(char *oldname, char *newname); + extern void LYSetHilite(int cur, const char *text); + extern void LYTrimHtmlSep(char *path); + extern void LYTrimPathSep(char *path); + extern void LYTrimRelFromAbsPath(char *path); + extern void LYhighlight(int flag, int cur, const char *target); + extern void LYmsec_delay(unsigned msec); + extern void LYsetXDisplay(char *new_display); + extern void WriteInternalTitle(FILE *fp0, const char *Title); + extern void change_sug_filename(char *fname); + extern void convert_to_spaces(char *string, BOOL condense); + extern void free_and_clear(char **obj); + extern void noviceline(int more_flag); + extern void parse_restrictions(const char *s); + extern void print_restrictions_to_fd(FILE *fp); + extern void remove_backslashes(char *buf); + extern void size_change(int sig); + extern void statusline(const char *text); + extern void toggle_novice_line(void); #ifdef EXP_ASCII_CTYPES -extern int ascii_tolower(int i); -extern int ascii_toupper(int i); -extern int ascii_isupper(int i); + extern int ascii_tolower(int i); + extern int ascii_toupper(int i); + extern int ascii_isupper(int i); #endif #ifdef __CYGWIN__ -extern int Cygwin_Shell(void); + extern int Cygwin_Shell(void); #endif #ifdef _WIN_CC -extern int exec_command(char *cmd, int wait_flag); /* xsystem.c */ -extern int xsystem(char *cmd); + extern int exec_command(char *cmd, int wait_flag); /* xsystem.c */ + extern int xsystem(char *cmd); #endif /* Keeping track of User Interface Pages: */ -typedef enum { - UIP_UNKNOWN = -1 - ,UIP_HISTORY = 0 - ,UIP_DOWNLOAD_OPTIONS - ,UIP_PRINT_OPTIONS - ,UIP_SHOWINFO - ,UIP_LIST_PAGE - ,UIP_VLINKS - ,UIP_LYNXCFG - ,UIP_OPTIONS_MENU - ,UIP_DIRED_MENU - ,UIP_PERMIT_OPTIONS - ,UIP_UPLOAD_OPTIONS - ,UIP_ADDRLIST_PAGE - ,UIP_CONFIG_DEF - ,UIP_TRACELOG - ,UIP_INSTALL -} UIP_t; + typedef enum { + UIP_UNKNOWN = -1 + ,UIP_HISTORY = 0 + ,UIP_DOWNLOAD_OPTIONS + ,UIP_PRINT_OPTIONS + ,UIP_SHOWINFO + ,UIP_LIST_PAGE + ,UIP_VLINKS + ,UIP_LYNXCFG + ,UIP_OPTIONS_MENU + ,UIP_DIRED_MENU + ,UIP_PERMIT_OPTIONS + ,UIP_UPLOAD_OPTIONS + ,UIP_ADDRLIST_PAGE + ,UIP_CONFIG_DEF + ,UIP_TRACELOG + ,UIP_INSTALL + } UIP_t; #define UIP_P_FRAG 0x0001 /* flag: consider "url#frag" as matching "url" */ -extern BOOL LYIsUIPage3(const char *url, UIP_t type, int flagparam); + extern BOOL LYIsUIPage3(const char *url, UIP_t type, int flagparam); #define LYIsUIPage(url,type) LYIsUIPage3(url, type, UIP_P_FRAG) -extern void LYRegisterUIPage(const char *url, UIP_t type); + extern void LYRegisterUIPage(const char *url, UIP_t type); #define LYUnRegisterUIPage(type) LYRegisterUIPage(NULL, type) -extern void LYUIPages_free(void); + extern void LYUIPages_free(void); #ifdef CAN_CUT_AND_PASTE -extern int put_clip(const char *szBuffer); + extern int put_clip(const char *szBuffer); /* get_clip_grab() returns a pointer to the string in the system area. get_clip_release() should be called ASAP after this. */ -extern char *get_clip_grab(void); -extern void get_clip_release(void); + extern char *get_clip_grab(void); + extern void get_clip_release(void); # ifdef WIN_EX # define size_clip() 8192 # else -extern int size_clip(void); + extern int size_clip(void); # endif #endif #if defined(WIN_EX) /* 1997/10/16 (Thu) 20:13:28 */ -extern char *HTDOS_short_name(char *path); -extern char *w32_strerror(DWORD ercode); + extern char *HTDOS_short_name(char *path); + extern char *w32_strerror(DWORD ercode); #endif #ifdef VMS -extern void Define_VMSLogical(char *LogicalName, char *LogicalValue); -#endif /* VMS */ + extern void Define_VMSLogical(char *LogicalName, char *LogicalValue); +#endif /* VMS */ #if ! HAVE_PUTENV -extern int putenv(const char *string); -#endif /* HAVE_PUTENV */ + extern int putenv(const char *string); +#endif /* HAVE_PUTENV */ #if defined(MULTI_USER_UNIX) -extern void LYRelaxFilePermissions(const char *name); + extern void LYRelaxFilePermissions(const char *name); #else #define LYRelaxFilePermissions(name) /* nothing */ @@ -279,7 +279,7 @@ extern void LYRelaxFilePermissions(const char *name); /* * Whether or not the status line must be shown. */ -extern BOOLEAN mustshow; + extern BOOLEAN mustshow; #define _statusline(msg) mustshow = TRUE, statusline(msg) @@ -288,59 +288,62 @@ extern BOOLEAN mustshow; * * Universal document id types (see LYCheckForProxyURL) */ -typedef enum { - NOT_A_URL_TYPE = 0, - UNKNOWN_URL_TYPE = 1, /* must be nonzero */ - - HTTP_URL_TYPE, - FILE_URL_TYPE, - FTP_URL_TYPE, - NCFTP_URL_TYPE, - WAIS_URL_TYPE, - NEWS_URL_TYPE, - NNTP_URL_TYPE, - TELNET_URL_TYPE, - TN3270_URL_TYPE, - RLOGIN_URL_TYPE, - GOPHER_URL_TYPE, - HTML_GOPHER_URL_TYPE, - TELNET_GOPHER_URL_TYPE, - INDEX_GOPHER_URL_TYPE, - MAILTO_URL_TYPE, - BIBP_URL_TYPE, - FINGER_URL_TYPE, - CSO_URL_TYPE, - HTTPS_URL_TYPE, - SNEWS_URL_TYPE, - PROSPERO_URL_TYPE, - AFS_URL_TYPE, - - DATA_URL_TYPE, - - LYNXEXEC_URL_TYPE, - LYNXPROG_URL_TYPE, - LYNXCGI_URL_TYPE, - - NEWSPOST_URL_TYPE, - NEWSREPLY_URL_TYPE, - SNEWSPOST_URL_TYPE, - SNEWSREPLY_URL_TYPE, - - LYNXPRINT_URL_TYPE, - LYNXHIST_URL_TYPE, - LYNXDOWNLOAD_URL_TYPE, - LYNXKEYMAP_URL_TYPE, - LYNXIMGMAP_URL_TYPE, - LYNXCOOKIE_URL_TYPE, - LYNXDIRED_URL_TYPE, - LYNXOPTIONS_URL_TYPE, - LYNXCFG_URL_TYPE, - LYNXCOMPILE_OPTS_URL_TYPE, - LYNXMESSAGES_URL_TYPE, - - PROXY_URL_TYPE - -} UrlTypes; + typedef enum { + NOT_A_URL_TYPE = 0, + UNKNOWN_URL_TYPE = 1, /* must be nonzero */ + + HTTP_URL_TYPE, + FILE_URL_TYPE, + FTP_URL_TYPE, + NCFTP_URL_TYPE, + WAIS_URL_TYPE, + NEWS_URL_TYPE, + NNTP_URL_TYPE, + TELNET_URL_TYPE, + TN3270_URL_TYPE, + RLOGIN_URL_TYPE, + GOPHER_URL_TYPE, + HTML_GOPHER_URL_TYPE, + TELNET_GOPHER_URL_TYPE, + INDEX_GOPHER_URL_TYPE, + MAILTO_URL_TYPE, + BIBP_URL_TYPE, + FINGER_URL_TYPE, + CSO_URL_TYPE, + HTTPS_URL_TYPE, + SNEWS_URL_TYPE, + PROSPERO_URL_TYPE, + AFS_URL_TYPE, + + DATA_URL_TYPE, + + LYNXEXEC_URL_TYPE, + LYNXPROG_URL_TYPE, + LYNXCGI_URL_TYPE, + + NEWSPOST_URL_TYPE, + NEWSREPLY_URL_TYPE, + SNEWSPOST_URL_TYPE, + SNEWSREPLY_URL_TYPE, + + LYNXPRINT_URL_TYPE, + LYNXHIST_URL_TYPE, + LYNXDOWNLOAD_URL_TYPE, + LYNXKEYMAP_URL_TYPE, + LYNXIMGMAP_URL_TYPE, + LYNXCOOKIE_URL_TYPE, + LYNXDIRED_URL_TYPE, + LYNXOPTIONS_URL_TYPE, + LYNXCFG_URL_TYPE, + LYNXCOMPILE_OPTS_URL_TYPE, + LYNXMESSAGES_URL_TYPE, + + PROXY_URL_TYPE + + } UrlTypes; + + extern UrlTypes LYCheckForProxyURL(char *filename); + extern UrlTypes is_url(char *filename); /* common URLs */ #define STR_BIBP_URL "bibp:" @@ -472,19 +475,16 @@ typedef enum { /* * For change_sug_filename(). */ -extern HTList *sug_filenames; + extern HTList *sug_filenames; /* * syslog() facility */ #if defined(SYSLOG_REQUESTED_URLS) -#include <syslog.h> - -extern void LYOpenlog(const char *banner); -extern void LYSyslog(char *arg); -extern void LYCloselog(void); - -#endif /* SYSLOG_REQUESTED_URLS */ + extern void LYOpenlog(const char *banner); + extern void LYSyslog(char *arg); + extern void LYCloselog(void); +#endif /* SYSLOG_REQUESTED_URLS */ /* * Miscellaneous. @@ -511,4 +511,7 @@ extern void LYCloselog(void); #define BIN_W "wb" #define BIN_A "ab+" -#endif /* LYUTILS_H */ +#ifdef __cplusplus +} +#endif +#endif /* LYUTILS_H */ diff --git a/src/LYrcFile.c b/src/LYrcFile.c index 5cebd3bd..c2f90fb0 100644 --- a/src/LYrcFile.c +++ b/src/LYrcFile.c @@ -216,10 +216,10 @@ BOOL LYgetEnum(Config_Enum * table, char *name, #define MAYBE_FUN(n,v,w,h) {n, 0, CONF_FUN, UNION_FUN(v), 0, 0, w, h} #define MAYBE_MBM(n,h) {n, 0, CONF_MBM, UNION_DEF(0), 0, 0, 0, h} -#define PARSE_NIL {NULL, 1, 0, UNION_DEF(0), 0, 0, 0, 0} +#define PARSE_NIL {NULL, 1, CONF_NIL, UNION_DEF(0), 0, 0, 0, 0} typedef enum { - CONF_UNSPECIFIED = 0 + CONF_NIL = 0 ,CONF_ARRAY ,CONF_BOOL ,CONF_FUN @@ -750,7 +750,7 @@ void read_rc(FILE *fp) StrAllocCopy(*(q->str_value), value); break; - case CONF_UNSPECIFIED: + case CONF_NIL: break; } } @@ -936,7 +936,7 @@ It is not this file.\n\ : ""); break; - case CONF_UNSPECIFIED: + case CONF_NIL: break; } tbl++; diff --git a/src/TRSTable.c b/src/TRSTable.c index f25906c8..aedb56a7 100644 --- a/src/TRSTable.c +++ b/src/TRSTable.c @@ -451,9 +451,8 @@ static int Stbl_addCellToRow(STable_rowinfo *me, STable_cellinfo *colinfo, int n if (me->allocated == 0 && !me->cells) { cells = typecallocn(STable_cellinfo, growby); } else { - cells = realloc(me->cells, - (me->allocated + growby) - * sizeof(STable_cellinfo)); + cells = typeRealloc(STable_cellinfo, me->cells, + (me->allocated + growby)); for (i = 0; cells && i < growby; i++) { cells[me->allocated + i].alignment = HT_ALIGN_NONE; @@ -520,9 +519,8 @@ static int Stbl_reserveCellsInRow(STable_rowinfo *me, int icell, (tfp, "TRST:Stbl_reserveCellsInRow(icell=%d, colspan=%d\n", icell, colspan)); if (growby > 0) { - cells = realloc(me->cells, - (me->allocated + growby) - * sizeof(STable_cellinfo)); + cells = typeRealloc(STable_cellinfo, me->cells, + (me->allocated + growby)); if (cells) { for (i = 0; i < growby; i++) { @@ -980,9 +978,8 @@ static int Stbl_reserveCellsInTable(STable_info *me, int icell, growby = me->nrows + rowspan - 1 - me->allocated_rows; if (growby > 0) { - rows = realloc(me->rows, - (me->allocated_rows + growby) - * sizeof(STable_rowinfo)); + rows = typeRealloc(STable_rowinfo, me->rows, + (me->allocated_rows + growby)); if (!rows) return 0; /* ignore silently, no free memory, may be recoverable */ @@ -1079,9 +1076,8 @@ int Stbl_addRowToTable(STable_info *me, int alignment, if (me->allocated_rows == 0 && !me->rows) { rows = typecallocn(STable_rowinfo, growby); } else { - rows = realloc(me->rows, - (me->allocated_rows + growby) - * sizeof(STable_rowinfo)); + rows = typeRealloc(STable_rowinfo, me->rows, + (me->allocated_rows + growby)); for (i = 0; rows && i < growby; i++) { row = rows + me->allocated_rows + i; @@ -1334,9 +1330,8 @@ static int Stbl_fakeFinishCellInTable(STable_info *me, table lines, not displayed lines. We need to duplicate the reservation structure when we fake new logical lines. */ int prev_row_n = prev_row - me->rows; - STable_rowinfo *rows = realloc(me->rows, - (me->allocated_rows + 1) - * sizeof(STable_rowinfo)); + STable_rowinfo *rows = typeRealloc(STable_rowinfo, me->rows, + (me->allocated_rows + 1)); int need_cells = prev_reserved_last + 1; int n; @@ -1482,9 +1477,8 @@ int Stbl_addCellToTable(STable_info *me, int colspan, if (me->allocated_sumcols == 0 && !me->sumcols) { sumcols = typecallocn(STable_cellinfo, growby); } else { - sumcols = realloc(me->sumcols, - (me->allocated_sumcols + growby) - * sizeof(STable_cellinfo)); + sumcols = typeRealloc(STable_cellinfo, me->sumcols, + (me->allocated_sumcols + growby)); for (i = 0; sumcols && i < growby; i++) { sumcol = sumcols + me->allocated_sumcols + i; @@ -1675,9 +1669,8 @@ int Stbl_addColInfo(STable_info *me, int colspan, if (me->allocated_sumcols == 0) { sumcols = typecallocn(STable_cellinfo, growby); } else { - sumcols = realloc(me->sumcols, - (me->allocated_sumcols + growby) - * sizeof(STable_cellinfo)); + sumcols = typeRealloc(STable_cellinfo, me->sumcols, + (me->allocated_sumcols + growby)); for (i = 0; sumcols && i < growby; i++) { sumcol = sumcols + me->allocated_sumcols + i; diff --git a/src/TRSTable.h b/src/TRSTable.h index 10a95aaf..ef11cd54 100644 --- a/src/TRSTable.h +++ b/src/TRSTable.h @@ -3,18 +3,20 @@ #include <HTUtils.h> -/* TRST_MAXCOLSPAN and TRST_MAXCOLSPAN are defined in userdefs.h */ - -typedef struct _STable_info STable_info; -extern STable_info *Stbl_startTABLE(short); -extern int Stbl_finishTABLE(STable_info *); -extern void Stbl_free(STable_info *); -extern int Stbl_addRowToTable(STable_info *, int, int); -extern int Stbl_addCellToTable(STable_info *, int, int, int, int, int, int, int); -extern int Stbl_finishCellInTable(STable_info *, int, int, int, int); -extern int Stbl_addColInfo(STable_info *, int, short, BOOL); -extern int Stbl_finishColGroup(STable_info *); -extern int Stbl_addRowGroup(STable_info *, short); +#ifdef __cplusplus +extern "C" { +#endif +/* TRST_MAXCOLSPAN and TRST_MAXCOLSPAN are defined in userdefs.h */ typedef struct _STable_info STable_info; + extern STable_info *Stbl_startTABLE(short); + extern int Stbl_finishTABLE(STable_info *); + extern void Stbl_free(STable_info *); + extern int Stbl_addRowToTable(STable_info *, int, int); + extern int Stbl_addCellToTable(STable_info *, int, int, int, int, int, + int, int); + extern int Stbl_finishCellInTable(STable_info *, int, int, int, int); + extern int Stbl_addColInfo(STable_info *, int, short, BOOL); + extern int Stbl_finishColGroup(STable_info *); + extern int Stbl_addRowGroup(STable_info *, short); #define TRST_ENDCELL_ENDTD 1 #define TRST_ENDCELL_LINEBREAK 0 @@ -22,23 +24,26 @@ extern int Stbl_addRowGroup(STable_info *, short); #define TRST_FAKING_CELLS 2 #define Stbl_lineBreak(stbl,l,off,pos) Stbl_finishCellInTable(stbl, TRST_ENDCELL_LINEBREAK, l, off, pos) -extern int Stbl_getStartLine(STable_info *); -extern int Stbl_getFixupPositions(STable_info *me, int lineno, - int *oldpos, - int *newpos); -extern short Stbl_getAlignment(STable_info *); + extern int Stbl_getStartLine(STable_info *); + extern int Stbl_getFixupPositions(STable_info *me, int lineno, + int *oldpos, + int *newpos); + extern short Stbl_getAlignment(STable_info *); #ifdef EXP_NESTED_TABLES -extern void Stbl_update_enclosing(STable_info *me, int max_width, - int last_lineno); -struct _TextAnchor; -extern void Stbl_set_enclosing(STable_info *me, STable_info *encl, struct _TextAnchor *last_anchor); -extern STable_info *Stbl_get_enclosing(STable_info *me); -extern struct _TextAnchor *Stbl_get_last_anchor_before(STable_info *me); -extern int Stbl_getStartLineDeep(STable_info *); + extern void Stbl_update_enclosing(STable_info *me, int max_width, + int last_lineno); + struct _TextAnchor; + extern void Stbl_set_enclosing(STable_info *me, STable_info *encl, struct _TextAnchor *last_anchor); + extern STable_info *Stbl_get_enclosing(STable_info *me); + extern struct _TextAnchor *Stbl_get_last_anchor_before(STable_info *me); + extern int Stbl_getStartLineDeep(STable_info *); #else #define Stbl_getStartLineDeep(t) Stbl_getStartLine(t) #endif -#endif /* TRSTABLE_H */ +#ifdef __cplusplus +} +#endif +#endif /* TRSTABLE_H */ diff --git a/src/UCAuto.c b/src/UCAuto.c index 1558e997..0f71a000 100644 --- a/src/UCAuto.c +++ b/src/UCAuto.c @@ -225,11 +225,12 @@ void UCChangeTerminalCodepage(int newcs, LYCloseTempFP(fp1); LYCloseTempFP(fp2); if ((nlen = strlen(old_font)) + 1 < LY_MAXPATH && - (rp = realloc(old_font, nlen + 1))) - old_font = rp; + (rp = typeRealloc(char, old_font, nlen + 1))) + old_font = rp; + if ((nlen = strlen(old_umap)) + 1 < LY_MAXPATH && - (rp = realloc(old_umap, nlen + 1))) - old_umap = rp; + (rp = typeRealloc(char, old_umap, nlen + 1))) + old_umap = rp; } else { if (fp1) LYRemoveTemp(old_font); diff --git a/src/UCAuto.h b/src/UCAuto.h index d3646a84..98d2243f 100644 --- a/src/UCAuto.h +++ b/src/UCAuto.h @@ -3,6 +3,12 @@ #include <UCDefs.h> -extern void UCChangeTerminalCodepage(int newcs, LYUCcharset *p); +#ifdef __cplusplus +extern "C" { +#endif + extern void UCChangeTerminalCodepage(int newcs, LYUCcharset *p); -#endif /* UCAUTO_H */ +#ifdef __cplusplus +} +#endif +#endif /* UCAUTO_H */ diff --git a/src/UCdomap.h b/src/UCdomap.h index 51e4478e..1a2f00e8 100644 --- a/src/UCdomap.h +++ b/src/UCdomap.h @@ -11,6 +11,9 @@ #include <UCkd.h> +#ifdef __cplusplus +extern "C" { +#endif /* * [old comments: - KW ] * consolemap.h @@ -21,42 +24,40 @@ #define GRAF_MAP 1 #define IBMPC_MAP 2 #define USER_MAP 3 - /* * Some conventions I try to follow (loosely): * [a-z]* only internal, names from linux driver code. * UC_* to be only known internally. * UC[A-Z]* to be exported to other parts of Lynx. -KW - */ -extern void UC_Charset_Setup(const char *UC_MIMEcharset, - const char *UC_LYNXcharset, - const u8 * unicount, - const u16 * unitable, - int nnuni, - struct unimapdesc_str replacedesc, - int lowest_eight, - int UC_rawuni, - int codepage); - -struct UC_charset { - const char *MIMEname; - const char *LYNXname; - const u8 *unicount; - const u16 *unitable; - int num_uni; - struct unimapdesc_str replacedesc; - int uc_status; - int LYhndl; - int GN; - int lowest_eight; - int enc; - int codepage; /* codepage number, used by OS/2 font-switching code */ -}; - -extern int UCNumCharsets; -extern int UCInitialized; - -extern void UCInit(void); + */ extern void UC_Charset_Setup(const char *UC_MIMEcharset, + const char *UC_LYNXcharset, + const u8 * unicount, + const u16 * unitable, + int nnuni, + struct unimapdesc_str replacedesc, + int lowest_eight, + int UC_rawuni, + int codepage); + + struct UC_charset { + const char *MIMEname; + const char *LYNXname; + const u8 *unicount; + const u16 *unitable; + int num_uni; + struct unimapdesc_str replacedesc; + int uc_status; + int LYhndl; + int GN; + int lowest_eight; + int enc; + int codepage; /* codepage number, used by OS/2 font-switching code */ + }; + + extern int UCNumCharsets; + extern int UCInitialized; + + extern void UCInit(void); /* * INSTRUCTIONS for adding new character sets which do not have Unicode tables. @@ -69,12 +70,12 @@ extern void UCInit(void); * when changing ucmaketbl.c, see also UC_Charset_Setup() above for details. */ - /* - * There is no strict correlation for the next five, since the transfer - * charset gets decoded into Display Char Set by the CJK code (separate from - * Unicode mechanism). For now we use the MIME name that describes what is - * output to the terminal. - KW - */ + /* + * There is no strict correlation for the next five, since the transfer + * charset gets decoded into Display Char Set by the CJK code (separate from + * Unicode mechanism). For now we use the MIME name that describes what is + * output to the terminal. - KW + */ /*----------------------------------------------------------------------------*/ @@ -143,9 +144,9 @@ extern void UCInit(void); /*----------------------------------------------------------------------------*/ - /* - * Placeholder for non-translation mode. - FM - */ + /* + * Placeholder for non-translation mode. - FM + */ #ifndef NO_CHARSET_x_transparent #define NO_CHARSET_x_transparent !ALL_CHARSETS @@ -171,4 +172,7 @@ extern void UCInit(void); 0, 128,UCT_ENC_UTF8,-4) #endif -#endif /* UCDOMAP_H */ +#ifdef __cplusplus +} +#endif +#endif /* UCDOMAP_H */ diff --git a/src/chrtrans/caselower.h b/src/chrtrans/caselower.h index 4953162c..5894a3f2 100644 --- a/src/chrtrans/caselower.h +++ b/src/chrtrans/caselower.h @@ -24,9 +24,9 @@ default mappings listed in the Unicode Character Database. typedef struct { u16 upper; u16 lower; -} unipair; +} unipair_case; -static const unipair unicode_to_lower_case[] = +static const unipair_case unicode_to_lower_case[] = /* *INDENT-OFF* */ { {0x0041, 0x0061}, /* LATIN CAPITAL LETTER A */ diff --git a/src/chrtrans/makeuctb.c b/src/chrtrans/makeuctb.c index a2f0f5d6..e11cd1fe 100644 --- a/src/chrtrans/makeuctb.c +++ b/src/chrtrans/makeuctb.c @@ -807,7 +807,8 @@ static const u8 dfont_unicount%s[%d] = \n\ fprintf(chdr, "\nstatic const u16 dfont_unitable%s[%d] = \n{\n\t", id_append, nuni); } else { - fprintf(chdr, "\nstatic const u16 dfont_unitable%s[1]; /* dummy */\n", id_append); + fprintf(chdr, + "\nstatic const u16 dfont_unitable%s[1] = {0}; /* dummy */\n", id_append); } fp0 = 0; diff --git a/src/makefile.in b/src/makefile.in index 0d6ea42a..36a18ae3 100644 --- a/src/makefile.in +++ b/src/makefile.in @@ -120,6 +120,9 @@ clean: rm -f lynx$x core *.core *.leaks *.i *$o *.bak tags TAGS cd chrtrans && $(MAKE) clean +tags: + ctags *.[ch] + distclean: clean CMN=$(top_srcdir)/WWW/Library/Implementation/ |