about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/HTAlert.c12
-rw-r--r--src/LYCharSets.c33
-rw-r--r--src/LYCharSets.h2
-rw-r--r--src/LYClean.c12
-rw-r--r--src/LYCookie.c52
-rw-r--r--src/LYCookie.h2
-rw-r--r--src/LYMain.c11
-rw-r--r--src/LYOptions.c14
-rw-r--r--src/LYPrint.c8
-rw-r--r--src/LYReadCFG.c4
-rw-r--r--src/LYShowInfo.c6
-rw-r--r--src/LYUtils.c29
-rw-r--r--src/LYrcFile.c6
-rw-r--r--src/chrtrans/Makefile.old2
-rw-r--r--src/chrtrans/makefile.dos1
-rw-r--r--src/chrtrans/makefile.in1
-rw-r--r--src/chrtrans/makeuctb.c2
17 files changed, 116 insertions, 81 deletions
diff --git a/src/HTAlert.c b/src/HTAlert.c
index d305cbb4..85ba07a8 100644
--- a/src/HTAlert.c
+++ b/src/HTAlert.c
@@ -115,21 +115,25 @@ PUBLIC void HTReadProgress ARGS2(
 		last = now;
 		bytes_last = bytes;
 	    }
+	    units = "bytes";
 	    divisor = 1;
 	    if (LYshow_kb_rate
 	     && (total >= kb_units || bytes >= kb_units)) {
+		units = "KB";
 		divisor = 1024;
 		bytes /= divisor;
 		if (total > 0) total /= divisor;
-		units = "KB";
 	    }
 
 	    if (total >  0)
-		sprintf (line, "Read %ld of %ld %s of data.", bytes, total, units);
+		sprintf (line, "Read %ld of %ld %s of data", bytes, total, units);
 	    else
-		sprintf (line, "Read %ld %s of data.", bytes, units);
-	    if (transfer_rate > 0)
+		sprintf (line, "Read %ld %s of data", bytes, units);
+	    if ((transfer_rate > 0)
+		     && (!LYshow_kb_rate || (bytes * divisor > kb_units)))
 		sprintf (line + strlen(line), ", %ld %s/sec.", transfer_rate / divisor, units);
+	    else
+		sprintf (line + strlen(line), ".");
 	    if (total <  0) {
 		if (total < -1)
 		    strcat(line, " (Press 'z' to abort)");
diff --git a/src/LYCharSets.c b/src/LYCharSets.c
index 029b8546..031e6126 100644
--- a/src/LYCharSets.c
+++ b/src/LYCharSets.c
@@ -349,21 +349,21 @@ PUBLIC CONST char ** LYCharSets[MAXCHARSETS]={
  *  The order of LYCharSets and LYchar_set_names MUST be the same
  */
 PUBLIC CONST char * LYchar_set_names[MAXCHARSETSP]={
-	"Western (ISO-8859-1)  ",
-	"Western (cp850)       ",
+	"Western (ISO-8859-1)",
+	"Western (cp850)",
 	"Western (windows-1252)",
 	"IBM PC US codepage (cp437)",
-	"DEC Multinational   ",
-	"Macintosh (8 bit)   ",
-	"NeXT character set  ",
-	"Chinese             ",
-	"Japanese (EUC-JP)   ",
+	"DEC Multinational",
+	"Macintosh (8 bit)",
+	"NeXT character set",
+	"Chinese",
+	"Japanese (EUC-JP)",
 	"Japanese (Shift_JIS)",
-	"Korean              ",
-	"Taipei (Big5)       ",
-	"Vietnamese (VISCII) ",
+	"Korean",
+	"Taipei (Big5)",
+	"Vietnamese (VISCII)",
 	"7 bit approximations (US-ASCII)",
-	"Transparent         ",
+	"Transparent",
 	(char *) 0
 };
 
@@ -731,7 +731,7 @@ PRIVATE CONST names_pairs OLD_charset_names[] = {
     {"UNICODE UTF 8",       "utf-8"},
     {"RFC 1345 w/o Intro",  "mnemonic+ascii+0"},
     {"RFC 1345 Mnemonic",   "mnemonic"},
-    {NULL,   NULL},
+    {NULL,   NULL}, /* terminated with NULL */
 };
 
 /*
@@ -740,24 +740,23 @@ PRIVATE CONST names_pairs OLD_charset_names[] = {
  *  in both MIME name and "human-readable" name (old and new style).
  *  Returns -1 if not recognized.
  */
-PUBLIC int UCGetLYhndl_byAnyName ARGS1 (CONST char *, value)
+PUBLIC int UCGetLYhndl_byAnyName ARGS1 (char *, value)
 {
     int i;
 
+    LYTrimTrailing(value);
     if (value == NULL) return -1;
 
     /* search by name */
     for (i = 0; (i < MAXCHARSETS && LYchar_set_names[i]); i++) {
-	if (!strncmp(LYchar_set_names[i], value,
-		     strlen(LYchar_set_names[i]))) {
+	if (!strcmp(value, LYchar_set_names[i])) {
 	    return i;  /* OK */
 	}
     }
 
     /* search by old name from 2.8/2.7.2 version */
     for (i = 0; (OLD_charset_names[i].fullname); i++) {
-	if (!strncmp(OLD_charset_names[i].fullname, value,
-		     strlen(OLD_charset_names[i].fullname))) {
+	if (!strcmp(value, OLD_charset_names[i].fullname)) {
 	    return UCGetLYhndl_byMIME(OLD_charset_names[i].MIMEname); /* OK */
 	}
     }
diff --git a/src/LYCharSets.h b/src/LYCharSets.h
index 36b583ef..b5a889f7 100644
--- a/src/LYCharSets.h
+++ b/src/LYCharSets.h
@@ -30,7 +30,7 @@ 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 PARAMS((CONST char *value));
+extern int UCGetLYhndl_byAnyName PARAMS((char *value));
 extern void HTMLSetCharacterHandling PARAMS((int i));
 extern void HTMLSetUseDefaultRawMode PARAMS((int i, BOOLEAN modeflag));
 extern void HTMLUseCharacterSet PARAMS((int i));
diff --git a/src/LYClean.c b/src/LYClean.c
index 1f65bbae..0ba852d3 100644
--- a/src/LYClean.c
+++ b/src/LYClean.c
@@ -7,6 +7,7 @@
 #include <LYGlobalDefs.h>
 #include <LYStrings.h>
 #include <LYTraversal.h>
+#include <LYCookie.h>
 #include <UCAuto.h>
 
 #include <LYexit.h>
@@ -178,6 +179,17 @@ PUBLIC void cleanup NOARGS
 #endif /* LINUX */
 #endif /* EXP_CHARTRANS_AUTOSWITCH */
 
+#ifdef EXP_PERSISTENT_COOKIES
+    /*
+     * This can go right here for now. We need to work up a better place
+     * to save cookies for the next release, preferably whenever a new
+     * persistent cookie is received or used. Some sort of protocol to
+     * handle two processes writing to the cookie file needs to be worked
+     * out as well.
+     */
+    LYStoreCookies (LYCookieFile);
+#endif
+
     cleanup_files();
     for (i = 0; i < nhist; i++) {
 	FREE(history[i].title);
diff --git a/src/LYCookie.c b/src/LYCookie.c
index 1cbf6966..716c69ef 100644
--- a/src/LYCookie.c
+++ b/src/LYCookie.c
@@ -39,7 +39,6 @@
       * If a cookie has the secure flag set, we presently treat only SSL
 	connections as secure.	This may need to be expanded for other
 	secure communication protocols that become standardized.
-      * Cookies could be optionally stored in a file from session to session.
 */
 
 #include <HTUtils.h>
@@ -67,7 +66,7 @@
 **  list.  Thus, finding the cookies that apply to a given URL is a
 **  two-level scan; first we check each domain to see if it applies,
 **  and if so, then we check the paths of all the cookies on that
-**  list.   We keep a running total of cookies as we add or delete
+**  list.  We keep a running total of cookies as we add or delete
 **  them
 */
 PRIVATE HTList *domain_list = NULL;
@@ -1923,7 +1922,7 @@ PUBLIC void LYLoadCookies ARGS1 (
 }
 
 /* rjp - experimental persistent cookie support */
-PRIVATE void LYStoreCookies ARGS1 (
+PUBLIC void LYStoreCookies ARGS1 (
 	CONST char *,	cookie_file)
 {
     char buf[1024];
@@ -2029,11 +2028,6 @@ PRIVATE int LYHandleCookies ARGS4 (
     extern BOOLEAN HadVMSInterrupt;
 #endif /* VMS */
 
-#ifdef EXP_PERSISTENT_COOKIES
-    /* rjp - this can go here for now */
-    LYStoreCookies (LYCookieFile);
-#endif
-
     /*
      *	Check whether we have something to do. - FM
      */
@@ -2445,10 +2439,14 @@ Delete_all_cookies_in_domain:
 }
 
 
-/* cookie_add_acceptlist
- *   is passed a string of domains (with leading '.', and comma
- *   delimited) to add to the "always accept" list for cookies. -BJP
- */
+/*      cookie_add_acceptlist
+**      ---------------------
+**
+**   Is passed a comma-delimited string of domains to add to the
+**   "always accept" list for cookies.  The domains need to be identical
+**   to the form from which the cookie is received, with or without a
+**   leading ".".  - BJP
+*/
 
 PUBLIC void cookie_add_acceptlist ARGS1(
 	char *, 	acceptstr)
@@ -2461,7 +2459,8 @@ PUBLIC void cookie_add_acceptlist ARGS1(
     char *strsmall = NULL;
     int isexisting = FALSE;
 
-    /* is this the first cookie we're handling? if so, initialize the
+    /*
+     * Is this the first cookie we're handling?  If so, initialize
      * domain_list.
      */
 
@@ -2479,9 +2478,10 @@ PUBLIC void cookie_add_acceptlist ARGS1(
 	if(strsmall == NULL)
 	    break;
 
-	/* check the list of existing cookies to see if this is a
+	/*
+	 * Check the list of existing cookies to see if this is a
 	 * re-setting of an already existing cookie -- if so, just
-	 * change the behavior, if not, create a new domain entry
+	 * change the behavior, if not, create a new domain entry.
 	 */
 
 	for (hl = domain_list; hl != NULL; hl = hl->next) {
@@ -2504,6 +2504,7 @@ PUBLIC void cookie_add_acceptlist ARGS1(
 	    de->bv = ACCEPT_ALWAYS;
 
 	    StrAllocCopy(de->domain, strsmall);
+	    de->cookie_list = HTList_new();
 	    HTList_addObject(domain_list, de);
 	} else {
 	    de2->bv = ACCEPT_ALWAYS;
@@ -2516,10 +2517,14 @@ PUBLIC void cookie_add_acceptlist ARGS1(
 }
 
 
-/* cookie_add_rejectlist
- *   is passed a string of domains (with leading '.', and comma
- *   delimited) to add to the "always reject" list for cookies. -BJP
- */
+/*      cookie_add_rejectlist
+**      ---------------------
+**
+**   Is passed a comma-delimited string of domains to add to the
+**   "always reject" list for cookies.  The domains need to be identical
+**   to the form from which the cookie is received, with or without a
+**   leading ".".  - BJP
+*/
 
 PUBLIC void cookie_add_rejectlist ARGS1(
 	char *, 	rejectstr)
@@ -2532,7 +2537,8 @@ PUBLIC void cookie_add_rejectlist ARGS1(
     char *strsmall = NULL;
     int isexisting = FALSE;
 
-    /* is this the first cookie we're handling? if so, initialize the
+    /*
+     * Is this the first cookie we're handling?  If so, initialize
      * domain_list.
      */
 
@@ -2550,9 +2556,10 @@ PUBLIC void cookie_add_rejectlist ARGS1(
 	if(strsmall == NULL)
 	    break;
 
-	/* check the list of existing cookies to see if this is a
+	/*
+	 * Check the list of existing cookies to see if this is a
 	 * re-setting of an already existing cookie -- if so, just
-	 * change the behavior, if not, create a new domain entry
+	 * change the behavior, if not, create a new domain entry.
 	 */
 
 	for (hl = domain_list; hl != NULL; hl = hl->next) {
@@ -2575,6 +2582,7 @@ PUBLIC void cookie_add_rejectlist ARGS1(
 	    de->bv = REJECT_ALWAYS;
 
 	    StrAllocCopy(de->domain, strsmall);
+	    de->cookie_list = HTList_new();
 	    HTList_addObject(domain_list, de);
 	} else {
 	    de2->bv = REJECT_ALWAYS;
diff --git a/src/LYCookie.h b/src/LYCookie.h
index 62ea77a4..2e4a3ecf 100644
--- a/src/LYCookie.h
+++ b/src/LYCookie.h
@@ -13,6 +13,8 @@ extern char *LYCookie PARAMS((
 	CONST char *	partialpath,
 	int		port,
 	BOOL		secure));
+extern void LYStoreCookies PARAMS((
+	CONST char *	cookie_file));
 extern void LYLoadCookies PARAMS((
 	CONST char * 	cookie_file));
 extern void cookie_add_acceptlist PARAMS((
diff --git a/src/LYMain.c b/src/LYMain.c
index f42d3bcc..6e030201 100644
--- a/src/LYMain.c
+++ b/src/LYMain.c
@@ -557,6 +557,7 @@ PUBLIC int main ARGS2(
      * To prevent corrupting binary data with _WINDOWS and DJGPP
      * we open files and stdout in BINARY mode by default.
      * Where necessary we should open and (close!) TEXT mode.
+     * (use LYNewTxtFile/LYAppendToTxtFile to open text files for writing)
      */
     _fmode = O_BINARY;
     SetOutputMode( O_BINARY );
@@ -1013,10 +1014,6 @@ PUBLIC int main ARGS2(
     LYAddPathToHome(LYTraceLogPath = malloc(LY_MAXPATH), LY_MAXPATH, "Lynx.trace");
 
     if (TRACE && LYUseTraceLog) {
-#if defined(__DJGPP__) || defined(_WINDOWS)
-	_fmode = O_TEXT;
-#endif /* __DJGPP__  or _WINDOWS */
-
 	/*
 	 *  If we can't open it for writing, give up.
 	 *  Otherwise, on VMS close it, delete it and any
@@ -1026,10 +1023,6 @@ PUBLIC int main ARGS2(
 	if ((LYTraceLogFP = LYNewTxtFile(LYTraceLogPath)) == NULL) {
 	    WWW_TraceFlag = FALSE;
 	    fprintf(stderr, "%s\n", TRACELOG_OPEN_FAILED);
-
-#if defined(__DJGPP__) || defined(_WINDOWS)
-	    _fmode = O_BINARY;
-#endif /* __DJGPP__ or _WINDOWS */
 	    exit(-1);
 	}
 #ifdef VMS
@@ -2494,7 +2487,7 @@ static Parse_Args_Type Arg_Table [] =
 {
    PARSE_SET(
       "accept_all_cookies", SET_ARG,		&LYAcceptAllCookies,
-      "accepts all cookies"
+      "\naccepts all cookies"
    ),
    PARSE_FUN(
       "anonymous",	FUNCTION_ARG,	anonymous_fun,
diff --git a/src/LYOptions.c b/src/LYOptions.c
index 94a8ac3c..58202a82 100644
--- a/src/LYOptions.c
+++ b/src/LYOptions.c
@@ -3208,7 +3208,7 @@ static char * preferred_doc_lang_string = "preferred_doc_lang";
 static char * user_agent_string		= "user_agent";
 
 #define PutLabel(fp, text) \
-	fprintf(fp,"%-35s: ", text)
+	fprintf(fp,"  %-33s: ", text)
 
 #define PutTextInput(fp, name, value, size, disable) \
 	fprintf(fp,\
@@ -3745,7 +3745,7 @@ PUBLIC int gen_options ARGS1(
      * preformatted text follows
      */
     fprintf(fp0,"<pre>\n");
-    fprintf(fp0,"\n<em>Personal Preferences</em>\n");
+    fprintf(fp0,"\n  <em>Personal Preferences</em>\n");
 
     /* Cookies: SELECT */
     PutLabel(fp0, "Cookies");
@@ -3891,7 +3891,7 @@ PUBLIC int gen_options ARGS1(
     /*
      * Bookmark Options
      */
-    fprintf(fp0,"\n<em>Bookmark Options</em>\n");
+    fprintf(fp0,"\n  <em>Bookmark Options</em>\n");
 
     /* Multi-Bookmark Mode: SELECT */
     if (!LYMBMBlocked) {
@@ -3925,7 +3925,7 @@ PUBLIC int gen_options ARGS1(
     /*
      * Character Set Options
      */
-    fprintf(fp0,"\n<em>Character Set Options</em>\n");
+    fprintf(fp0,"\n  <em>Character Set Options</em>\n");
 
     /* Assume Character Set: SELECT */
     /* if (user_mode==ADVANCED_MODE) */
@@ -3985,7 +3985,7 @@ PUBLIC int gen_options ARGS1(
     /*
      * File Management Options
      */
-    fprintf(fp0,"\n<em>File Management Options</em>\n");
+    fprintf(fp0,"\n  <em>File Management Options</em>\n");
 
     /* FTP sort: SELECT */
     PutLabel(fp0, "Ftp sort criteria");
@@ -4012,7 +4012,7 @@ PUBLIC int gen_options ARGS1(
     /*
      * Headers transferred to remote server
      */
-    fprintf(fp0,"\n<em>Headers transferred to remote server</em>\n");
+    fprintf(fp0,"\n  <em>Headers transferred to remote server</em>\n");
 
     /* Preferred Document Character Set: INPUT */
     PutLabel(fp0, "Preferred document character set");
@@ -4033,7 +4033,7 @@ PUBLIC int gen_options ARGS1(
 
     if (!LYRestricted) {
 	fprintf(fp0,
-		"<a href=\"%s\">lynx.cfg information (read-only)</a>\n",
+		"\n  Check your <a href=\"%s\">lynx.cfg</a> here\n",
 		lynx_cfg_infopage());
     }
 
diff --git a/src/LYPrint.c b/src/LYPrint.c
index da791c6a..4a4a86bf 100644
--- a/src/LYPrint.c
+++ b/src/LYPrint.c
@@ -248,9 +248,6 @@ PUBLIC int printfile ARGS1(
     switch (type) {
 
 	case TO_FILE:
-#if defined(__DJGPP__) || defined(_WINDOWS)
-		_fmode = O_TEXT;
-#endif /* __DJGPP__  or _WINDOWS */
 		_statusline(FILENAME_PROMPT);
 	retry:	strcpy(filename, sug_filename);  /* add suggestion info */
 		/* make the sug_filename conform to system specs */
@@ -533,9 +530,6 @@ PUBLIC int printfile ARGS1(
 #else
 		HTAddSugFilename(buffer);
 #endif /* VMS */
-#if defined(__DJGPP__) || defined(_WINDOWS)
-		_fmode = O_BINARY;
-#endif /* __DJGPP__ or _WINDOWS */
 		break;
 
 	case MAIL:
@@ -714,7 +708,7 @@ PUBLIC int printfile ARGS1(
 		     *	For "generic" VMS MAIL, include
 		     *	the subject in the command. - FM
 		     */
-		    remove_quotes(subject); */
+		    remove_quotes(subject);
 		    sprintf(buffer,
 			    "%s %s/subject=\"%.70s\" %s %s",
 			    system_mail,
diff --git a/src/LYReadCFG.c b/src/LYReadCFG.c
index c90a390e..20a9d380 100644
--- a/src/LYReadCFG.c
+++ b/src/LYReadCFG.c
@@ -1198,8 +1198,8 @@ PUBLIC void read_cfg ARGS4(
 
     /*
      * If any COOKIE_{ACCEPT,REJECT}_DOMAINS have been defined,
-     * process them. These are comma delimited lists of
-     * domains, with leading '.'. - BJP
+     * process them.  These are comma delimited lists of
+     * domains. - BJP
      */
 
     if (LYCookieAcceptDomains != NULL) {
diff --git a/src/LYShowInfo.c b/src/LYShowInfo.c
index 0783c393..32d31a6c 100644
--- a/src/LYShowInfo.c
+++ b/src/LYShowInfo.c
@@ -134,13 +134,15 @@ PUBLIC int showinfo ARGS4(
 
     if (!LYRestricted) {
 #ifdef HAVE_CFG_DEFS_H
-	fprintf(fp0, " - <a href=\"%s\">compile time settings</a></h1>\n",
+	fprintf(fp0, " - <a href=\"%s\">compile time settings</a>\n",
 		     lynx_compile_opts());
 #else
-	fprintf(fp0, " - <a href=\"%s\">your lynx.cfg</a></h1>\n",
+	fprintf(fp0, " - <a href=\"%s\">your lynx.cfg</a>\n",
 		     lynx_cfg_infopage());
 #endif
     }
+    fprintf(fp0, "</h1>\n");  /* don't forget to close <h1> */
+
 
 #ifdef DIRED_SUPPORT
     if (lynx_edit_mode && nlinks > 0) {
diff --git a/src/LYUtils.c b/src/LYUtils.c
index e2447dde..eaf79dad 100644
--- a/src/LYUtils.c
+++ b/src/LYUtils.c
@@ -5547,22 +5547,43 @@ PUBLIC FILE *LYNewBinFile ARGS1(char *, name)
 
 PUBLIC FILE *LYNewTxtFile ARGS1(char *, name)
 {
+    FILE *fp;
+
 #ifdef VMS
-    FILE *fp = fopen (name, "w", "shr=get");
+    fp = fopen (name, "w", "shr=get");
     chmod(name, HIDE_CHMOD);
 #else
-    FILE *fp = OpenHiddenFile(name, "w");
+#if defined(__DJGPP__) || defined(_WINDOWS)
+    _fmode = O_TEXT;
+#endif /* __DJGPP__  or _WINDOWS */
+
+    fp = OpenHiddenFile(name, "w");
+
+#if defined(__DJGPP__) || defined(_WINDOWS)
+    _fmode = O_BINARY;
+#endif /* __DJGPP__ or _WINDOWS */  
 #endif
+
     return fp;
 }
 
 PUBLIC FILE *LYAppendToTxtFile ARGS1(char *, name)
 {
+    FILE *fp;
+
 #ifdef VMS
-    FILE *fp = fopen (name, "a+", "shr=get");
+    fp = fopen (name, "a+", "shr=get");
     chmod(name, HIDE_CHMOD);
 #else
-    FILE *fp = OpenHiddenFile(name, "a+");
+#if defined(__DJGPP__) || defined(_WINDOWS)
+    _fmode = O_TEXT;
+#endif /* __DJGPP__  or _WINDOWS */
+
+    fp = OpenHiddenFile(name, "a+");
+
+#if defined(__DJGPP__) || defined(_WINDOWS)
+    _fmode = O_BINARY;
+#endif /* __DJGPP__ or _WINDOWS */  
 #endif
     return fp;
 }
diff --git a/src/LYrcFile.c b/src/LYrcFile.c
index d998ea7e..ef66d6dc 100644
--- a/src/LYrcFile.c
+++ b/src/LYrcFile.c
@@ -559,9 +559,6 @@ PUBLIC int save_rc NOPARAMS
     /*
      *  Open the file for write.
      */
-#if defined(__DJGPP__) || defined(_WINDOWS)
-    _fmode = O_TEXT;
-#endif /* __DJGPP__  or _WINDOWS */
     if ((fp = LYNewTxtFile(rcfile)) == NULL) {
 	return FALSE;
     }
@@ -980,9 +977,6 @@ PUBLIC int save_rc NOPARAMS
      *  Close the RC file.
      */
     fclose(fp);
-#if defined(__DJGPP__) || defined(_WINDOWS)
-    _fmode = O_BINARY;
-#endif /* __DJGPP__ or _WINDOWS */
 
 #ifdef VMS
     /*
diff --git a/src/chrtrans/Makefile.old b/src/chrtrans/Makefile.old
index 0ca53fc2..42b49eec 100644
--- a/src/chrtrans/Makefile.old
+++ b/src/chrtrans/Makefile.old
@@ -30,6 +30,7 @@ TABLES= \
  cp1257_uni.h \
  cp437_uni.h \
  cp737_uni.h \
+ cp775_uni.h \
  cp850_uni.h \
  cp852_uni.h \
  cp862_uni.h \
@@ -76,6 +77,7 @@ cp1256_uni.h: cp1256_uni.tbl makeuctb
 cp1257_uni.h: cp1257_uni.tbl makeuctb
 cp437_uni.h: cp437_uni.tbl makeuctb
 cp737_uni.h: cp737_uni.tbl makeuctb
+cp775_uni.h: cp775_uni.tbl makeuctb
 cp850_uni.h: cp850_uni.tbl makeuctb
 cp852_uni.h: cp852_uni.tbl makeuctb
 cp862_uni.h: cp862_uni.tbl makeuctb
diff --git a/src/chrtrans/makefile.dos b/src/chrtrans/makefile.dos
index 60c7d56b..57c45dfc 100644
--- a/src/chrtrans/makefile.dos
+++ b/src/chrtrans/makefile.dos
@@ -83,6 +83,7 @@ cp1256_uni.h:		cp1256_uni.tbl		makeuctb.exe
 cp1257_uni.h:		cp1257_uni.tbl		makeuctb.exe
 cp437_uni.h:		cp437_uni.tbl		makeuctb.exe
 cp737_uni.h:		cp737_uni.tbl		makeuctb.exe
+cp775_uni.h:		cp775_uni.tbl		makeuctb.exe
 cp850_uni.h:		cp850_uni.tbl		makeuctb.exe
 cp852_uni.h:		cp852_uni.tbl		makeuctb.exe
 cp862_uni.h:		cp862_uni.tbl		makeuctb.exe
diff --git a/src/chrtrans/makefile.in b/src/chrtrans/makefile.in
index 7cb02699..512b003d 100644
--- a/src/chrtrans/makefile.in
+++ b/src/chrtrans/makefile.in
@@ -107,6 +107,7 @@ cp1256_uni.h:		$(srcdir)/cp1256_uni.tbl	makeuctb$x
 cp1257_uni.h:		$(srcdir)/cp1257_uni.tbl	makeuctb$x
 cp437_uni.h:		$(srcdir)/cp437_uni.tbl		makeuctb$x
 cp737_uni.h:		$(srcdir)/cp737_uni.tbl		makeuctb$x
+cp775_uni.h:		$(srcdir)/cp775_uni.tbl		makeuctb$x
 cp850_uni.h:		$(srcdir)/cp850_uni.tbl		makeuctb$x
 cp852_uni.h:		$(srcdir)/cp852_uni.tbl		makeuctb$x
 cp862_uni.h:		$(srcdir)/cp862_uni.tbl		makeuctb$x
diff --git a/src/chrtrans/makeuctb.c b/src/chrtrans/makeuctb.c
index fda5f3e0..4c191d77 100644
--- a/src/chrtrans/makeuctb.c
+++ b/src/chrtrans/makeuctb.c
@@ -624,12 +624,14 @@ PUBLIC int main ARGS2(
     } else if (this_LYNXcharset[0] == '\0') {
 	strncpy(this_LYNXcharset,this_MIMEcharset,UC_MAXLEN_LYNXCSNAME);
     }
+/***** DO NOT produce trailing spaces!
     if ((i = strlen(this_LYNXcharset)) < UC_LEN_LYNXCSNAME) {
 	for (; i < UC_LEN_LYNXCSNAME; i++) {
 	    this_LYNXcharset[i] = ' ';
 	}
 	this_LYNXcharset[i] = '\0';
     }
+*******/
 #ifdef NOTDEFINED
     fprintf(stderr,"this_MIMEcharset: %s.\n",this_MIMEcharset);
     fprintf(stderr,"this_LYNXcharset: %s.\n",this_LYNXcharset);