[neomutt-devel] [RFC] Move IDN version string to library
YU Bo
tsu.yubo at gmail.com
Thu Apr 26 05:22:05 CEST 2018
Hi, this is my indent to move IDN string to library.
Link:
https://github.com/neomutt/neomutt/issues/1148
---
mutt/idna.c | 14 ++++++++++++++
mutt/idna2.h | 1 +
version.c | 15 +--------------
3 files changed, 16 insertions(+), 14 deletions(-)
diff --git a/mutt/idna.c b/mutt/idna.c
index ceb893f1..32fc4fd1 100644
--- a/mutt/idna.c
+++ b/mutt/idna.c
@@ -35,6 +35,13 @@
#include "logging.h"
#include "memory.h"
#include "string2.h"
+
+#ifdef HAVE_STRINGPREP_H
+#include <stringprep.h>
+#elif defined(HAVE_IDN_STRINGPREP_H)
+#include <idn/stringprep.h>
+#endif
+
#ifdef HAVE_IDN2_H
#include <idn2.h>
#elif defined(HAVE_IDN_IDN2_H)
@@ -67,6 +74,13 @@ bool IdnEncode;
#endif /* HAVE_LIBIDN */
#ifdef HAVE_LIBIDN
+
+/* some comment in here */
+const char *mutt_idna_version(void)
+{
+
+}
+
/**
* mutt_idna_to_ascii_lz - Convert a domain to Punycode
* @param input Domain
diff --git a/mutt/idna2.h b/mutt/idna2.h
index bd20a175..28d98888 100644
--- a/mutt/idna2.h
+++ b/mutt/idna2.h
@@ -33,5 +33,6 @@ extern bool IdnEncode;
int mutt_idna_to_ascii_lz(const char *input, char **output, int flags);
char *mutt_idna_intl_to_local(const char *user, const char *domain, int flags);
char *mutt_idna_local_to_intl(const char *user, const char *domain);
+char *mutt_idna_version(void);
#endif /* _MUTT_IDNA_H */
diff --git a/version.c b/version.c
index 36d88084..4793c1b0 100644
--- a/version.c
+++ b/version.c
@@ -35,21 +35,8 @@
#include <sys/utsname.h>
#include <unistd.h>
#include "mutt/mutt.h"
+#include "mutt/idna2.h"
#include "mutt_curses.h"
-#ifdef HAVE_STRINGPREP_H
-#include <stringprep.h>
-#elif defined(HAVE_IDN_STRINGPREP_H)
-#include <idn/stringprep.h>
-#endif
-#ifdef HAVE_IDN2_H
-#include <idn2.h>
-#elif defined(HAVE_IDN_IDN2_H)
-#include <idn/idn2.h>
-#elif defined(HAVE_IDNA_H)
-#include <idna.h>
-#elif defined(HAVE_IDN_IDNA_H)
-#include <idn/idna.h>
-#endif
/* #include "protos.h" */
const char *mutt_make_version(void);
--
2.11.0
Here, i don't know how to implement mutt_idna_version in mutt/idna.c.
Because code example:
```print_version() in version.c
#ifdef HAVE_IDN2_H
printf("\nlibidn: %s (compiled with %s)", idn2_check_version(NULL), IDN2_VERSION);
#elif defined(HAVE_LIBIDN)
printf("\nlibidn: %s (compiled with %s)", stringprep_check_version(NULL), STRINGPREP_VERSION);
#endif
```
In my view, idn2_check_version must defined in <idn2.h> or <idna.h> or sth like it. Right?
If we implement *mutt_idna_version()* and where it is called?
And i am missing something?
Thanks,
Bo,
More information about the neomutt-devel
mailing list