mirror of
git://git.sv.gnu.org/autoconf
synced 2025-03-01 14:16:02 +08:00
Replace all tab characters with (8) spaces, lest the formatting of
example code, etcetera, be messed up.
This commit is contained in:
parent
713a751d87
commit
8656f8c4e6
@ -91,7 +91,7 @@ VERSION = @VERSION@
|
||||
|
||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
TAR = tar
|
||||
TAR = gtar
|
||||
GZIP_ENV = --best
|
||||
all: all-redirect
|
||||
.SUFFIXES:
|
||||
@ -270,7 +270,7 @@ distdir: $(DISTFILES)
|
||||
@for file in $(DISTFILES); do \
|
||||
d=$(srcdir); \
|
||||
if test -d $$d/$$file; then \
|
||||
cp -pr $$d/$$file $(distdir)/$$file; \
|
||||
cp -pr $$/$$file $(distdir)/$$file; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|
||||
|
@ -35,17 +35,17 @@
|
||||
@dircategory Individual utilities
|
||||
@direntry
|
||||
* autoscan: (autoconf)autoscan Invocation.
|
||||
Semi-automatic @file{configure.ac} writing
|
||||
Semi-automatic @file{configure.ac} writing
|
||||
* ifnames: (autoconf)ifnames Invocation.
|
||||
Listing the conditionals in source code
|
||||
Listing the conditionals in source code
|
||||
* autoconf: (autoconf)autoconf Invocation.
|
||||
How to create configuration scripts
|
||||
How to create configuration scripts
|
||||
* autoreconf: (autoconf)autoreconf Invocation.
|
||||
Remaking multiple @code{configure} scripts
|
||||
Remaking multiple @code{configure} scripts
|
||||
* configure: (autoconf)configure Invocation.
|
||||
Configuring a package
|
||||
Configuring a package
|
||||
* config.status: (autoconf)config.status Invocation.
|
||||
Recreating a configuration
|
||||
Recreating a configuration
|
||||
@end direntry
|
||||
|
||||
@ifinfo
|
||||
@ -569,9 +569,9 @@ your source files --> [autoscan*] --> [configure.scan] --> configure.ac
|
||||
|
||||
@group
|
||||
configure.ac --.
|
||||
| .------> autoconf* -----> configure
|
||||
| .------> autoconf* -----> configure
|
||||
[aclocal.m4] --+---+
|
||||
| `-----> [autoheader*] --> [config.h.in]
|
||||
| `-----> [autoheader*] --> [config.h.in]
|
||||
[acsite.m4] ---'
|
||||
@end group
|
||||
|
||||
@ -582,11 +582,11 @@ Makefile.in -------------------------------> Makefile.in
|
||||
Files used in configuring a software package:
|
||||
@example
|
||||
@group
|
||||
.-------------> [config.cache]
|
||||
.-------------> [config.cache]
|
||||
configure* ------------+-------------> config.log
|
||||
|
|
||||
|
|
||||
[config.h.in] -. v .-> [config.h] -.
|
||||
+--> config.status* -+ +--> make*
|
||||
+--> config.status* -+ +--> make*
|
||||
Makefile.in ---' `-> Makefile ---'
|
||||
@end group
|
||||
@end example
|
||||
@ -696,8 +696,8 @@ For instance:
|
||||
|
||||
@example
|
||||
AC_CHECK_HEADER([stdio.h],
|
||||
[AC_DEFINE([HAVE_STDIO_H])],
|
||||
[AC_MSG_ERROR([Sorry, can't do anything for you])])
|
||||
[AC_DEFINE([HAVE_STDIO_H])],
|
||||
[AC_MSG_ERROR([Sorry, can't do anything for you])])
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
@ -705,8 +705,8 @@ is quoted properly. You may safely simplify its quotation to:
|
||||
|
||||
@example
|
||||
AC_CHECK_HEADER(stdio.h,
|
||||
[AC_DEFINE(HAVE_STDIO_H)],
|
||||
[AC_MSG_ERROR([Sorry, can't do anything for you])])
|
||||
[AC_DEFINE(HAVE_STDIO_H)],
|
||||
[AC_MSG_ERROR([Sorry, can't do anything for you])])
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
@ -717,8 +717,8 @@ The following example is wrong and dangerous, as it is underquoted:
|
||||
|
||||
@example
|
||||
AC_CHECK_HEADER(stdio.h,
|
||||
AC_DEFINE(HAVE_STDIO_H),
|
||||
AC_MSG_ERROR([Sorry, can't do anything for you]))
|
||||
AC_DEFINE(HAVE_STDIO_H),
|
||||
AC_MSG_ERROR([Sorry, can't do anything for you]))
|
||||
@end example
|
||||
|
||||
In other cases, you may have to use text that also resembles a macro
|
||||
@ -1643,7 +1643,7 @@ colon-separated list of input files. Examples:
|
||||
|
||||
@example
|
||||
AC_CONFIG_FILES(Makefile:boiler/top.mk:boiler/bot.mk
|
||||
lib/Makefile:boiler/lib.mk)
|
||||
lib/Makefile:boiler/lib.mk)
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
@ -1945,10 +1945,10 @@ Makefile snippet:
|
||||
|
||||
@example
|
||||
.sh:
|
||||
rm -f $@@ $@@.tmp
|
||||
sed 's,@@datadir\@@,$(pkgdatadir),g' $< >$@@.tmp
|
||||
chmod +x $@@.tmp
|
||||
mv $@@.tmp $@@
|
||||
rm -f $@@ $@@.tmp
|
||||
sed 's,@@datadir\@@,$(pkgdatadir),g' $< >$@@.tmp
|
||||
chmod +x $@@.tmp
|
||||
mv $@@.tmp $@@
|
||||
@end example
|
||||
|
||||
Three things are noteworthy:
|
||||
@ -2009,7 +2009,7 @@ files by prefixing them with @samp{$(srcdir)/}. For example:
|
||||
|
||||
@example
|
||||
time.info: time.texinfo
|
||||
$(MAKEINFO) $(srcdir)/time.texinfo
|
||||
$(MAKEINFO) $(srcdir)/time.texinfo
|
||||
@end example
|
||||
|
||||
@node Automatic Remaking, , Build Directories, Makefile Substitutions
|
||||
@ -2038,23 +2038,23 @@ conflicts etc.).
|
||||
@example
|
||||
@group
|
||||
$(srcdir)/configure: configure.ac aclocal.m4
|
||||
cd $(srcdir) && autoconf
|
||||
cd $(srcdir) && autoconf
|
||||
|
||||
# autoheader might not change config.h.in, so touch a stamp file.
|
||||
$(srcdir)/config.h.in: stamp-h.in
|
||||
$(srcdir)/stamp-h.in: configure.ac aclocal.m4
|
||||
cd $(srcdir) && autoheader
|
||||
echo timestamp > $(srcdir)/stamp-h.in
|
||||
cd $(srcdir) && autoheader
|
||||
echo timestamp > $(srcdir)/stamp-h.in
|
||||
|
||||
config.h: stamp-h
|
||||
stamp-h: config.h.in config.status
|
||||
./config.status
|
||||
./config.status
|
||||
|
||||
Makefile: Makefile.in config.status
|
||||
./config.status
|
||||
./config.status
|
||||
|
||||
config.status: configure
|
||||
./config.status --recheck
|
||||
./config.status --recheck
|
||||
@end group
|
||||
@end example
|
||||
|
||||
@ -2336,10 +2336,10 @@ For example:
|
||||
|
||||
@example
|
||||
AH_TEMPLATE([CRAY_STACKSEG_END],
|
||||
[Define to one of _getb67, GETB67, getb67
|
||||
for Cray-2 and Cray-YMP systems. This
|
||||
function is required for alloca.c support
|
||||
on those systems.])
|
||||
[Define to one of _getb67, GETB67, getb67
|
||||
for Cray-2 and Cray-YMP systems. This
|
||||
function is required for alloca.c support
|
||||
on those systems.])
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
@ -2391,8 +2391,8 @@ Here is an unrealistic example:
|
||||
@example
|
||||
fubar=42
|
||||
AC_CONFIG_COMMANDS(fubar,
|
||||
[echo this is extra $fubar, and so on.],
|
||||
[fubar=$fubar])
|
||||
[echo this is extra $fubar, and so on.],
|
||||
[fubar=$fubar])
|
||||
@end example
|
||||
|
||||
Here is a better one:
|
||||
@ -2444,7 +2444,7 @@ For example, this call:
|
||||
|
||||
@example
|
||||
AC_CONFIG_LINKS(host.h:config/$machine.h
|
||||
object.h:config/$obj_format.h)
|
||||
object.h:config/$obj_format.h)
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
@ -3938,8 +3938,8 @@ If no @var{includes} are specified, the default includes are used
|
||||
|
||||
@example
|
||||
AC_CHECK_MEMBER(struct passwd.pw_gecos,,
|
||||
[AC_MSG_ERROR([We need `passwd.pw_gecos'!])],
|
||||
[#include <pwd.h>])
|
||||
[AC_MSG_ERROR([We need `passwd.pw_gecos'!])],
|
||||
[#include <pwd.h>])
|
||||
@end example
|
||||
|
||||
You can use this macro for sub members:
|
||||
@ -6191,11 +6191,11 @@ Don't leave white spaces before the parentheses in user functions calls,
|
||||
|
||||
@example
|
||||
$ gawk 'function die () @{ print "Aaaaarg!" @}
|
||||
BEGIN @{ die () @}'
|
||||
BEGIN @{ die () @}'
|
||||
gawk: cmd. line:2: BEGIN @{ die () @}
|
||||
gawk: cmd. line:2: ^ parse error
|
||||
$ gawk 'function die () @{ print "Aaaaarg!" @}
|
||||
BEGIN @{ die() @}'
|
||||
BEGIN @{ die() @}'
|
||||
Aaaaarg!
|
||||
@end example
|
||||
|
||||
@ -6271,7 +6271,7 @@ emulate, e.g.:
|
||||
|
||||
@example
|
||||
dir=`expr "x$file" : 'x\(.*\)/[^/]*' \|
|
||||
'.' : '.'
|
||||
'.' : '.'
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
@ -6629,16 +6629,16 @@ fstype=no
|
||||
# The order of these tests is important.
|
||||
AC_TRY_CPP([#include <sys/statvfs.h>
|
||||
#include <sys/fstyp.h>],
|
||||
[AC_DEFINE(FSTYPE_STATVFS) fstype=SVR4])
|
||||
[AC_DEFINE(FSTYPE_STATVFS) fstype=SVR4])
|
||||
if test $fstype = no; then
|
||||
AC_TRY_CPP([#include <sys/statfs.h>
|
||||
#include <sys/fstyp.h>],
|
||||
[AC_DEFINE(FSTYPE_USG_STATFS) fstype=SVR3])
|
||||
[AC_DEFINE(FSTYPE_USG_STATFS) fstype=SVR3])
|
||||
fi
|
||||
if test $fstype = no; then
|
||||
AC_TRY_CPP([#include <sys/statfs.h>
|
||||
#include <sys/vmount.h>],
|
||||
[AC_DEFINE(FSTYPE_AIX_STATFS) fstype=AIX])
|
||||
[AC_DEFINE(FSTYPE_AIX_STATFS) fstype=AIX])
|
||||
fi
|
||||
# (more cases omitted here)
|
||||
AC_MSG_RESULT([$fstype])
|
||||
@ -7628,9 +7628,9 @@ AC_TRY_LINK(
|
||||
#ifndef tzname /* For SGI. */
|
||||
extern char *tzname[]; /* RS6000 and others reject char **tzname. */
|
||||
#endif],
|
||||
[atoi (*tzname);],
|
||||
[ac_cv_var_tzname=yes],
|
||||
[ac_cv_var_tzname=no])
|
||||
[atoi (*tzname);],
|
||||
[ac_cv_var_tzname=yes],
|
||||
[ac_cv_var_tzname=no])
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
@ -7664,9 +7664,9 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM(
|
||||
#ifndef tzname /* For SGI. */
|
||||
extern char *tzname[]; /* RS6000 and others reject char **tzname. */
|
||||
#endif]],
|
||||
[atoi (*tzname);])],
|
||||
[ac_cv_var_tzname=yes],
|
||||
[ac_cv_var_tzname=no])
|
||||
[atoi (*tzname);])],
|
||||
[ac_cv_var_tzname=yes],
|
||||
[ac_cv_var_tzname=no])
|
||||
@end example
|
||||
|
||||
@c FIXME: Quadrigraphs and hopeless cases.
|
||||
@ -7964,8 +7964,8 @@ write
|
||||
@example
|
||||
AC_CACHE_CHECK([for EMX OS/2 environment], [ac_cv_emxos2],
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [return __EMX__;])],
|
||||
[ac_cv_emxos2=yes],
|
||||
[ac_cv_emxos2=no])])
|
||||
[ac_cv_emxos2=yes],
|
||||
[ac_cv_emxos2=no])])
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
@ -7973,11 +7973,11 @@ or even
|
||||
|
||||
@example
|
||||
AC_CACHE_CHECK([for EMX OS/2 environment],
|
||||
[ac_cv_emxos2],
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
|
||||
[return __EMX__;])],
|
||||
[ac_cv_emxos2=yes],
|
||||
[ac_cv_emxos2=no])])
|
||||
[ac_cv_emxos2],
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
|
||||
[return __EMX__;])],
|
||||
[ac_cv_emxos2=yes],
|
||||
[ac_cv_emxos2=no])])
|
||||
@end example
|
||||
|
||||
When using @code{AC_TRY_RUN} or any macro that cannot work when
|
||||
@ -8100,8 +8100,8 @@ and the new way:
|
||||
define([_AC_EMXOS2],
|
||||
[AC_CACHE_CHECK([for EMX OS/2 environment], [ac_cv_emxos2],
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [return __EMX__;])],
|
||||
[ac_cv_emxos2=yes],
|
||||
[ac_cv_emxos2=no])])
|
||||
[ac_cv_emxos2=yes],
|
||||
[ac_cv_emxos2=no])])
|
||||
test "$ac_cv_emxos2" = yes && EMXOS2=yes[]dnl
|
||||
])# _AC_EMXOS2
|
||||
@end example
|
||||
@ -8301,7 +8301,7 @@ cases together, like in this fragment:
|
||||
@example
|
||||
case "$target" in
|
||||
i386-*-mach* | i386-*-gnu*)
|
||||
obj_format=aout emulation=mach bfd_gas=yes ;;
|
||||
obj_format=aout emulation=mach bfd_gas=yes ;;
|
||||
i960-*-bout) obj_format=bout ;;
|
||||
esac
|
||||
@end example
|
||||
@ -8311,7 +8311,7 @@ and in @file{configure.ac}, use:
|
||||
|
||||
@example
|
||||
AC_CONFIG_LINKS(host.h:config/$machine.h
|
||||
object.h:config/$obj_format.h)
|
||||
object.h:config/$obj_format.h)
|
||||
@end example
|
||||
|
||||
You can also use the host system type to find cross-compilation tools.
|
||||
@ -8505,11 +8505,11 @@ Options}). The following example will make this clearer.
|
||||
@example
|
||||
AC_DEFUN(TEST_MACRO,
|
||||
[AC_ARG_WITH(foo,
|
||||
AC_HELP_STRING([--with-foo],
|
||||
[use foo (default is NO)]),
|
||||
ac_cv_use_foo=$withval, ac_cv_use_foo=no),
|
||||
AC_HELP_STRING([--with-foo],
|
||||
[use foo (default is NO)]),
|
||||
ac_cv_use_foo=$withval, ac_cv_use_foo=no),
|
||||
AC_CACHE_CHECK(whether to use foo,
|
||||
ac_cv_use_foo, ac_cv_use_foo=no)])
|
||||
ac_cv_use_foo, ac_cv_use_foo=no)])
|
||||
@end example
|
||||
|
||||
Please note that the call to @code{AC_HELP_STRING} is @strong{unquoted}.
|
||||
@ -8528,8 +8528,8 @@ arguments, as shown in the following example.
|
||||
@example
|
||||
AC_DEFUN(MY_ARG_WITH,
|
||||
[AC_ARG_WITH([$1],
|
||||
AC_HELP_STRING([--with-$1], [use $1 (default is $2)]),
|
||||
ac_cv_use_$1=$withval, ac_cv_use_$1=no),
|
||||
AC_HELP_STRING([--with-$1], [use $1 (default is $2)]),
|
||||
ac_cv_use_$1=$withval, ac_cv_use_$1=no),
|
||||
AC_CACHE_CHECK(whether to use $1, ac_cv_use_$1, ac_cv_use_$1=$2)])
|
||||
@end example
|
||||
@end defmac
|
||||
@ -8645,11 +8645,11 @@ Here is how to use the variable @code{program_transform_name} in a
|
||||
@example
|
||||
transform = @@program_transform_name@@
|
||||
install: all
|
||||
$(INSTALL_PROGRAM) myprog $(bindir)/`echo myprog | \
|
||||
sed '$(transform)'`
|
||||
$(INSTALL_PROGRAM) myprog $(bindir)/`echo myprog | \
|
||||
sed '$(transform)'`
|
||||
|
||||
uninstall:
|
||||
rm -f $(bindir)/`echo myprog | sed '$(transform)'`
|
||||
rm -f $(bindir)/`echo myprog | sed '$(transform)'`
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
@ -8658,15 +8658,15 @@ If you have more than one program to install, you can do it in a loop:
|
||||
@example
|
||||
PROGRAMS = cp ls rm
|
||||
install:
|
||||
for p in $(PROGRAMS); do \
|
||||
$(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p | \
|
||||
sed '$(transform)'`; \
|
||||
done
|
||||
for p in $(PROGRAMS); do \
|
||||
$(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p | \
|
||||
sed '$(transform)'`; \
|
||||
done
|
||||
|
||||
uninstall:
|
||||
for p in $(PROGRAMS); do \
|
||||
rm -f $(bindir)/`echo $$p | sed '$(transform)'`; \
|
||||
done
|
||||
for p in $(PROGRAMS); do \
|
||||
rm -f $(bindir)/`echo $$p | sed '$(transform)'`; \
|
||||
done
|
||||
@end example
|
||||
|
||||
Whether to do the transformations on documentation files (Texinfo or
|
||||
@ -8894,11 +8894,11 @@ that rule:
|
||||
@group
|
||||
config.h: stamp-h
|
||||
stamp-h: config.h.in config.status
|
||||
./config.status config.h
|
||||
echo > stamp-h
|
||||
./config.status config.h
|
||||
echo > stamp-h
|
||||
|
||||
Makefile: Makefile.in config.status
|
||||
./config.status Makefile
|
||||
./config.status Makefile
|
||||
@end group
|
||||
@end example
|
||||
|
||||
@ -8969,13 +8969,13 @@ would be:
|
||||
@group
|
||||
config.h: stamp-h
|
||||
stamp-h: config.h.in config.status
|
||||
CONFIG_COMMANDS= CONFIG_LINKS= CONFIG_FILES= \
|
||||
CONFIG_HEADERS=config.h ./config.status
|
||||
echo > stamp-h
|
||||
CONFIG_COMMANDS= CONFIG_LINKS= CONFIG_FILES= \
|
||||
CONFIG_HEADERS=config.h ./config.status
|
||||
echo > stamp-h
|
||||
|
||||
Makefile: Makefile.in config.status
|
||||
CONFIG_COMMANDS= CONFIG_LINKS= CONFIG_HEADERS= \
|
||||
CONFIG_FILES=Makefile ./config.status
|
||||
CONFIG_COMMANDS= CONFIG_LINKS= CONFIG_HEADERS= \
|
||||
CONFIG_FILES=Makefile ./config.status
|
||||
@end group
|
||||
@end example
|
||||
|
||||
@ -9021,12 +9021,12 @@ package for distribution were:
|
||||
@example
|
||||
@group
|
||||
configure.ac --. .------> autoconf* -----> configure
|
||||
+---+
|
||||
+---+
|
||||
[aclocal.m4] --+ `---.
|
||||
[acsite.m4] ---' |
|
||||
+--> [autoheader*] -> [config.h.in]
|
||||
+--> [autoheader*] -> [config.h.in]
|
||||
[acconfig.h] ----. |
|
||||
+-----'
|
||||
+-----'
|
||||
[config.h.top] --+
|
||||
[config.h.bot] --'
|
||||
@end group
|
||||
@ -9161,9 +9161,9 @@ This macro is equivalent to:
|
||||
|
||||
@example
|
||||
AC_CHECK_TYPE([@var{type}],
|
||||
[AC_DEFINE([@var{type}], [@var{default}],
|
||||
[Define to `@var{default}' if <sys/types.h>
|
||||
does not define.])])
|
||||
[AC_DEFINE([@var{type}], [@var{default}],
|
||||
[Define to `@var{default}' if <sys/types.h>
|
||||
does not define.])])
|
||||
@end example
|
||||
|
||||
In order to keep backward compatibility, the two versions of
|
||||
@ -9235,7 +9235,7 @@ means to check the nature of the host is using
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])[]dnl
|
||||
case $host_os in
|
||||
*cygwin* ) CYGWIN=yes;;
|
||||
* ) CYGWIN=no;;
|
||||
* ) CYGWIN=no;;
|
||||
esac
|
||||
@end example
|
||||
|
||||
@ -9443,7 +9443,7 @@ version of:
|
||||
|
||||
@example
|
||||
AC_LINK_FILES(config/$machine.h config/$obj_format.h,
|
||||
host.h object.h)
|
||||
host.h object.h)
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
@ -9451,7 +9451,7 @@ is:
|
||||
|
||||
@example
|
||||
AC_CONFIG_LINKS(host.h:config/$machine.h
|
||||
object.h:config/$obj_format.h)
|
||||
object.h:config/$obj_format.h)
|
||||
@end example
|
||||
@end defmac
|
||||
|
||||
@ -9555,7 +9555,7 @@ interface is equivalent to:
|
||||
@group
|
||||
AC_CONFIG_FILES(@var{file}@dots{})
|
||||
AC_CONFIG_COMMANDS([default],
|
||||
@var{extra-cmds}, @var{init-cmds})
|
||||
@var{extra-cmds}, @var{init-cmds})
|
||||
AC_OUTPUT
|
||||
@end group
|
||||
@end example
|
||||
@ -9573,9 +9573,9 @@ Here is an unrealistic example:
|
||||
@example
|
||||
fubar=27
|
||||
AC_OUTPUT_COMMANDS([echo this is extra $fubar, and so on.],
|
||||
fubar=$fubar)
|
||||
fubar=$fubar)
|
||||
AC_OUTPUT_COMMANDS([echo this is another, extra, bit],
|
||||
[echo init bit])
|
||||
[echo init bit])
|
||||
@end example
|
||||
|
||||
Aside from the fact that @code{AC_CONFIG_COMMANDS} requires an
|
||||
@ -9822,8 +9822,8 @@ AC_EGREP_CPP(yes,
|
||||
[#if defined M_XENIX && !defined M_UNIX
|
||||
yes
|
||||
#endif],
|
||||
[AC_MSG_RESULT([yes]); XENIX=yes],
|
||||
[AC_MSG_RESULT([no]); XENIX=])
|
||||
[AC_MSG_RESULT([yes]); XENIX=yes],
|
||||
[AC_MSG_RESULT([no]); XENIX=])
|
||||
@end example
|
||||
@end defmac
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user