projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix a bug when changing folder
[apps/madmutt.git]
/
charset.c
diff --git
a/charset.c
b/charset.c
index
8a1804f
..
29aa776
100644
(file)
--- a/
charset.c
+++ b/
charset.c
@@
-25,29
+25,12
@@
* please see the file GPL in the top level source directory.
*/
* please see the file GPL in the top level source directory.
*/
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <ctype.h>
+#include <lib-lib/lib-lib.h>
-#include <sys/types.h>
-#include <dirent.h>
-#include <unistd.h>
-#include <errno.h>
#ifdef HAVE_LANGINFO_CODESET
# include <langinfo.h>
#endif
#ifdef HAVE_LANGINFO_CODESET
# include <langinfo.h>
#endif
-#include <lib-lib/mem.h>
-#include <lib-lib/ascii.h>
-#include <lib-lib/str.h>
-#include <lib-lib/macros.h>
-
#include "mutt.h"
#include "charset.h"
#include "mutt.h"
#include "charset.h"
@@
-98,6
+81,11
@@
void charset_canonicalize(char *dest, ssize_t dlen, const char *name)
const char *p;
int i = 0;
const char *p;
int i = 0;
+ if (!name) {
+ m_strcpy(dest, dlen, "us-ascii");
+ return;
+ }
+
// canonize name: only keep a-z0-9 and dots, put into lowercase
for (p = name; *p && *p != ':' && i < ssizeof(scratch) - 1; p++) {
if (isalnum(*p) || *p== '.') {
// canonize name: only keep a-z0-9 and dots, put into lowercase
for (p = name; *p && *p != ':' && i < ssizeof(scratch) - 1; p++) {
if (isalnum(*p) || *p== '.') {
@@
-129,25
+117,18
@@
const char *charset_getfirst(const char *charset)
return fcharset;
}
return fcharset;
}
-static int mutt_chscmp(const char *s, const char *chs)
-{
- char buffer[SHORT_STRING];
-
- if (!s)
- return 0;
-
- charset_canonicalize(buffer, sizeof(buffer), s);
- return !strcmp(buffer, chs);
-}
-
int charset_is_utf8(const char *s)
{
int charset_is_utf8(const char *s)
{
- return mutt_chscmp(s, "utf-8");
+ char buf[SHORT_STRING];
+ charset_canonicalize(buf, sizeof(buf), s);
+ return !strcmp(buf, "utf-8");
}
int charset_is_us_ascii(const char *s)
{
}
int charset_is_us_ascii(const char *s)
{
- return mutt_chscmp(s, "us-ascii");
+ char buf[SHORT_STRING];
+ charset_canonicalize(buf, sizeof(buf), s);
+ return !strcmp(buf, "us-ascii");
}
}
@@
-391,6
+372,7
@@
fgetconv_open(FILE *file, const char *from, const char *to, int flags)
struct fgetconv_t *fc = p_new(struct fgetconv_t, 1);
fc->file = file;
struct fgetconv_t *fc = p_new(struct fgetconv_t, 1);
fc->file = file;
+ fc->cd = MUTT_ICONV_ERROR;
if (from && to)
fc->cd = mutt_iconv_open(to, from, flags);
if (from && to)
fc->cd = mutt_iconv_open(to, from, flags);