[BACK]Return to config.h.in CVS log [TXT][DIR] Up to [local] / src / usr.bin / sudo

Diff for /src/usr.bin/sudo/Attic/config.h.in between version 1.14 and 1.15

version 1.14, 2004/01/12 19:13:20 version 1.15, 2004/09/28 15:10:51
Line 3 
Line 3 
 #ifndef _SUDO_CONFIG_H  #ifndef _SUDO_CONFIG_H
 #define _SUDO_CONFIG_H  #define _SUDO_CONFIG_H
   
 /* Define if the `syslog' function returns a non-zero int to denote failure.  /* Define to 1 if the `syslog' function returns a non-zero int to denote
    */     failure. */
 #undef BROKEN_SYSLOG  #undef BROKEN_SYSLOG
   
 /* Define if you want the insults from the "classic" version sudo. */  /* Define to 1 if you want the insults from the "classic" version sudo. */
 #undef CLASSIC_INSULTS  #undef CLASSIC_INSULTS
   
 /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP  /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
Line 15 
Line 15 
    */     */
 #undef CRAY_STACKSEG_END  #undef CRAY_STACKSEG_END
   
 /* Define if you want insults culled from the twisted minds of CSOps. */  /* Define to 1 if you want insults culled from the twisted minds of CSOps. */
 #undef CSOPS_INSULTS  #undef CSOPS_INSULTS
   
 /* Define to 1 if using `alloca.c'. */  /* Define to 1 if using `alloca.c'. */
 #undef C_ALLOCA  #undef C_ALLOCA
   
 /* Define if you want sudo to display "command not allowed" instead of  /* Define to 1 if you want sudo to display "command not allowed" instead of
    "command not found" when a command cannot be found. */     "command not found" when a command cannot be found. */
 #undef DONT_LEAK_PATH_INFO  #undef DONT_LEAK_PATH_INFO
   
 /* A colon-separated list of pathnames to be used as the editor for visudo. */  /* A colon-separated list of pathnames to be used as the editor for visudo. */
 #undef EDITOR  #undef EDITOR
   
 /* Define if you want visudo to honor the EDITOR and VISUAL env variables. */  /* Define to 1 if you want visudo to honor the EDITOR and VISUAL env
      variables. */
 #undef ENV_EDITOR  #undef ENV_EDITOR
   
 /* If defined, users in this group need not enter a passwd (ie "sudo"). */  /* If defined, users in this group need not enter a passwd (ie "sudo"). */
 #undef EXEMPTGROUP  #undef EXEMPTGROUP
   
 /* Define if you want to require fully qualified hosts in sudoers. */  /* Define to 1 if you want to require fully qualified hosts in sudoers. */
 #undef FQDN  #undef FQDN
   
 /* Define if you want insults from the "Goon Show". */  /* Define to 1 if you want insults from the "Goon Show". */
 #undef GOONS_INSULTS  #undef GOONS_INSULTS
   
 /* Define if you want 2001-like insults. */  /* Define to 1 if you want 2001-like insults. */
 #undef HAL_INSULTS  #undef HAL_INSULTS
   
 /* Define if you use AFS. */  /* Define to 1 if you use AFS. */
 #undef HAVE_AFS  #undef HAVE_AFS
   
 /* Define to 1 if you have `alloca', as a function or macro. */  /* Define to 1 if you have `alloca', as a function or macro. */
Line 56 
Line 57 
 /* Define to 1 if you have the `asprintf' function. */  /* Define to 1 if you have the `asprintf' function. */
 #undef HAVE_ASPRINTF  #undef HAVE_ASPRINTF
   
 /* Define if you use AIX general authentication. */  /* Define to 1 if you use AIX general authentication. */
 #undef HAVE_AUTHENTICATE  #undef HAVE_AUTHENTICATE
   
 /* Define to 1 if you have the `bigcrypt' function. */  /* Define to 1 if you have the `bigcrypt' function. */
 #undef HAVE_BIGCRYPT  #undef HAVE_BIGCRYPT
   
 /* Define if you use BSD authentication. */  /* Define to 1 if you use BSD authentication. */
 #undef HAVE_BSD_AUTH_H  #undef HAVE_BSD_AUTH_H
   
 /* Define to 1 if you have the `closefrom' function. */  /* Define to 1 if you have the `closefrom' function. */
 #undef HAVE_CLOSEFROM  #undef HAVE_CLOSEFROM
   
 /* Define if you use OSF DCE. */  /* Define to 1 if you use OSF DCE. */
 #undef HAVE_DCE  #undef HAVE_DCE
   
   /* Define to 1 if your `DIR' contains dd_fd. */
   #undef HAVE_DD_FD
   
 /* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.  /* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
    */     */
 #undef HAVE_DIRENT_H  #undef HAVE_DIRENT_H
   
   /* Define to 1 if you have the `dirfd' function or macro. */
   #undef HAVE_DIRFD
   
 /* Define to 1 if you have the `dispcrypt' function. */  /* Define to 1 if you have the `dispcrypt' function. */
 #undef HAVE_DISPCRYPT  #undef HAVE_DISPCRYPT
   
Line 84 
Line 91 
 /* Define to 1 if you have the `flock' function. */  /* Define to 1 if you have the `flock' function. */
 #undef HAVE_FLOCK  #undef HAVE_FLOCK
   
 /* Define if you have the `fnmatch' function. */  /* Define to 1 if you have the `fnmatch' function. */
 #undef HAVE_FNMATCH  #undef HAVE_FNMATCH
   
 /* Define to 1 if you have the `freeifaddrs' function. */  /* Define to 1 if you have the `freeifaddrs' function. */
Line 93 
Line 100 
 /* Define to 1 if you have the `fstat' function. */  /* Define to 1 if you have the `fstat' function. */
 #undef HAVE_FSTAT  #undef HAVE_FSTAT
   
 /* Define if you use the FWTK authsrv daemon. */  /* Define to 1 if you have the `futime' function. */
   #undef HAVE_FUTIME
   
   /* Define to 1 if you have the `futimes' function. */
   #undef HAVE_FUTIMES
   
   /* Define to 1 if you have the `futimesat' function. */
   #undef HAVE_FUTIMESAT
   
   /* Define to 1 if you use the FWTK authsrv daemon. */
 #undef HAVE_FWTK  #undef HAVE_FWTK
   
 /* Define if you have the `getauthuid' function. (ULTRIX 4.x shadow passwords)  /* Define to 1 if you have the `getauthuid' function. (ULTRIX 4.x shadow
    */     passwords) */
 #undef HAVE_GETAUTHUID  #undef HAVE_GETAUTHUID
   
 /* Define to 1 if you have the `getcwd' function. */  /* Define to 1 if you have the `getcwd' function. */
Line 112 
Line 128 
 /* Define to 1 if you have the `getprogname' function. */  /* Define to 1 if you have the `getprogname' function. */
 #undef HAVE_GETPROGNAME  #undef HAVE_GETPROGNAME
   
 /* Define if you have the `getprpwnam' function. (SecureWare-style shadow  /* Define to 1 if you have the `getprpwnam' function. (SecureWare-style shadow
    passwords) */     passwords) */
 #undef HAVE_GETPRPWNAM  #undef HAVE_GETPRPWNAM
   
 /* Define if you have the `getpwanam' function. (SunOS 4.x shadow passwords)  /* Define to 1 if you have the `getpwanam' function. (SunOS 4.x shadow
    */     passwords) */
 #undef HAVE_GETPWANAM  #undef HAVE_GETPWANAM
   
 /* Define if you have the `getspnam' function (SVR4-style shadow passwords) */  /* Define to 1 if you have the `getspnam' function (SVR4-style shadow
      passwords) */
 #undef HAVE_GETSPNAM  #undef HAVE_GETSPNAM
   
 /* Define if you have the `getspwuid' function. (HP-UX <= 9.X shadow  /* Define to 1 if you have the `getspwuid' function. (HP-UX <= 9.X shadow
    passwords) */     passwords) */
 #undef HAVE_GETSPWUID  #undef HAVE_GETSPWUID
   
 /* Define if your Kerberos is Heimdal. */  /* Define to 1 if you have the `getttimeofday' function. */
   #undef HAVE_GETTTIMEOFDAY
   
   /* Define to 1 if your Kerberos is Heimdal. */
 #undef HAVE_HEIMDAL  #undef HAVE_HEIMDAL
   
 /* Define to 1 if you have the `initgroups' function. */  /* Define to 1 if you have the `initgroups' function. */
Line 145 
Line 165 
 /* Define if you have isblank(3). */  /* Define if you have isblank(3). */
 #undef HAVE_ISBLANK  #undef HAVE_ISBLANK
   
 /* Define if you have the `iscomsec' function. (HP-UX >= 10.x check for shadow  /* Define to 1 if you have the `iscomsec' function. (HP-UX >= 10.x check for
    enabled) */     shadow enabled) */
 #undef HAVE_ISCOMSEC  #undef HAVE_ISCOMSEC
   
 /* Define if you have the `issecure' function. (SunOS 4.x check for shadow  /* Define to 1 if you have the `issecure' function. (SunOS 4.x check for
    enabled) */     shadow enabled) */
 #undef HAVE_ISSECURE  #undef HAVE_ISSECURE
   
 /* Define if you use Kerberos IV. */  /* Define to 1 if you use Kerberos IV. */
 #undef HAVE_KERB4  #undef HAVE_KERB4
   
 /* Define if you use Kerberos V. */  /* Define to 1 if you use Kerberos V. */
 #undef HAVE_KERB5  #undef HAVE_KERB5
   
   /* Define to 1 if your LDAP needs <lber.h>. (OpenLDAP does not) */
   #undef HAVE_LBER_H
   
   /* Define to 1 if you use LDAP for sudoers. */
   #undef HAVE_LDAP
   
   /* Define to 1 if you have the `ldap_initialize' function. */
   #undef HAVE_LDAP_INITIALIZE
   
   /* Define to 1 if you have the `ldap_start_tls_s' function. */
   #undef HAVE_LDAP_START_TLS_S
   
 /* Define to 1 if you have the `lockf' function. */  /* Define to 1 if you have the `lockf' function. */
 #undef HAVE_LOCKF  #undef HAVE_LOCKF
   
Line 192 
Line 224 
 /* Define to 1 if you have the <netgroup.h> header file. */  /* Define to 1 if you have the <netgroup.h> header file. */
 #undef HAVE_NETGROUP_H  #undef HAVE_NETGROUP_H
   
 /* Define if you use NRL OPIE. */  /* Define to 1 if you use NRL OPIE. */
 #undef HAVE_OPIE  #undef HAVE_OPIE
   
 /* Define if you use PAM. */  /* Define to 1 if you use PAM authentication. */
 #undef HAVE_PAM  #undef HAVE_PAM
   
   /* Define to 1 if you have the <pam/pam_appl.h> header file. */
   #undef HAVE_PAM_PAM_APPL_H
   
 /* Define to 1 if you have the <paths.h> header file. */  /* Define to 1 if you have the <paths.h> header file. */
 #undef HAVE_PATHS_H  #undef HAVE_PATHS_H
   
 /* Define if your struct sockadr has an sa_len field. */  /* Define if your struct sockadr has an sa_len field. */
 #undef HAVE_SA_LEN  #undef HAVE_SA_LEN
   
 /* Define if you use SecurID. */  /* Define to 1 if you use SecurID for authentication. */
 #undef HAVE_SECURID  #undef HAVE_SECURID
   
   /* Define to 1 if you have the `seteuid' function. */
   #undef HAVE_SETEUID
   
 /* Define to 1 if you have the `setresuid' function. */  /* Define to 1 if you have the `setresuid' function. */
 #undef HAVE_SETRESUID  #undef HAVE_SETRESUID
   
Line 219 
Line 257 
 /* Define to 1 if you have the `set_auth_parameters' function. */  /* Define to 1 if you have the `set_auth_parameters' function. */
 #undef HAVE_SET_AUTH_PARAMETERS  #undef HAVE_SET_AUTH_PARAMETERS
   
 /* Define if you use SIA. */  /* Define to 1 if you use SIA authentication. */
 #undef HAVE_SIA  #undef HAVE_SIA
   
 /* Define to 1 if you have the `sigaction' function. */  /* Define to 1 if you have the `sigaction' function. */
 #undef HAVE_SIGACTION  #undef HAVE_SIGACTION
   
 /* Define if <signal.h> has the sigaction_t typedef. */  /* Define to 1 if <signal.h> has the sigaction_t typedef. */
 #undef HAVE_SIGACTION_T  #undef HAVE_SIGACTION_T
   
 /* Define to 1 if the system has the type `sig_atomic_t'. */  /* Define to 1 if the system has the type `sig_atomic_t'. */
 #undef HAVE_SIG_ATOMIC_T  #undef HAVE_SIG_ATOMIC_T
   
 /* Define if you use S/Key. */  /* Define to 1 if you use S/Key. */
 #undef HAVE_SKEY  #undef HAVE_SKEY
   
 /* Define if your S/Key library has skeyaccess(). */  /* Define to 1 if your S/Key library has skeyaccess(). */
 #undef HAVE_SKEYACCESS  #undef HAVE_SKEYACCESS
   
 /* Define to 1 if you have the `snprintf' function. */  /* Define to 1 if you have the `snprintf' function. */
Line 273 
Line 311 
 /* Define to 1 if you have the `strrchr' function. */  /* Define to 1 if you have the `strrchr' function. */
 #undef HAVE_STRRCHR  #undef HAVE_STRRCHR
   
   /* Define to 1 if your struct stat has an st_mtim member */
   #undef HAVE_ST_MTIM
   
   /* Define to 1 if your struct stat has an st_mtimespec member */
   #undef HAVE_ST_MTIMESPEC
   
 /* Define to 1 if you have the `sysconf' function. */  /* Define to 1 if you have the `sysconf' function. */
 #undef HAVE_SYSCONF  #undef HAVE_SYSCONF
   
Line 299 
Line 343 
 /* Define to 1 if you have the <sys/types.h> header file. */  /* Define to 1 if you have the <sys/types.h> header file. */
 #undef HAVE_SYS_TYPES_H  #undef HAVE_SYS_TYPES_H
   
 /* Define if you have the <termios.h> header file and the `tcgetattr'  /* Define to 1 if you have the <termios.h> header file and the `tcgetattr'
    function. */     function. */
 #undef HAVE_TERMIOS_H  #undef HAVE_TERMIOS_H
   
 /* Define to 1 if you have the <termio.h> header file. */  /* Define to 1 if you have the <termio.h> header file. */
 #undef HAVE_TERMIO_H  #undef HAVE_TERMIO_H
   
   /* Define to 1 if you have struct timespec in sys/time.h */
   #undef HAVE_TIMESPEC
   
 /* Define to 1 if you have the `tzset' function. */  /* Define to 1 if you have the `tzset' function. */
 #undef HAVE_TZSET  #undef HAVE_TZSET
   
 /* Define to 1 if you have the <unistd.h> header file. */  /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H  #undef HAVE_UNISTD_H
   
 /* Define to 1 if you have the `utime' function. */  /* Define to 1 if you have the `utimes' function. */
 #undef HAVE_UTIME  #undef HAVE_UTIMES
   
 /* Define to 1 if you have the <utime.h> header file. */  /* Define to 1 if you have the <utime.h> header file. */
 #undef HAVE_UTIME_H  #undef HAVE_UTIME_H
   
 /* Define if you have a POSIX utime() (uses struct utimbuf). */  
 #undef HAVE_UTIME_POSIX  
   
 /* Define to 1 if you have the `vasprintf' function. */  /* Define to 1 if you have the `vasprintf' function. */
 #undef HAVE_VASPRINTF  #undef HAVE_VASPRINTF
   
Line 336 
Line 380 
 /* Define to 1 if you have the `_innetgr' function. */  /* Define to 1 if you have the `_innetgr' function. */
 #undef HAVE__INNETGR  #undef HAVE__INNETGR
   
 /* Define if your crt0.o defines the __progname symbol for you. */  /* Define to 1 if your crt0.o defines the __progname symbol for you. */
 #undef HAVE___PROGNAME  #undef HAVE___PROGNAME
   
 /* Define if you want the hostname to be entered into the log file. */  /* Define to 1 if you want the hostname to be entered into the log file. */
 #undef HOST_IN_LOG  #undef HOST_IN_LOG
   
 /* Define if you want to ignore '.' and empty $PATH elements */  /* Define to 1 if you want to ignore '.' and empty PATH elements */
 #undef IGNORE_DOT_PATH  #undef IGNORE_DOT_PATH
   
 /* The message given when a bad password is entered. */  /* The message given when a bad password is entered. */
Line 357 
Line 401 
 /* Define if sizeof(long) == sizeof(long long). */  /* Define if sizeof(long) == sizeof(long long). */
 #undef LONG_IS_QUAD  #undef LONG_IS_QUAD
   
 /* Define if you want a two line OTP (S/Key or OPIE) prompt. */  /* Define to 1 if you want a two line OTP (S/Key or OPIE) prompt. */
 #undef LONG_OTP_PROMPT  #undef LONG_OTP_PROMPT
   
 /* The subject of the mail sent by sudo to the MAILTO user/address. */  /* The subject of the mail sent by sudo to the MAILTO user/address. */
Line 373 
Line 417 
    */     */
 #undef MAX_UID_T_LEN  #undef MAX_UID_T_LEN
   
 /* Define if you don't want sudo to prompt for a password by default. */  /* Define to 1 if you don't want sudo to prompt for a password by default. */
 #undef NO_AUTHENTICATION  #undef NO_AUTHENTICATION
   
 /* Define if you don't want users to get the lecture the first they user sudo.  /* Define to 1 if you don't want users to get the lecture the first they user
    */     sudo. */
 #undef NO_LECTURE  #undef NO_LECTURE
   
 /* Define to avoid runing the mailer as root. */  /* Define to avoid runing the mailer as root. */
 #undef NO_ROOT_MAILER  #undef NO_ROOT_MAILER
   
 /* Define if root should not be allowed to use sudo. */  /* Define to 1 if root should not be allowed to use sudo. */
 #undef NO_ROOT_SUDO  #undef NO_ROOT_SUDO
   
 /* Define to avoid using POSIX saved ids. */  /* Define to avoid using POSIX saved ids. */
Line 395 
Line 439 
 /* The passwd prompt timeout (in minutes). */  /* The passwd prompt timeout (in minutes). */
 #undef PASSWORD_TIMEOUT  #undef PASSWORD_TIMEOUT
   
   /* Define to 1 to replace politically incorrect insults with less offensive
      ones. */
   #undef PC_INSULTS
   
 /* The syslog priority sudo will use for unsuccessful attempts/errors. */  /* The syslog priority sudo will use for unsuccessful attempts/errors. */
 #undef PRI_FAILURE  #undef PRI_FAILURE
   
Line 407 
Line 455 
 /* The user sudo should run commands as by default. */  /* The user sudo should run commands as by default. */
 #undef RUNAS_DEFAULT  #undef RUNAS_DEFAULT
   
 /* Define to override the user's path with a built-in one. */  /* Define to 1 to override the user's path with a built-in one. */
 #undef SECURE_PATH  #undef SECURE_PATH
   
 /* Define to send mail when the user is not allowed to run a command. */  /* Define to 1 to send mail when the user is not allowed to run a command. */
 #undef SEND_MAIL_WHEN_NOT_OK  #undef SEND_MAIL_WHEN_NOT_OK
   
 /* Define to send mail when the user is not allowed to run sudo on this host.  /* Define to 1 to send mail when the user is not allowed to run sudo on this
    */     host. */
 #undef SEND_MAIL_WHEN_NO_HOST  #undef SEND_MAIL_WHEN_NO_HOST
   
 /* Define to send mail when the user is not in the sudoers file. */  /* Define to 1 to send mail when the user is not in the sudoers file. */
 #undef SEND_MAIL_WHEN_NO_USER  #undef SEND_MAIL_WHEN_NO_USER
   
 /* Define if you want sudo to start a shell if given no arguments. */  /* Define to 1 if you want sudo to start a shell if given no arguments. */
 #undef SHELL_IF_NO_ARGS  #undef SHELL_IF_NO_ARGS
   
 /* Define if you want sudo to set $HOME in shell mode. */  /* Define to 1 if you want sudo to set $HOME in shell mode. */
 #undef SHELL_SETS_HOME  #undef SHELL_SETS_HOME
   
 /* If using the C implementation of alloca, define if you know the  /* If using the C implementation of alloca, define if you know the
Line 437 
Line 485 
 /* Define to 1 if you have the ANSI C header files. */  /* Define to 1 if you have the ANSI C header files. */
 #undef STDC_HEADERS  #undef STDC_HEADERS
   
 /* Define if the code in interfaces.c does not compile for you. */  /* Define to 1 if the code in interfaces.c does not compile for you. */
 #undef STUB_LOAD_INTERFACES  #undef STUB_LOAD_INTERFACES
   
 /* The umask that the root-run prog should use. */  /* The umask that the root-run prog should use. */
Line 449 
Line 497 
 /* The number of tries a user gets to enter their password. */  /* The number of tries a user gets to enter their password. */
 #undef TRIES_FOR_PASSWORD  #undef TRIES_FOR_PASSWORD
   
 /* Define if you wish to use execv() instead of execvp() when running  /* Define to 1 if you wish to use execv() instead of execvp() when running
    programs. */     programs. */
 #undef USE_EXECV  #undef USE_EXECV
   
 /* Define if you want to insult the user for entering an incorrect password.  /* Define to 1 if you want to insult the user for entering an incorrect
    */     password. */
 #undef USE_INSULTS  #undef USE_INSULTS
   
 /* Define if you use stow packaging. */  /* Define to 1 if you use GNU stow packaging. */
 #undef USE_STOW  #undef USE_STOW
   
 /* Define if you want a different ticket file for each tty. */  /* Define to 1 if you want a different ticket file for each tty. */
 #undef USE_TTY_TICKETS  #undef USE_TTY_TICKETS
   
 /* Define to "void" if your compiler supports void pointers, else use "char".  /* Define to "void" if your compiler supports void pointers, else use "char".
Line 517 
Line 565 
 #undef volatile  #undef volatile
   
 /*  /*
    * Macros to pull sec and nsec parts of mtime from struct stat.
    */
   #ifdef HAVE_ST_MTIM
   # define mtim_getsec(_x)        ((_x).st_mtim.tv_sec)
   # define mtim_getnsec(_x)       ((_x).st_mtim.tv_nsec)
   #else
   # ifdef HAVE_ST_MTIMESPEC
   #  define mtim_getsec(_x)       ((_x).st_mtimespec.tv_sec)
   #  define mtim_getnsec(_x)      ((_x).st_mtimespec.tv_nsec)
   # else
   #  define mtim_getsec(_x)       ((_x).st_mtime)
   #  define mtim_getnsec(_x)      (0)
   # endif /* HAVE_ST_MTIMESPEC */
   #endif /* HAVE_ST_MTIM */
   
   /*
  * Emulate a subset of waitpid() if we don't have it.   * Emulate a subset of waitpid() if we don't have it.
  */   */
 #ifdef HAVE_WAITPID  #ifdef HAVE_WAITPID
Line 528 
Line 592 
 #endif  #endif
   
 /* GNU stow needs /etc/sudoers to be a symlink. */  /* GNU stow needs /etc/sudoers to be a symlink. */
 #ifdef HAVE_STOW  #ifdef USE_STOW
 # define stat_sudoers   stat  # define stat_sudoers   stat
 #else  #else
 # define stat_sudoers   lstat  # define stat_sudoers   lstat
 #endif  #endif
   
 /* Solaris doesn't use const qualifiers in PAM. */  
 #ifdef sun  
 # define PAM_CONST  
 #else  
 # define PAM_CONST      const  
 #endif  
   
 #ifdef USE_EXECV  #ifdef USE_EXECV
 # define EXEC   execv  # define EXECV  execv
 #else  #else
 # define EXEC   execvp  # define EXECV  execvp
 #endif /* USE_EXECV */  #endif /* USE_EXECV */
   
   /* Macros to set/clear/test flags. */
   #undef SET
   #define SET(t, f)       ((t) |= (f))
   #undef CLR
   #define CLR(t, f)       ((t) &= ~(f))
   #undef ISSET
   #define ISSET(t, f)     ((t) & (f))
   
 /* New ANSI-style OS defs for HP-UX and ConvexOS. */  /* New ANSI-style OS defs for HP-UX and ConvexOS. */
 #if defined(hpux) && !defined(__hpux)  #if defined(hpux) && !defined(__hpux)

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.15