#if defined HAVE_LIBCHARSET_H && defined HAVE_LOCALE_CHARSET
#include <libcharset.h>
#elif defined HAVE_LANGINFO_H && defined HAVE_NL_LANGINFO
#if defined HAVE_LIBCHARSET_H && defined HAVE_LOCALE_CHARSET
#include <libcharset.h>
#elif defined HAVE_LANGINFO_H && defined HAVE_NL_LANGINFO
/* This function converts the characters in the "in" xbuf into characters
* in the "out" xbuf. The "len" of the "in" xbuf is used starting from its
* "pos". The "size" of the "out" xbuf restricts how many characters can be
/* This function converts the characters in the "in" xbuf into characters
* in the "out" xbuf. The "len" of the "in" xbuf is used starting from its
* "pos". The "size" of the "out" xbuf restricts how many characters can be
#endif
int read_ndx_and_attrs(int f_in, int *iflag_ptr, uchar *type_ptr,
#endif
int read_ndx_and_attrs(int f_in, int *iflag_ptr, uchar *type_ptr,
- ndx, first_flist->ndx_start - 1, first_flist->prev->ndx_end,
+ ndx, first_flist ? first_flist->ndx_start - 1 : -1,
+ first_flist ? first_flist->prev->ndx_end : -1,
-int set_file_attrs(const char *fname, struct file_struct *file, statx *sxp,
+int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
int change_uid, change_gid;
mode_t new_mode = file->mode;
int inherit;
int change_uid, change_gid;
mode_t new_mode = file->mode;
int inherit;
change_gid = gid_ndx && !(file->flags & FLAG_SKIP_GROUP)
&& sxp->st.st_gid != (gid_t)F_GROUP(file);
#if !defined HAVE_LCHOWN && !defined CHOWN_MODIFIES_SYMLINK
change_gid = gid_ndx && !(file->flags & FLAG_SKIP_GROUP)
&& sxp->st.st_gid != (gid_t)F_GROUP(file);
#if !defined HAVE_LCHOWN && !defined CHOWN_MODIFIES_SYMLINK