Clean up iconv/gconv_int.h for unnecessary declarations

The variables __gconv_path_elem, __gconv_max_path_elem_len and function
__gconv_get_path declared in, as well as the type path_elem and macro
GCONV_NCHAR_GOAL defined in gconv_int.h are all used in only one iconv
compilation unit each. In addition, the extern declaration of the variable
__gconv_nmodules refers to a variable that does not exist any more.
Considering this, these symbols do not need to be exposed via a header file.

This patch removes the extern declarations from the header file and moves
the definitions to the compilation units where they are used.
This commit is contained in:
Arjun Shankar 2018-09-25 15:13:15 +02:00
parent 462d348caa
commit 335a3b0a0d
4 changed files with 24 additions and 22 deletions

View File

@ -1,3 +1,15 @@
2018-09-25 Arjun Shankar <arjun@redhat.com>
* iconv/gconv_int.h (__gconv_path_elem): Remove.
(__gconv_max_path_elem_len): Likewise.
(__gconv_nmodules): Likewise.
(__gconv_get_path): Likewise.
(path_elem): Move to ...
* iconv/gconv_conf.c: ... here.
(__gconv_get_path): Mark function static.
* iconv/gconv_int.h (GCONV_NCHAR_GOAL): Move to ...
* iconv/gconv_open.c: ... here.
2018-09-24 Andreas Schwab <schwab@suse.de>
* scripts/haveversions.awk: New file.

View File

@ -38,6 +38,13 @@
/* This is the default path where we look for module lists. */
static const char default_gconv_path[] = GCONV_PATH;
/* Type to represent search path. */
struct path_elem
{
const char *name;
size_t len;
};
/* The path elements, as determined by the __gconv_get_path function.
All path elements end in a slash. */
struct path_elem *__gconv_path_elem;
@ -420,7 +427,7 @@ read_conf_file (const char *filename, const char *directory, size_t dir_len,
/* Determine the directories we are looking for data in. */
void
static void
__gconv_get_path (void)
{
struct path_elem *result;

View File

@ -28,19 +28,6 @@
__BEGIN_DECLS
/* Type to represent search path. */
struct path_elem
{
const char *name;
size_t len;
};
/* Variable with search path for `gconv' implementation. */
extern struct path_elem *__gconv_path_elem attribute_hidden;
/* Maximum length of a single path element. */
extern size_t __gconv_max_path_elem_len attribute_hidden;
/* Structure for alias definition. Simply two strings. */
struct gconv_alias
{
@ -49,10 +36,6 @@ struct gconv_alias
};
/* How many character should be converted in one call? */
#define GCONV_NCHAR_GOAL 8160
/* Structure describing one loaded shared object. This normally are
objects to perform conversation but as a special case the db shared
object is also handled. */
@ -111,7 +94,6 @@ enum
extern void *__gconv_alias_db attribute_hidden;
/* Array with available modules. */
extern size_t __gconv_nmodules;
extern struct gconv_module *__gconv_modules_db attribute_hidden;
/* Value of the GCONV_PATH environment variable. */
@ -211,9 +193,6 @@ extern struct gconv_module *__gconv_get_modules_db (void);
/* Retrieve pointer to internal alias database. */
extern void *__gconv_get_alias_db (void);
/* Determine the directories we are looking in. */
extern void __gconv_get_path (void) attribute_hidden;
/* Comparison function to search alias. */
extern int __gconv_alias_compare (const void *p1, const void *p2)
attribute_hidden;

View File

@ -26,6 +26,10 @@
#include <gconv_int.h>
/* How many character should be converted in one call? */
#define GCONV_NCHAR_GOAL 8160
int
__gconv_open (const char *toset, const char *fromset, __gconv_t *handle,
int flags)