--- cp-original.c 2016-01-01 19:18:50.000000000 +0530 +++ cp-edited.c 2016-03-29 20:13:47.274362100 +0530 @@ -920,7 +920,7 @@ int c; bool ok; bool make_backups = false; - char *backup_suffix_string; + char *backup_suffix_string = NULL; char *version_control_string = NULL; struct cp_options x; bool copy_contents = false; @@ -939,10 +939,6 @@ selinux_enabled = (0 < is_selinux_enabled ()); cp_option_init (&x); - /* FIXME: consider not calling getenv for SIMPLE_BACKUP_SUFFIX unless - we'll actually use backup_suffix_string. */ - backup_suffix_string = getenv ("SIMPLE_BACKUP_SUFFIX"); - while ((c = getopt_long (argc, argv, "abdfHilLnprst:uvxPRS:TZ", long_opts, NULL)) != -1) @@ -1151,6 +1147,11 @@ usage (EXIT_FAILURE); } + /* If backup_suffix_string is still null (i.e. no --suffix or --backup = + numbered | existing), try to get it from environment. */ + if (!backup_suffix_string) + backup_suffix_string = getenv ("SIMPLE_BACKUP_SUFFIX"); + if (backup_suffix_string) simple_backup_suffix = xstrdup (backup_suffix_string);