text:
#include <stdio.h>

#include "constants.h"
#include "print_config.h"

#include "../conf/zsconfig.h"
#include "zsconfig.defaults.h"

#include "errors.h"
/* Hardcore preprocessor hackery, thanks to runehol/#scene.no. */
#define expand(x) x
#define stringize(x) expand(#x)
#define stringify(x) stringize(x)
void print_nondefault_config(void)
{
#ifndef BAD_CRC_is_defaulted
printf("#define BAD_CRC                                   %s\n", stringify(BAD_CRC));
#endif
#ifndef BAD_ZIP_is_defaulted
printf("#define BAD_ZIP                                   %s\n", stringify(BAD_ZIP));
#endif
#ifndef BANNED_BITRATE_is_defaulted
printf("#define BANNED_BITRATE                            %s\n", stringify(BANNED_BITRATE));
#endif
#ifndef BANNED_FILE_is_defaulted
printf("#define BANNED_FILE                               %s\n", stringify(BANNED_FILE));
#endif
#ifndef BANNED_GENRE_is_defaulted
printf("#define BANNED_GENRE                              %s\n", stringify(BANNED_GENRE));
#endif
#ifndef BANNED_YEAR_is_defaulted
printf("#define BANNED_YEAR                               %s\n", stringify(BANNED_YEAR));
#endif
#ifndef DOUBLE_SFV_is_defaulted
printf("#define DOUBLE_SFV                                %s\n", stringify(DOUBLE_SFV));
#endif
#ifndef DUPE_NFO_is_defaulted
printf("#define DUPE_NFO                                  %s\n", stringify(DUPE_NFO));
#endif
#ifndef EMPTY_FILE_is_defaulted
printf("#define EMPTY_FILE                                %s\n", stringify(EMPTY_FILE));
#endif
#ifndef EMPTY_SFV_is_defaulted
printf("#define EMPTY_SFV                                 %s\n", stringify(EMPTY_SFV));
#endif
#ifndef GROUPFILE_is_defaulted
printf("#define GROUPFILE                                 %s\n", stringify(GROUPFILE));
#endif
#ifndef NOT_IN_SFV_is_defaulted
printf("#define NOT_IN_SFV                                %s\n", stringify(NOT_IN_SFV));
#endif
#ifndef PASSWDFILE_is_defaulted
printf("#define PASSWDFILE                                %s\n", stringify(PASSWDFILE));
#endif
#ifndef SFV_FIRST_is_defaulted
printf("#define SFV_FIRST                                 %s\n", stringify(SFV_FIRST));
#endif
#ifndef SPEEDTEST_is_defaulted
printf("#define SPEEDTEST                                 %s\n", stringify(SPEEDTEST));
#endif
#ifndef UNKNOWN_FILE_is_defaulted
printf("#define UNKNOWN_FILE                              %s\n", stringify(UNKNOWN_FILE));
#endif
#ifndef ZIP_NFO_is_defaulted
printf("#define ZIP_NFO                                   %s\n", stringify(ZIP_NFO));
#endif
#ifndef accept_before_complete_is_defaulted
printf("#define accept_before_complete                    %s\n", (accept_before_complete == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef accept_script_is_defaulted
printf("#define accept_script                             %s\n", stringify(accept_script));
#endif
#ifndef affil_script_is_defaulted
printf("#define affil_script                              %s\n", stringify(affil_script));
#endif
#ifndef allow_dir_chown_in_ng_chown_is_defaulted
printf("#define allow_dir_chown_in_ng_chown               %s\n", (allow_dir_chown_in_ng_chown == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef allow_error2_in_unzip_is_defaulted
printf("#define allow_error2_in_unzip                     %s\n", (allow_error2_in_unzip == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef allow_file_resume_is_defaulted
printf("#define allow_file_resume                         %s\n", (allow_file_resume == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef allow_files_chown_in_ng_chown_is_defaulted
printf("#define allow_files_chown_in_ng_chown             %s\n", (allow_files_chown_in_ng_chown == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef allow_files_not_in_sfv_is_defaulted
printf("#define allow_files_not_in_sfv                    %s\n", (allow_files_not_in_sfv == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef allow_gid_change_in_ng_chown_is_defaulted
printf("#define allow_gid_change_in_ng_chown              %s\n", (allow_gid_change_in_ng_chown == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef allow_slash_in_sfv_is_defaulted
printf("#define allow_slash_in_sfv                        %s\n", (allow_slash_in_sfv == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef allow_uid_change_in_ng_chown_is_defaulted
printf("#define allow_uid_change_in_ng_chown              %s\n", (allow_uid_change_in_ng_chown == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef allowed_constant_bitrates_is_defaulted
printf("#define allowed_constant_bitrates                 %s\n", stringify(allowed_constant_bitrates));
#endif
#ifndef allowed_genres_is_defaulted
printf("#define allowed_genres                            %s\n", stringify(allowed_genres));
#endif
#ifndef allowed_types_is_defaulted
printf("#define allowed_types                             %s\n", stringify(allowed_types));
#endif
#ifndef allowed_types_exemption_dirs_is_defaulted
printf("#define allowed_types_exemption_dirs              %s\n", stringify(allowed_types_exemption_dirs));
#endif
#ifndef allowed_years_is_defaulted
printf("#define allowed_years                             %s\n", stringify(allowed_years));
#endif
#ifndef always_scan_audio_syms_is_defaulted
printf("#define always_scan_audio_syms                    %s\n", (always_scan_audio_syms == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef announce_norace_is_defaulted
printf("#define announce_norace                           %s\n", (announce_norace == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef audio_allowed_genre_check_is_defaulted
printf("#define audio_allowed_genre_check                 %s\n", (audio_allowed_genre_check == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef audio_artist_noid3_is_defaulted
printf("#define audio_artist_noid3                        %s\n", (audio_artist_noid3 == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef audio_artist_nosub_is_defaulted
printf("#define audio_artist_nosub                        %s\n", (audio_artist_nosub == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef audio_artist_path_is_defaulted
printf("#define audio_artist_path                         %s\n", stringify(audio_artist_path));
#endif
#ifndef audio_artist_sort_is_defaulted
printf("#define audio_artist_sort                         %s\n", (audio_artist_sort == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef audio_artist_sort_various_only_is_defaulted
printf("#define audio_artist_sort_various_only            %s\n", (audio_artist_sort_various_only == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef audio_banned_genre_check_is_defaulted
printf("#define audio_banned_genre_check                  %s\n", (audio_banned_genre_check == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef audio_cbr_check_is_defaulted
printf("#define audio_cbr_check                           %s\n", (audio_cbr_check == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef audio_cbr_warn_is_defaulted
printf("#define audio_cbr_warn                            %s\n", (audio_cbr_warn == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef audio_completebar_is_defaulted
printf("#define audio_completebar                         %s\n", (audio_completebar == DISABLED ? "DISABLED" : stringify(audio_completebar)));
#endif
#ifndef audio_genre_path_is_defaulted
printf("#define audio_genre_path                          %s\n", stringify(audio_genre_path));
#endif
#ifndef audio_genre_sort_is_defaulted
printf("#define audio_genre_sort                          %s\n", (audio_genre_sort == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef audio_genre_warn_is_defaulted
printf("#define audio_genre_warn                          %s\n", (audio_genre_warn == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef audio_group_path_is_defaulted
printf("#define audio_group_path                          %s\n", stringify(audio_group_path));
#endif
#ifndef audio_group_sort_is_defaulted
printf("#define audio_group_sort                          %s\n", (audio_group_sort == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef audio_ignored_languages_is_defaulted
printf("#define audio_ignored_languages                   %s\n", stringify(audio_ignored_languages));
#endif
#ifndef audio_language_path_is_defaulted
printf("#define audio_language_path                       %s\n", stringify(audio_language_path));
#endif
#ifndef audio_language_sort_is_defaulted
printf("#define audio_language_sort                       %s\n", (audio_language_sort == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef audio_nocheck_dirs_is_defaulted
printf("#define audio_nocheck_dirs                        %s\n", stringify(audio_nocheck_dirs));
#endif
#ifndef audio_nosort_dirs_is_defaulted
printf("#define audio_nosort_dirs                         %s\n", stringify(audio_nosort_dirs));
#endif
#ifndef audio_script_is_defaulted
printf("#define audio_script                              %s\n", stringify(audio_script));
#endif
#ifndef audio_script_cookies_is_defaulted
printf("#define audio_script_cookies                      %s\n", stringify(audio_script_cookies));
#endif
#ifndef audio_types_is_defaulted
printf("#define audio_types                               %s\n", stringify(audio_types));
#endif
#ifndef audio_year_check_is_defaulted
printf("#define audio_year_check                          %s\n", (audio_year_check == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef audio_year_path_is_defaulted
printf("#define audio_year_path                           %s\n", stringify(audio_year_path));
#endif
#ifndef audio_year_sort_is_defaulted
printf("#define audio_year_sort                           %s\n", (audio_year_sort == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef audio_year_warn_is_defaulted
printf("#define audio_year_warn                           %s\n", (audio_year_warn == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef banned_filelist_is_defaulted
printf("#define banned_filelist                           %s\n", stringify(banned_filelist));
#endif
#ifndef banned_genres_is_defaulted
printf("#define banned_genres                             %s\n", stringify(banned_genres));
#endif
#ifndef benchmark_mode_is_defaulted
printf("#define benchmark_mode                            %s\n", (benchmark_mode == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef change_spaces_to_underscore_in_ng_chown_is_defaulted
printf("#define change_spaces_to_underscore_in_ng_chown   %s\n", (change_spaces_to_underscore_in_ng_chown == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef charbar_filled_is_defaulted
printf("#define charbar_filled                            %s\n", stringify(charbar_filled));
#endif
#ifndef charbar_missing_is_defaulted
printf("#define charbar_missing                           %s\n", stringify(charbar_missing));
#endif
#ifndef check_for_banned_files_is_defaulted
printf("#define check_for_banned_files                    %s\n", (check_for_banned_files == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef check_for_missing_nfo_dirs_is_defaulted
printf("#define check_for_missing_nfo_dirs                %s\n", stringify(check_for_missing_nfo_dirs));
#endif
#ifndef check_for_missing_sample_dirs_is_defaulted
printf("#define check_for_missing_sample_dirs             %s\n", stringify(check_for_missing_sample_dirs));
#endif
#ifndef chmod_completebar_is_defaulted
printf("#define chmod_completebar                         %s\n", (chmod_completebar == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef cleanupdirs_is_defaulted
printf("#define cleanupdirs                               %s\n", stringify(cleanupdirs));
#endif
#ifndef cleanupdirs_dated_is_defaulted
printf("#define cleanupdirs_dated                         %s\n", stringify(cleanupdirs_dated));
#endif
#ifndef combine_path_is_defaulted
printf("#define combine_path                              %s\n", (combine_path == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef complete_script_is_defaulted
printf("#define complete_script                           %s\n", stringify(complete_script));
#endif
#ifndef create_incomplete_links_in_group_dirs_is_defaulted
printf("#define create_incomplete_links_in_group_dirs     %s\n", (create_incomplete_links_in_group_dirs == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef create_m3u_is_defaulted
printf("#define create_m3u                                %s\n", (create_m3u == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef create_missing_files_is_defaulted
printf("#define create_missing_files                      %s\n", (create_missing_files == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef create_missing_sample_link_is_defaulted
printf("#define create_missing_sample_link                %s\n", (create_missing_sample_link == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef create_missing_sfv_is_defaulted
printf("#define create_missing_sfv                        %s\n", (create_missing_sfv == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef create_missing_sfv_link_is_defaulted
printf("#define create_missing_sfv_link                   %s\n", (create_missing_sfv_link == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef custom_group_dirs_complete_message_is_defaulted
printf("#define custom_group_dirs_complete_message        %s\n", (custom_group_dirs_complete_message == DISABLED ? "DISABLED" : stringify(custom_group_dirs_complete_message)));
#endif
#ifndef days_back_cleanup_is_defaulted
printf("#define days_back_cleanup                         %s\n", stringify(days_back_cleanup));
#endif
#ifndef debug_altlog_is_defaulted
printf("#define debug_altlog                              %s\n", (debug_altlog == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef debug_announce_is_defaulted
printf("#define debug_announce                            %s\n", (debug_announce == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef debug_mode_is_defaulted
printf("#define debug_mode                                %s\n", (debug_mode == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef del_banned_release_is_defaulted
printf("#define del_banned_release                        %s\n", (del_banned_release == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef del_completebar_is_defaulted
printf("#define del_completebar                           %s\n", (del_completebar == DISABLED ? "DISABLED" : stringify(del_completebar)));
#endif
#ifndef del_progressmeter_is_defaulted
printf("#define del_progressmeter                         %s\n", stringify(del_progressmeter));
#endif
#ifndef del_progressmeter_audio_is_defaulted
printf("#define del_progressmeter_audio                   %s\n", stringify(del_progressmeter_audio));
#endif
#ifndef delbanned_script_is_defaulted
printf("#define delbanned_script                          %s\n", stringify(delbanned_script));
#endif
#ifndef delete_old_link_is_defaulted
printf("#define delete_old_link                           %s\n", (delete_old_link == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef deny_double_nfo_is_defaulted
printf("#define deny_double_nfo                           %s\n", (deny_double_nfo == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef deny_double_sfv_is_defaulted
printf("#define deny_double_sfv                           %s\n", (deny_double_sfv == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef deny_nfo_upload_in_zip_is_defaulted
printf("#define deny_nfo_upload_in_zip                    %s\n", (deny_nfo_upload_in_zip == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef deny_resume_sfv_is_defaulted
printf("#define deny_resume_sfv                           %s\n", (deny_resume_sfv == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef dirlogpath_is_defaulted
printf("#define dirlogpath                                %s\n", stringify(dirlogpath));
#endif
#ifndef disable_audio_complete_is_defaulted
printf("#define disable_audio_complete                    %s\n", (disable_audio_complete == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_audio_halfway_is_defaulted
printf("#define disable_audio_halfway                     %s\n", (disable_audio_halfway == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_audio_newleader_is_defaulted
printf("#define disable_audio_newleader                   %s\n", (disable_audio_newleader == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_audio_norace_complete_is_defaulted
printf("#define disable_audio_norace_complete             %s\n", (disable_audio_norace_complete == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_audio_norace_halfway_is_defaulted
printf("#define disable_audio_norace_halfway              %s\n", (disable_audio_norace_halfway == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_audio_race_is_defaulted
printf("#define disable_audio_race                        %s\n", (disable_audio_race == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_audio_sfv_is_defaulted
printf("#define disable_audio_sfv                         %s\n", (disable_audio_sfv == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_audio_update_is_defaulted
printf("#define disable_audio_update                      %s\n", (disable_audio_update == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_other_complete_is_defaulted
printf("#define disable_other_complete                    %s\n", (disable_other_complete == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_other_halfway_is_defaulted
printf("#define disable_other_halfway                     %s\n", (disable_other_halfway == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_other_newleader_is_defaulted
printf("#define disable_other_newleader                   %s\n", (disable_other_newleader == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_other_norace_complete_is_defaulted
printf("#define disable_other_norace_complete             %s\n", (disable_other_norace_complete == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_other_norace_halfway_is_defaulted
printf("#define disable_other_norace_halfway              %s\n", (disable_other_norace_halfway == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_other_race_is_defaulted
printf("#define disable_other_race                        %s\n", (disable_other_race == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_other_sfv_is_defaulted
printf("#define disable_other_sfv                         %s\n", (disable_other_sfv == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_other_update_is_defaulted
printf("#define disable_other_update                      %s\n", (disable_other_update == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_rar_complete_is_defaulted
printf("#define disable_rar_complete                      %s\n", (disable_rar_complete == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_rar_halfway_is_defaulted
printf("#define disable_rar_halfway                       %s\n", (disable_rar_halfway == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_rar_newleader_is_defaulted
printf("#define disable_rar_newleader                     %s\n", (disable_rar_newleader == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_rar_norace_complete_is_defaulted
printf("#define disable_rar_norace_complete               %s\n", (disable_rar_norace_complete == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_rar_norace_halfway_is_defaulted
printf("#define disable_rar_norace_halfway                %s\n", (disable_rar_norace_halfway == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_rar_race_is_defaulted
printf("#define disable_rar_race                          %s\n", (disable_rar_race == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_rar_sfv_is_defaulted
printf("#define disable_rar_sfv                           %s\n", (disable_rar_sfv == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_rar_update_is_defaulted
printf("#define disable_rar_update                        %s\n", (disable_rar_update == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_video_complete_is_defaulted
printf("#define disable_video_complete                    %s\n", (disable_video_complete == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_video_halfway_is_defaulted
printf("#define disable_video_halfway                     %s\n", (disable_video_halfway == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_video_newleader_is_defaulted
printf("#define disable_video_newleader                   %s\n", (disable_video_newleader == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_video_norace_complete_is_defaulted
printf("#define disable_video_norace_complete             %s\n", (disable_video_norace_complete == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_video_norace_halfway_is_defaulted
printf("#define disable_video_norace_halfway              %s\n", (disable_video_norace_halfway == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_video_race_is_defaulted
printf("#define disable_video_race                        %s\n", (disable_video_race == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_video_sfv_is_defaulted
printf("#define disable_video_sfv                         %s\n", (disable_video_sfv == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_video_update_is_defaulted
printf("#define disable_video_update                      %s\n", (disable_video_update == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_zip_complete_is_defaulted
printf("#define disable_zip_complete                      %s\n", (disable_zip_complete == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_zip_halfway_is_defaulted
printf("#define disable_zip_halfway                       %s\n", (disable_zip_halfway == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_zip_newleader_is_defaulted
printf("#define disable_zip_newleader                     %s\n", (disable_zip_newleader == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_zip_norace_complete_is_defaulted
printf("#define disable_zip_norace_complete               %s\n", (disable_zip_norace_complete == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_zip_norace_halfway_is_defaulted
printf("#define disable_zip_norace_halfway                %s\n", (disable_zip_norace_halfway == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_zip_race_is_defaulted
printf("#define disable_zip_race                          %s\n", (disable_zip_race == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_zip_sfv_is_defaulted
printf("#define disable_zip_sfv                           %s\n", (disable_zip_sfv == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef disable_zip_update_is_defaulted
printf("#define disable_zip_update                        %s\n", (disable_zip_update == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef dupepath_is_defaulted
printf("#define dupepath                                  %s\n", stringify(dupepath));
#endif
#ifndef enable_accept_script_is_defaulted
printf("#define enable_accept_script                      %s\n", (enable_accept_script == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef enable_affil_script_is_defaulted
printf("#define enable_affil_script                       %s\n", (enable_affil_script == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef enable_audio_script_is_defaulted
printf("#define enable_audio_script                       %s\n", (enable_audio_script == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef enable_complete_script_is_defaulted
printf("#define enable_complete_script                    %s\n", (enable_complete_script == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef enable_delbanned_script_is_defaulted
printf("#define enable_delbanned_script                   %s\n", (enable_delbanned_script == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef enable_files_ahead_is_defaulted
printf("#define enable_files_ahead                        %s\n", (enable_files_ahead == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef enable_nfo_script_is_defaulted
printf("#define enable_nfo_script                         %s\n", (enable_nfo_script == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef enable_rescan_script_is_defaulted
printf("#define enable_rescan_script                      %s\n", (enable_rescan_script == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef enable_sample_script_is_defaulted
printf("#define enable_sample_script                      %s\n", (enable_sample_script == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef enable_unduper_script_is_defaulted
printf("#define enable_unduper_script                     %s\n", (enable_unduper_script == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef exclude_non_sfv_dirs_is_defaulted
printf("#define exclude_non_sfv_dirs                      %s\n", (exclude_non_sfv_dirs == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef extract_nfo_is_defaulted
printf("#define extract_nfo                               %s\n", (extract_nfo == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef force_sfv_first_is_defaulted
printf("#define force_sfv_first                           %s\n", (force_sfv_first == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef get_competitor_list_is_defaulted
printf("#define get_competitor_list                       %s\n", (get_competitor_list == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef get_user_stats_is_defaulted
printf("#define get_user_stats                            %s\n", (get_user_stats == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef gl_sections_is_defaulted
printf("#define gl_sections                               %s\n", stringify(gl_sections));
#endif
#ifndef gl_userfiles_is_defaulted
printf("#define gl_userfiles                              %s\n", stringify(gl_userfiles));
#endif
#ifndef group_dirs_is_defaulted
printf("#define group_dirs                                %s\n", stringify(group_dirs));
#endif
#ifndef hide_affil_gname_is_defaulted
printf("#define hide_affil_gname                          %s\n", stringify(hide_affil_gname));
#endif
#ifndef hide_affil_groups_is_defaulted
printf("#define hide_affil_groups                         %s\n", stringify(hide_affil_groups));
#endif
#ifndef hide_affil_uname_is_defaulted
printf("#define hide_affil_uname                          %s\n", stringify(hide_affil_uname));
#endif
#ifndef hide_affil_users_is_defaulted
printf("#define hide_affil_users                          %s\n", stringify(hide_affil_users));
#endif
#ifndef hide_gname_is_defaulted
printf("#define hide_gname                                %s\n", stringify(hide_gname));
#endif
#ifndef hide_group_uploaders_is_defaulted
printf("#define hide_group_uploaders                      %s\n", (hide_group_uploaders == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef hide_uname_is_defaulted
printf("#define hide_uname                                %s\n", stringify(hide_uname));
#endif
#ifndef ignore_lock_timeout_is_defaulted
printf("#define ignore_lock_timeout                       %s\n", (ignore_lock_timeout == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef ignore_zero_size_is_defaulted
printf("#define ignore_zero_size                          %s\n", (ignore_zero_size == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef ignore_zero_sized_on_rescan_is_defaulted
printf("#define ignore_zero_sized_on_rescan               %s\n", (ignore_zero_sized_on_rescan == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef ignored_types_is_defaulted
printf("#define ignored_types                             %s\n", stringify(ignored_types));
#endif
#ifndef incomplete_base_nfo_indicator_is_defaulted
printf("#define incomplete_base_nfo_indicator             %s\n", stringify(incomplete_base_nfo_indicator));
#endif
#ifndef incomplete_base_sample_indicator_is_defaulted
printf("#define incomplete_base_sample_indicator          %s\n", stringify(incomplete_base_sample_indicator));
#endif
#ifndef incomplete_base_sfv_indicator_is_defaulted
printf("#define incomplete_base_sfv_indicator             %s\n", stringify(incomplete_base_sfv_indicator));
#endif
#ifndef incomplete_cd_indicator_is_defaulted
printf("#define incomplete_cd_indicator                   %s\n", stringify(incomplete_cd_indicator));
#endif
#ifndef incomplete_generic1_base_nfo_indicator_is_defaulted
printf("#define incomplete_generic1_base_nfo_indicator    %s\n", stringify(incomplete_generic1_base_nfo_indicator));
#endif
#ifndef incomplete_generic1_base_sample_indicator_is_defaulted
printf("#define incomplete_generic1_base_sample_indicator %s\n", stringify(incomplete_generic1_base_sample_indicator));
#endif
#ifndef incomplete_generic1_base_sfv_indicator_is_defaulted
printf("#define incomplete_generic1_base_sfv_indicator    %s\n", stringify(incomplete_generic1_base_sfv_indicator));
#endif
#ifndef incomplete_generic1_cd_indicator_is_defaulted
printf("#define incomplete_generic1_cd_indicator          %s\n", stringify(incomplete_generic1_cd_indicator));
#endif
#ifndef incomplete_generic1_indicator_is_defaulted
printf("#define incomplete_generic1_indicator             %s\n", stringify(incomplete_generic1_indicator));
#endif
#ifndef incomplete_generic1_nfo_indicator_is_defaulted
printf("#define incomplete_generic1_nfo_indicator         %s\n", stringify(incomplete_generic1_nfo_indicator));
#endif
#ifndef incomplete_generic1_path_is_defaulted
printf("#define incomplete_generic1_path                  %s\n", stringify(incomplete_generic1_path));
#endif
#ifndef incomplete_generic1_sample_indicator_is_defaulted
printf("#define incomplete_generic1_sample_indicator      %s\n", stringify(incomplete_generic1_sample_indicator));
#endif
#ifndef incomplete_generic1_sfv_indicator_is_defaulted
printf("#define incomplete_generic1_sfv_indicator         %s\n", stringify(incomplete_generic1_sfv_indicator));
#endif
#ifndef incomplete_generic2_base_nfo_indicator_is_defaulted
printf("#define incomplete_generic2_base_nfo_indicator    %s\n", stringify(incomplete_generic2_base_nfo_indicator));
#endif
#ifndef incomplete_generic2_base_sample_indicator_is_defaulted
printf("#define incomplete_generic2_base_sample_indicator %s\n", stringify(incomplete_generic2_base_sample_indicator));
#endif
#ifndef incomplete_generic2_base_sfv_indicator_is_defaulted
printf("#define incomplete_generic2_base_sfv_indicator    %s\n", stringify(incomplete_generic2_base_sfv_indicator));
#endif
#ifndef incomplete_generic2_cd_indicator_is_defaulted
printf("#define incomplete_generic2_cd_indicator          %s\n", stringify(incomplete_generic2_cd_indicator));
#endif
#ifndef incomplete_generic2_indicator_is_defaulted
printf("#define incomplete_generic2_indicator             %s\n", stringify(incomplete_generic2_indicator));
#endif
#ifndef incomplete_generic2_nfo_indicator_is_defaulted
printf("#define incomplete_generic2_nfo_indicator         %s\n", stringify(incomplete_generic2_nfo_indicator));
#endif
#ifndef incomplete_generic2_path_is_defaulted
printf("#define incomplete_generic2_path                  %s\n", stringify(incomplete_generic2_path));
#endif
#ifndef incomplete_generic2_sample_indicator_is_defaulted
printf("#define incomplete_generic2_sample_indicator      %s\n", stringify(incomplete_generic2_sample_indicator));
#endif
#ifndef incomplete_generic2_sfv_indicator_is_defaulted
printf("#define incomplete_generic2_sfv_indicator         %s\n", stringify(incomplete_generic2_sfv_indicator));
#endif
#ifndef incomplete_indicator_is_defaulted
printf("#define incomplete_indicator                      %s\n", stringify(incomplete_indicator));
#endif
#ifndef incomplete_nfo_indicator_is_defaulted
printf("#define incomplete_nfo_indicator                  %s\n", stringify(incomplete_nfo_indicator));
#endif
#ifndef incomplete_sample_indicator_is_defaulted
printf("#define incomplete_sample_indicator               %s\n", stringify(incomplete_sample_indicator));
#endif
#ifndef incomplete_sfv_indicator_is_defaulted
printf("#define incomplete_sfv_indicator                  %s\n", stringify(incomplete_sfv_indicator));
#endif
#ifndef incompleteislink_is_defaulted
printf("#define incompleteislink                          %s\n", stringify(incompleteislink));
#endif
#ifndef lock_optimize_is_defaulted
printf("#define lock_optimize                             %s\n", stringify(lock_optimize));
#endif
#ifndef log_is_defaulted
printf("#define log                                       %s\n", stringify(log));
#endif
#ifndef mark_empty_dirs_as_incomplete_on_rescan_is_defaulted
printf("#define mark_empty_dirs_as_incomplete_on_rescan   %s\n", (mark_empty_dirs_as_incomplete_on_rescan == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef mark_file_as_bad_is_defaulted
printf("#define mark_file_as_bad                          %s\n", (mark_file_as_bad == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef max_groups_in_top_is_defaulted
printf("#define max_groups_in_top                         %s\n", stringify(max_groups_in_top));
#endif
#ifndef max_seconds_wait_for_lock_is_defaulted
printf("#define max_seconds_wait_for_lock                 %s\n", stringify(max_seconds_wait_for_lock));
#endif
#ifndef max_users_in_top_is_defaulted
printf("#define max_users_in_top                          %s\n", stringify(max_users_in_top));
#endif
#ifndef message_audio_is_defaulted
printf("#define message_audio                             %s\n", (message_audio == DISABLED ? "DISABLED" : stringify(message_audio)));
#endif
#ifndef message_file_name_is_defaulted
printf("#define message_file_name                         %s\n", (message_file_name == DISABLED ? "DISABLED" : stringify(message_file_name)));
#endif
#ifndef message_footer_is_defaulted
printf("#define message_footer                            %s\n", (message_footer == DISABLED ? "DISABLED" : stringify(message_footer)));
#endif
#ifndef message_group_body_is_defaulted
printf("#define message_group_body                        %s\n", (message_group_body == DISABLED ? "DISABLED" : stringify(message_group_body)));
#endif
#ifndef message_group_footer_is_defaulted
printf("#define message_group_footer                      %s\n", (message_group_footer == DISABLED ? "DISABLED" : stringify(message_group_footer)));
#endif
#ifndef message_group_header_is_defaulted
printf("#define message_group_header                      %s\n", (message_group_header == DISABLED ? "DISABLED" : stringify(message_group_header)));
#endif
#ifndef message_header_is_defaulted
printf("#define message_header                            %s\n", (message_header == DISABLED ? "DISABLED" : stringify(message_header)));
#endif
#ifndef message_store_in_mirror_is_defaulted
printf("#define message_store_in_mirror                   %s\n", (message_store_in_mirror == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef message_user_body_is_defaulted
printf("#define message_user_body                         %s\n", (message_user_body == DISABLED ? "DISABLED" : stringify(message_user_body)));
#endif
#ifndef message_user_footer_is_defaulted
printf("#define message_user_footer                       %s\n", (message_user_footer == DISABLED ? "DISABLED" : stringify(message_user_footer)));
#endif
#ifndef message_user_header_is_defaulted
printf("#define message_user_header                       %s\n", (message_user_header == DISABLED ? "DISABLED" : stringify(message_user_header)));
#endif
#ifndef min_halfway_files_is_defaulted
printf("#define min_halfway_files                         %s\n", stringify(min_halfway_files));
#endif
#ifndef min_halfway_size_is_defaulted
printf("#define min_halfway_size                          %s\n", stringify(min_halfway_size));
#endif
#ifndef min_newleader_files_is_defaulted
printf("#define min_newleader_files                       %s\n", stringify(min_newleader_files));
#endif
#ifndef min_newleader_size_is_defaulted
printf("#define min_newleader_size                        %s\n", stringify(min_newleader_size));
#endif
#ifndef min_update_files_is_defaulted
printf("#define min_update_files                          %s\n", stringify(min_update_files));
#endif
#ifndef min_update_size_is_defaulted
printf("#define min_update_size                           %s\n", stringify(min_update_size));
#endif
#ifndef missing_sample_check_ignore_dividers_is_defaulted
printf("#define missing_sample_check_ignore_dividers      %s\n", stringify(missing_sample_check_ignore_dividers));
#endif
#ifndef missing_sample_check_ignore_list_is_defaulted
printf("#define missing_sample_check_ignore_list          %s\n", stringify(missing_sample_check_ignore_list));
#endif
#ifndef newleader_files_ahead_is_defaulted
printf("#define newleader_files_ahead                     %s\n", stringify(newleader_files_ahead));
#endif
#ifndef nfo_script_is_defaulted
printf("#define nfo_script                                %s\n", stringify(nfo_script));
#endif
#ifndef nocheck_dirs_is_defaulted
printf("#define nocheck_dirs                              %s\n", stringify(nocheck_dirs));
#endif
#ifndef noforce_sfv_first_dirs_is_defaulted
printf("#define noforce_sfv_first_dirs                    %s\n", stringify(noforce_sfv_first_dirs));
#endif
#ifndef other_completebar_is_defaulted
printf("#define other_completebar                         %s\n", (other_completebar == DISABLED ? "DISABLED" : stringify(other_completebar)));
#endif
#ifndef program_gid_is_defaulted
printf("#define program_gid                               %s\n", stringify(program_gid));
#endif
#ifndef program_uid_is_defaulted
printf("#define program_uid                               %s\n", stringify(program_uid));
#endif
#ifndef progressmeter_is_defaulted
printf("#define progressmeter                             %s\n", stringify(progressmeter));
#endif
#ifndef progressmeter_audio_is_defaulted
printf("#define progressmeter_audio                       %s\n", stringify(progressmeter_audio));
#endif
#ifndef rar_completebar_is_defaulted
printf("#define rar_completebar                           %s\n", (rar_completebar == DISABLED ? "DISABLED" : stringify(rar_completebar)));
#endif
#ifndef realtime_audio_info_is_defaulted
printf("#define realtime_audio_info                       %s\n", (realtime_audio_info == DISABLED ? "DISABLED" : stringify(realtime_audio_info)));
#endif
#ifndef realtime_group_body_is_defaulted
printf("#define realtime_group_body                       %s\n", (realtime_group_body == DISABLED ? "DISABLED" : stringify(realtime_group_body)));
#endif
#ifndef realtime_group_footer_is_defaulted
printf("#define realtime_group_footer                     %s\n", (realtime_group_footer == DISABLED ? "DISABLED" : stringify(realtime_group_footer)));
#endif
#ifndef realtime_group_header_is_defaulted
printf("#define realtime_group_header                     %s\n", (realtime_group_header == DISABLED ? "DISABLED" : stringify(realtime_group_header)));
#endif
#ifndef realtime_user_body_is_defaulted
printf("#define realtime_user_body                        %s\n", (realtime_user_body == DISABLED ? "DISABLED" : stringify(realtime_user_body)));
#endif
#ifndef realtime_user_footer_is_defaulted
printf("#define realtime_user_footer                      %s\n", (realtime_user_footer == DISABLED ? "DISABLED" : stringify(realtime_user_footer)));
#endif
#ifndef realtime_user_header_is_defaulted
printf("#define realtime_user_header                      %s\n", (realtime_user_header == DISABLED ? "DISABLED" : stringify(realtime_user_header)));
#endif
#ifndef remove_dot_debug_on_delete_is_defaulted
printf("#define remove_dot_debug_on_delete                %s\n", (remove_dot_debug_on_delete == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef remove_dot_files_on_delete_is_defaulted
printf("#define remove_dot_files_on_delete                %s\n", (remove_dot_files_on_delete == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef rescan_chdir_flags_is_defaulted
printf("#define rescan_chdir_flags                        %s\n", stringify(rescan_chdir_flags));
#endif
#ifndef rescan_default_to_quick_is_defaulted
printf("#define rescan_default_to_quick                   %s\n", (rescan_default_to_quick == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef rescan_nocheck_dirs_allowed_is_defaulted
printf("#define rescan_nocheck_dirs_allowed               %s\n", (rescan_nocheck_dirs_allowed == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef rescan_script_is_defaulted
printf("#define rescan_script                             %s\n", stringify(rescan_script));
#endif
#ifndef sample_list_is_defaulted
printf("#define sample_list                               %s\n", stringify(sample_list));
#endif
#ifndef sample_script_is_defaulted
printf("#define sample_script                             %s\n", stringify(sample_script));
#endif
#ifndef sfv_calc_single_fname_is_defaulted
printf("#define sfv_calc_single_fname                     %s\n", (sfv_calc_single_fname == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef sfv_cleanup_is_defaulted
printf("#define sfv_cleanup                               %s\n", (sfv_cleanup == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef sfv_cleanup_crlf_is_defaulted
printf("#define sfv_cleanup_crlf                          %s\n", (sfv_cleanup_crlf == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef sfv_cleanup_lowercase_is_defaulted
printf("#define sfv_cleanup_lowercase                     %s\n", (sfv_cleanup_lowercase == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef sfv_dirs_is_defaulted
printf("#define sfv_dirs                                  %s\n", stringify(sfv_dirs));
#endif
#ifndef sfv_dupecheck_is_defaulted
printf("#define sfv_dupecheck                             %s\n", (sfv_dupecheck == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef sfv_lenient_is_defaulted
printf("#define sfv_lenient                               %s\n", (sfv_lenient == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef short_sitename_is_defaulted
printf("#define short_sitename                            %s\n", stringify(short_sitename));
#endif
#ifndef show_group_info_is_defaulted
printf("#define show_group_info                           %s\n", (show_group_info == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef show_stats_from_pos2_only_is_defaulted
printf("#define show_stats_from_pos2_only                 %s\n", (show_stats_from_pos2_only == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef show_user_info_is_defaulted
printf("#define show_user_info                            %s\n", (show_user_info == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef show_users_in_group_dirs_is_defaulted
printf("#define show_users_in_group_dirs                  %s\n", (show_users_in_group_dirs == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef sitepath_dir_is_defaulted
printf("#define sitepath_dir                              %s\n", stringify(sitepath_dir));
#endif
#ifndef sleep_on_bad_is_defaulted
printf("#define sleep_on_bad                              %s\n", stringify(sleep_on_bad));
#endif
#ifndef spaces_to_dots_is_defaulted
printf("#define spaces_to_dots                            %s\n", (spaces_to_dots == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef speedtest_delfile_is_defaulted
printf("#define speedtest_delfile                         %s\n", (speedtest_delfile == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef speedtest_dirs_is_defaulted
printf("#define speedtest_dirs                            %s\n", stringify(speedtest_dirs));
#endif
#ifndef status_bar_type_is_defaulted
printf("#define status_bar_type                           %s\n", stringify(status_bar_type));
#endif
#ifndef storage_is_defaulted
printf("#define storage                                   %s\n", stringify(storage));
#endif
#ifndef strict_path_match_is_defaulted
printf("#define strict_path_match                         %s\n", (strict_path_match == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef strict_sfv_check_is_defaulted
printf("#define strict_sfv_check                          %s\n", (strict_sfv_check == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef subdir_list_is_defaulted
printf("#define subdir_list                               %s\n", stringify(subdir_list));
#endif
#ifndef test_for_password_is_defaulted
printf("#define test_for_password                         %s\n", (test_for_password == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef unduper_script_is_defaulted
printf("#define unduper_script                            %s\n", stringify(unduper_script));
#endif
#ifndef unzip_bin_is_defaulted
printf("#define unzip_bin                                 %s\n", stringify(unzip_bin));
#endif
#ifndef use_group_dirs_as_affil_list_is_defaulted
printf("#define use_group_dirs_as_affil_list              %s\n", (use_group_dirs_as_affil_list == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef use_partial_on_noforce_is_defaulted
printf("#define use_partial_on_noforce                    %s\n", (use_partial_on_noforce == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef userellink_is_defaulted
printf("#define userellink                                %s\n", stringify(userellink));
#endif
#ifndef video_completebar_is_defaulted
printf("#define video_completebar                         %s\n", (video_completebar == DISABLED ? "DISABLED" : stringify(video_completebar)));
#endif
#ifndef video_types_is_defaulted
printf("#define video_types                               %s\n", stringify(video_types));
#endif
#ifndef write_complete_message_is_defaulted
printf("#define write_complete_message                    %s\n", (write_complete_message == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef write_complete_message_in_group_dirs_is_defaulted
printf("#define write_complete_message_in_group_dirs      %s\n", (write_complete_message_in_group_dirs == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef zip_bin_is_defaulted
printf("#define zip_bin                                   %s\n", stringify(zip_bin));
#endif
#ifndef zip_clean_is_defaulted
printf("#define zip_clean                                 %s\n", (zip_clean == FALSE ? "FALSE" : "TRUE"));
#endif
#ifndef zip_completebar_is_defaulted
printf("#define zip_completebar                           %s\n", (zip_completebar == DISABLED ? "DISABLED" : stringify(zip_completebar)));
#endif
#ifndef zip_dirs_is_defaulted
printf("#define zip_dirs                                  %s\n", stringify(zip_dirs));
#endif
#ifndef zipscript_SFV_ok_is_defaulted
printf("#define zipscript_SFV_ok                          %s\n", stringify(zipscript_SFV_ok));
#endif
#ifndef zipscript_SFV_skip_is_defaulted
printf("#define zipscript_SFV_skip                        %s\n", stringify(zipscript_SFV_skip));
#endif
#ifndef zipscript_any_ok_is_defaulted
printf("#define zipscript_any_ok                          %s\n", stringify(zipscript_any_ok));
#endif
#ifndef zipscript_footer_error_is_defaulted
printf("#define zipscript_footer_error                    %s\n", stringify(zipscript_footer_error));
#endif
#ifndef zipscript_footer_ok_is_defaulted
printf("#define zipscript_footer_ok                       %s\n", stringify(zipscript_footer_ok));
#endif
#ifndef zipscript_footer_skip_is_defaulted
printf("#define zipscript_footer_skip                     %s\n", stringify(zipscript_footer_skip));
#endif
#ifndef zipscript_footer_unknown_is_defaulted
printf("#define zipscript_footer_unknown                  %s\n", stringify(zipscript_footer_unknown));
#endif
#ifndef zipscript_header_is_defaulted
printf("#define zipscript_header                          %s\n", stringify(zipscript_header));
#endif
#ifndef zipscript_sfv_ok_is_defaulted
printf("#define zipscript_sfv_ok                          %s\n", stringify(zipscript_sfv_ok));
#endif
#ifndef zipscript_zip_ok_is_defaulted
printf("#define zipscript_zip_ok                          %s\n", stringify(zipscript_zip_ok));
#endif
#ifndef zsinternal_checks_completed_is_defaulted
printf("#define zsinternal_checks_completed               %s\n", stringify(zsinternal_checks_completed));
#endif
#ifdef USING_GLFTPD
printf("  Compiled for glftpd!\n");
#else
printf("  Compiled for generic ftpd!\n");
#endif
}

void print_full_config(void)
{
printf("#define BAD_CRC                                   %s\n", stringify(BAD_CRC));
printf("#define BAD_ZIP                                   %s\n", stringify(BAD_ZIP));
printf("#define BANNED_BITRATE                            %s\n", stringify(BANNED_BITRATE));
printf("#define BANNED_FILE                               %s\n", stringify(BANNED_FILE));
printf("#define BANNED_GENRE                              %s\n", stringify(BANNED_GENRE));
printf("#define BANNED_YEAR                               %s\n", stringify(BANNED_YEAR));
printf("#define DOUBLE_SFV                                %s\n", stringify(DOUBLE_SFV));
printf("#define DUPE_NFO                                  %s\n", stringify(DUPE_NFO));
printf("#define EMPTY_FILE                                %s\n", stringify(EMPTY_FILE));
printf("#define EMPTY_SFV                                 %s\n", stringify(EMPTY_SFV));
printf("#define GROUPFILE                                 %s\n", stringify(GROUPFILE));
printf("#define NOT_IN_SFV                                %s\n", stringify(NOT_IN_SFV));
printf("#define PASSWDFILE                                %s\n", stringify(PASSWDFILE));
printf("#define SFV_FIRST                                 %s\n", stringify(SFV_FIRST));
printf("#define SPEEDTEST                                 %s\n", stringify(SPEEDTEST));
printf("#define UNKNOWN_FILE                              %s\n", stringify(UNKNOWN_FILE));
printf("#define ZIP_NFO                                   %s\n", stringify(ZIP_NFO));
printf("#define accept_before_complete                    %s\n", (accept_before_complete == FALSE ? "FALSE" : "TRUE"));
printf("#define accept_script                             %s\n", stringify(accept_script));
printf("#define affil_script                              %s\n", stringify(affil_script));
printf("#define allow_dir_chown_in_ng_chown               %s\n", (allow_dir_chown_in_ng_chown == FALSE ? "FALSE" : "TRUE"));
printf("#define allow_error2_in_unzip                     %s\n", (allow_error2_in_unzip == FALSE ? "FALSE" : "TRUE"));
printf("#define allow_file_resume                         %s\n", (allow_file_resume == FALSE ? "FALSE" : "TRUE"));
printf("#define allow_files_chown_in_ng_chown             %s\n", (allow_files_chown_in_ng_chown == FALSE ? "FALSE" : "TRUE"));
printf("#define allow_files_not_in_sfv                    %s\n", (allow_files_not_in_sfv == FALSE ? "FALSE" : "TRUE"));
printf("#define allow_gid_change_in_ng_chown              %s\n", (allow_gid_change_in_ng_chown == FALSE ? "FALSE" : "TRUE"));
printf("#define allow_slash_in_sfv                        %s\n", (allow_slash_in_sfv == FALSE ? "FALSE" : "TRUE"));
printf("#define allow_uid_change_in_ng_chown              %s\n", (allow_uid_change_in_ng_chown == FALSE ? "FALSE" : "TRUE"));
printf("#define allowed_constant_bitrates                 %s\n", stringify(allowed_constant_bitrates));
printf("#define allowed_genres                            %s\n", stringify(allowed_genres));
printf("#define allowed_types                             %s\n", stringify(allowed_types));
printf("#define allowed_types_exemption_dirs              %s\n", stringify(allowed_types_exemption_dirs));
printf("#define allowed_years                             %s\n", stringify(allowed_years));
printf("#define always_scan_audio_syms                    %s\n", (always_scan_audio_syms == FALSE ? "FALSE" : "TRUE"));
printf("#define announce_norace                           %s\n", (announce_norace == FALSE ? "FALSE" : "TRUE"));
printf("#define audio_allowed_genre_check                 %s\n", (audio_allowed_genre_check == FALSE ? "FALSE" : "TRUE"));
printf("#define audio_artist_noid3                        %s\n", (audio_artist_noid3 == FALSE ? "FALSE" : "TRUE"));
printf("#define audio_artist_nosub                        %s\n", (audio_artist_nosub == FALSE ? "FALSE" : "TRUE"));
printf("#define audio_artist_path                         %s\n", stringify(audio_artist_path));
printf("#define audio_artist_sort                         %s\n", (audio_artist_sort == FALSE ? "FALSE" : "TRUE"));
printf("#define audio_artist_sort_various_only            %s\n", (audio_artist_sort_various_only == FALSE ? "FALSE" : "TRUE"));
printf("#define audio_banned_genre_check                  %s\n", (audio_banned_genre_check == FALSE ? "FALSE" : "TRUE"));
printf("#define audio_cbr_check                           %s\n", (audio_cbr_check == FALSE ? "FALSE" : "TRUE"));
printf("#define audio_cbr_warn                            %s\n", (audio_cbr_warn == FALSE ? "FALSE" : "TRUE"));
printf("#define audio_completebar                         %s\n", (audio_completebar == DISABLED ? "DISABLED" : stringify(audio_completebar)));
printf("#define audio_genre_path                          %s\n", stringify(audio_genre_path));
printf("#define audio_genre_sort                          %s\n", (audio_genre_sort == FALSE ? "FALSE" : "TRUE"));
printf("#define audio_genre_warn                          %s\n", (audio_genre_warn == FALSE ? "FALSE" : "TRUE"));
printf("#define audio_group_path                          %s\n", stringify(audio_group_path));
printf("#define audio_group_sort                          %s\n", (audio_group_sort == FALSE ? "FALSE" : "TRUE"));
printf("#define audio_ignored_languages                   %s\n", stringify(audio_ignored_languages));
printf("#define audio_language_path                       %s\n", stringify(audio_language_path));
printf("#define audio_language_sort                       %s\n", (audio_language_sort == FALSE ? "FALSE" : "TRUE"));
printf("#define audio_nocheck_dirs                        %s\n", stringify(audio_nocheck_dirs));
printf("#define audio_nosort_dirs                         %s\n", stringify(audio_nosort_dirs));
printf("#define audio_script                              %s\n", stringify(audio_script));
printf("#define audio_script_cookies                      %s\n", stringify(audio_script_cookies));
printf("#define audio_types                               %s\n", stringify(audio_types));
printf("#define audio_year_check                          %s\n", (audio_year_check == FALSE ? "FALSE" : "TRUE"));
printf("#define audio_year_path                           %s\n", stringify(audio_year_path));
printf("#define audio_year_sort                           %s\n", (audio_year_sort == FALSE ? "FALSE" : "TRUE"));
printf("#define audio_year_warn                           %s\n", (audio_year_warn == FALSE ? "FALSE" : "TRUE"));
printf("#define banned_filelist                           %s\n", stringify(banned_filelist));
printf("#define banned_genres                             %s\n", stringify(banned_genres));
printf("#define benchmark_mode                            %s\n", (benchmark_mode == FALSE ? "FALSE" : "TRUE"));
printf("#define change_spaces_to_underscore_in_ng_chown   %s\n", (change_spaces_to_underscore_in_ng_chown == FALSE ? "FALSE" : "TRUE"));
printf("#define charbar_filled                            %s\n", stringify(charbar_filled));
printf("#define charbar_missing                           %s\n", stringify(charbar_missing));
printf("#define check_for_banned_files                    %s\n", (check_for_banned_files == FALSE ? "FALSE" : "TRUE"));
printf("#define check_for_missing_nfo_dirs                %s\n", stringify(check_for_missing_nfo_dirs));
printf("#define check_for_missing_sample_dirs             %s\n", stringify(check_for_missing_sample_dirs));
printf("#define chmod_completebar                         %s\n", (chmod_completebar == FALSE ? "FALSE" : "TRUE"));
printf("#define cleanupdirs                               %s\n", stringify(cleanupdirs));
printf("#define cleanupdirs_dated                         %s\n", stringify(cleanupdirs_dated));
printf("#define combine_path                              %s\n", (combine_path == FALSE ? "FALSE" : "TRUE"));
printf("#define complete_script                           %s\n", stringify(complete_script));
printf("#define create_incomplete_links_in_group_dirs     %s\n", (create_incomplete_links_in_group_dirs == FALSE ? "FALSE" : "TRUE"));
printf("#define create_m3u                                %s\n", (create_m3u == FALSE ? "FALSE" : "TRUE"));
printf("#define create_missing_files                      %s\n", (create_missing_files == FALSE ? "FALSE" : "TRUE"));
printf("#define create_missing_sample_link                %s\n", (create_missing_sample_link == FALSE ? "FALSE" : "TRUE"));
printf("#define create_missing_sfv                        %s\n", (create_missing_sfv == FALSE ? "FALSE" : "TRUE"));
printf("#define create_missing_sfv_link                   %s\n", (create_missing_sfv_link == FALSE ? "FALSE" : "TRUE"));
printf("#define custom_group_dirs_complete_message        %s\n", (custom_group_dirs_complete_message == DISABLED ? "DISABLED" : stringify(custom_group_dirs_complete_message)));
printf("#define days_back_cleanup                         %s\n", stringify(days_back_cleanup));
printf("#define debug_altlog                              %s\n", (debug_altlog == FALSE ? "FALSE" : "TRUE"));
printf("#define debug_announce                            %s\n", (debug_announce == FALSE ? "FALSE" : "TRUE"));
printf("#define debug_mode                                %s\n", (debug_mode == FALSE ? "FALSE" : "TRUE"));
printf("#define del_banned_release                        %s\n", (del_banned_release == FALSE ? "FALSE" : "TRUE"));
printf("#define del_completebar                           %s\n", (del_completebar == DISABLED ? "DISABLED" : stringify(del_completebar)));
printf("#define del_progressmeter                         %s\n", stringify(del_progressmeter));
printf("#define del_progressmeter_audio                   %s\n", stringify(del_progressmeter_audio));
printf("#define delbanned_script                          %s\n", stringify(delbanned_script));
printf("#define delete_old_link                           %s\n", (delete_old_link == FALSE ? "FALSE" : "TRUE"));
printf("#define deny_double_nfo                           %s\n", (deny_double_nfo == FALSE ? "FALSE" : "TRUE"));
printf("#define deny_double_sfv                           %s\n", (deny_double_sfv == FALSE ? "FALSE" : "TRUE"));
printf("#define deny_nfo_upload_in_zip                    %s\n", (deny_nfo_upload_in_zip == FALSE ? "FALSE" : "TRUE"));
printf("#define deny_resume_sfv                           %s\n", (deny_resume_sfv == FALSE ? "FALSE" : "TRUE"));
printf("#define dirlogpath                                %s\n", stringify(dirlogpath));
printf("#define disable_audio_complete                    %s\n", (disable_audio_complete == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_audio_halfway                     %s\n", (disable_audio_halfway == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_audio_newleader                   %s\n", (disable_audio_newleader == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_audio_norace_complete             %s\n", (disable_audio_norace_complete == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_audio_norace_halfway              %s\n", (disable_audio_norace_halfway == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_audio_race                        %s\n", (disable_audio_race == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_audio_sfv                         %s\n", (disable_audio_sfv == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_audio_update                      %s\n", (disable_audio_update == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_other_complete                    %s\n", (disable_other_complete == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_other_halfway                     %s\n", (disable_other_halfway == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_other_newleader                   %s\n", (disable_other_newleader == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_other_norace_complete             %s\n", (disable_other_norace_complete == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_other_norace_halfway              %s\n", (disable_other_norace_halfway == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_other_race                        %s\n", (disable_other_race == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_other_sfv                         %s\n", (disable_other_sfv == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_other_update                      %s\n", (disable_other_update == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_rar_complete                      %s\n", (disable_rar_complete == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_rar_halfway                       %s\n", (disable_rar_halfway == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_rar_newleader                     %s\n", (disable_rar_newleader == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_rar_norace_complete               %s\n", (disable_rar_norace_complete == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_rar_norace_halfway                %s\n", (disable_rar_norace_halfway == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_rar_race                          %s\n", (disable_rar_race == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_rar_sfv                           %s\n", (disable_rar_sfv == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_rar_update                        %s\n", (disable_rar_update == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_video_complete                    %s\n", (disable_video_complete == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_video_halfway                     %s\n", (disable_video_halfway == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_video_newleader                   %s\n", (disable_video_newleader == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_video_norace_complete             %s\n", (disable_video_norace_complete == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_video_norace_halfway              %s\n", (disable_video_norace_halfway == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_video_race                        %s\n", (disable_video_race == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_video_sfv                         %s\n", (disable_video_sfv == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_video_update                      %s\n", (disable_video_update == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_zip_complete                      %s\n", (disable_zip_complete == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_zip_halfway                       %s\n", (disable_zip_halfway == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_zip_newleader                     %s\n", (disable_zip_newleader == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_zip_norace_complete               %s\n", (disable_zip_norace_complete == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_zip_norace_halfway                %s\n", (disable_zip_norace_halfway == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_zip_race                          %s\n", (disable_zip_race == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_zip_sfv                           %s\n", (disable_zip_sfv == FALSE ? "FALSE" : "TRUE"));
printf("#define disable_zip_update                        %s\n", (disable_zip_update == FALSE ? "FALSE" : "TRUE"));
printf("#define dupepath                                  %s\n", stringify(dupepath));
printf("#define enable_accept_script                      %s\n", (enable_accept_script == FALSE ? "FALSE" : "TRUE"));
printf("#define enable_affil_script                       %s\n", (enable_affil_script == FALSE ? "FALSE" : "TRUE"));
printf("#define enable_audio_script                       %s\n", (enable_audio_script == FALSE ? "FALSE" : "TRUE"));
printf("#define enable_complete_script                    %s\n", (enable_complete_script == FALSE ? "FALSE" : "TRUE"));
printf("#define enable_delbanned_script                   %s\n", (enable_delbanned_script == FALSE ? "FALSE" : "TRUE"));
printf("#define enable_files_ahead                        %s\n", (enable_files_ahead == FALSE ? "FALSE" : "TRUE"));
printf("#define enable_nfo_script                         %s\n", (enable_nfo_script == FALSE ? "FALSE" : "TRUE"));
printf("#define enable_rescan_script                      %s\n", (enable_rescan_script == FALSE ? "FALSE" : "TRUE"));
printf("#define enable_sample_script                      %s\n", (enable_sample_script == FALSE ? "FALSE" : "TRUE"));
printf("#define enable_unduper_script                     %s\n", (enable_unduper_script == FALSE ? "FALSE" : "TRUE"));
printf("#define exclude_non_sfv_dirs                      %s\n", (exclude_non_sfv_dirs == FALSE ? "FALSE" : "TRUE"));
printf("#define extract_nfo                               %s\n", (extract_nfo == FALSE ? "FALSE" : "TRUE"));
printf("#define force_sfv_first                           %s\n", (force_sfv_first == FALSE ? "FALSE" : "TRUE"));
printf("#define get_competitor_list                       %s\n", (get_competitor_list == FALSE ? "FALSE" : "TRUE"));
printf("#define get_user_stats                            %s\n", (get_user_stats == FALSE ? "FALSE" : "TRUE"));
printf("#define gl_sections                               %s\n", stringify(gl_sections));
printf("#define gl_userfiles                              %s\n", stringify(gl_userfiles));
printf("#define group_dirs                                %s\n", stringify(group_dirs));
printf("#define hide_affil_gname                          %s\n", stringify(hide_affil_gname));
printf("#define hide_affil_groups                         %s\n", stringify(hide_affil_groups));
printf("#define hide_affil_uname                          %s\n", stringify(hide_affil_uname));
printf("#define hide_affil_users                          %s\n", stringify(hide_affil_users));
printf("#define hide_gname                                %s\n", stringify(hide_gname));
printf("#define hide_group_uploaders                      %s\n", (hide_group_uploaders == FALSE ? "FALSE" : "TRUE"));
printf("#define hide_uname                                %s\n", stringify(hide_uname));
printf("#define ignore_lock_timeout                       %s\n", (ignore_lock_timeout == FALSE ? "FALSE" : "TRUE"));
printf("#define ignore_zero_size                          %s\n", (ignore_zero_size == FALSE ? "FALSE" : "TRUE"));
printf("#define ignore_zero_sized_on_rescan               %s\n", (ignore_zero_sized_on_rescan == FALSE ? "FALSE" : "TRUE"));
printf("#define ignored_types                             %s\n", stringify(ignored_types));
printf("#define incomplete_base_nfo_indicator             %s\n", stringify(incomplete_base_nfo_indicator));
printf("#define incomplete_base_sample_indicator          %s\n", stringify(incomplete_base_sample_indicator));
printf("#define incomplete_base_sfv_indicator             %s\n", stringify(incomplete_base_sfv_indicator));
printf("#define incomplete_cd_indicator                   %s\n", stringify(incomplete_cd_indicator));
printf("#define incomplete_generic1_base_nfo_indicator    %s\n", stringify(incomplete_generic1_base_nfo_indicator));
printf("#define incomplete_generic1_base_sample_indicator %s\n", stringify(incomplete_generic1_base_sample_indicator));
printf("#define incomplete_generic1_base_sfv_indicator    %s\n", stringify(incomplete_generic1_base_sfv_indicator));
printf("#define incomplete_generic1_cd_indicator          %s\n", stringify(incomplete_generic1_cd_indicator));
printf("#define incomplete_generic1_indicator             %s\n", stringify(incomplete_generic1_indicator));
printf("#define incomplete_generic1_nfo_indicator         %s\n", stringify(incomplete_generic1_nfo_indicator));
printf("#define incomplete_generic1_path                  %s\n", stringify(incomplete_generic1_path));
printf("#define incomplete_generic1_sample_indicator      %s\n", stringify(incomplete_generic1_sample_indicator));
printf("#define incomplete_generic1_sfv_indicator         %s\n", stringify(incomplete_generic1_sfv_indicator));
printf("#define incomplete_generic2_base_nfo_indicator    %s\n", stringify(incomplete_generic2_base_nfo_indicator));
printf("#define incomplete_generic2_base_sample_indicator %s\n", stringify(incomplete_generic2_base_sample_indicator));
printf("#define incomplete_generic2_base_sfv_indicator    %s\n", stringify(incomplete_generic2_base_sfv_indicator));
printf("#define incomplete_generic2_cd_indicator          %s\n", stringify(incomplete_generic2_cd_indicator));
printf("#define incomplete_generic2_indicator             %s\n", stringify(incomplete_generic2_indicator));
printf("#define incomplete_generic2_nfo_indicator         %s\n", stringify(incomplete_generic2_nfo_indicator));
printf("#define incomplete_generic2_path                  %s\n", stringify(incomplete_generic2_path));
printf("#define incomplete_generic2_sample_indicator      %s\n", stringify(incomplete_generic2_sample_indicator));
printf("#define incomplete_generic2_sfv_indicator         %s\n", stringify(incomplete_generic2_sfv_indicator));
printf("#define incomplete_indicator                      %s\n", stringify(incomplete_indicator));
printf("#define incomplete_nfo_indicator                  %s\n", stringify(incomplete_nfo_indicator));
printf("#define incomplete_sample_indicator               %s\n", stringify(incomplete_sample_indicator));
printf("#define incomplete_sfv_indicator                  %s\n", stringify(incomplete_sfv_indicator));
printf("#define incompleteislink                          %s\n", stringify(incompleteislink));
printf("#define lock_optimize                             %s\n", stringify(lock_optimize));
printf("#define log                                       %s\n", stringify(log));
printf("#define mark_empty_dirs_as_incomplete_on_rescan   %s\n", (mark_empty_dirs_as_incomplete_on_rescan == FALSE ? "FALSE" : "TRUE"));
printf("#define mark_file_as_bad                          %s\n", (mark_file_as_bad == FALSE ? "FALSE" : "TRUE"));
printf("#define max_groups_in_top                         %s\n", stringify(max_groups_in_top));
printf("#define max_seconds_wait_for_lock                 %s\n", stringify(max_seconds_wait_for_lock));
printf("#define max_users_in_top                          %s\n", stringify(max_users_in_top));
printf("#define message_audio                             %s\n", (message_audio == DISABLED ? "DISABLED" : stringify(message_audio)));
printf("#define message_file_name                         %s\n", (message_file_name == DISABLED ? "DISABLED" : stringify(message_file_name)));
printf("#define message_footer                            %s\n", (message_footer == DISABLED ? "DISABLED" : stringify(message_footer)));
printf("#define message_group_body                        %s\n", (message_group_body == DISABLED ? "DISABLED" : stringify(message_group_body)));
printf("#define message_group_footer                      %s\n", (message_group_footer == DISABLED ? "DISABLED" : stringify(message_group_footer)));
printf("#define message_group_header                      %s\n", (message_group_header == DISABLED ? "DISABLED" : stringify(message_group_header)));
printf("#define message_header                            %s\n", (message_header == DISABLED ? "DISABLED" : stringify(message_header)));
printf("#define message_store_in_mirror                   %s\n", (message_store_in_mirror == FALSE ? "FALSE" : "TRUE"));
printf("#define message_user_body                         %s\n", (message_user_body == DISABLED ? "DISABLED" : stringify(message_user_body)));
printf("#define message_user_footer                       %s\n", (message_user_footer == DISABLED ? "DISABLED" : stringify(message_user_footer)));
printf("#define message_user_header                       %s\n", (message_user_header == DISABLED ? "DISABLED" : stringify(message_user_header)));
printf("#define min_halfway_files                         %s\n", stringify(min_halfway_files));
printf("#define min_halfway_size                          %s\n", stringify(min_halfway_size));
printf("#define min_newleader_files                       %s\n", stringify(min_newleader_files));
printf("#define min_newleader_size                        %s\n", stringify(min_newleader_size));
printf("#define min_update_files                          %s\n", stringify(min_update_files));
printf("#define min_update_size                           %s\n", stringify(min_update_size));
printf("#define missing_sample_check_ignore_dividers      %s\n", stringify(missing_sample_check_ignore_dividers));
printf("#define missing_sample_check_ignore_list          %s\n", stringify(missing_sample_check_ignore_list));
printf("#define newleader_files_ahead                     %s\n", stringify(newleader_files_ahead));
printf("#define nfo_script                                %s\n", stringify(nfo_script));
printf("#define nocheck_dirs                              %s\n", stringify(nocheck_dirs));
printf("#define noforce_sfv_first_dirs                    %s\n", stringify(noforce_sfv_first_dirs));
printf("#define other_completebar                         %s\n", (other_completebar == DISABLED ? "DISABLED" : stringify(other_completebar)));
printf("#define program_gid                               %s\n", stringify(program_gid));
printf("#define program_uid                               %s\n", stringify(program_uid));
printf("#define progressmeter                             %s\n", stringify(progressmeter));
printf("#define progressmeter_audio                       %s\n", stringify(progressmeter_audio));
printf("#define rar_completebar                           %s\n", (rar_completebar == DISABLED ? "DISABLED" : stringify(rar_completebar)));
printf("#define realtime_group_body                       %s\n", (realtime_group_body == DISABLED ? "DISABLED" : stringify(realtime_group_body)));
printf("#define realtime_group_footer                     %s\n", (realtime_group_footer == DISABLED ? "DISABLED" : stringify(realtime_group_footer)));
printf("#define realtime_group_header                     %s\n", (realtime_group_header == DISABLED ? "DISABLED" : stringify(realtime_group_header)));
printf("#define realtime_audio_info                       %s\n", (realtime_audio_info == DISABLED ? "DISABLED" : stringify(realtime_audio_info)));
printf("#define realtime_user_body                        %s\n", (realtime_user_body == DISABLED ? "DISABLED" : stringify(realtime_user_body)));
printf("#define realtime_user_footer                      %s\n", (realtime_user_footer == DISABLED ? "DISABLED" : stringify(realtime_user_footer)));
printf("#define realtime_user_header                      %s\n", (realtime_user_header == DISABLED ? "DISABLED" : stringify(realtime_user_header)));
printf("#define remove_dot_debug_on_delete                %s\n", (remove_dot_debug_on_delete == FALSE ? "FALSE" : "TRUE"));
printf("#define remove_dot_files_on_delete                %s\n", (remove_dot_files_on_delete == FALSE ? "FALSE" : "TRUE"));
printf("#define rescan_chdir_flags                        %s\n", stringify(rescan_chdir_flags));
printf("#define rescan_default_to_quick                   %s\n", (rescan_default_to_quick == FALSE ? "FALSE" : "TRUE"));
printf("#define rescan_nocheck_dirs_allowed               %s\n", (rescan_nocheck_dirs_allowed == FALSE ? "FALSE" : "TRUE"));
printf("#define rescan_script                             %s\n", stringify(rescan_script));
printf("#define sample_list                               %s\n", stringify(sample_list));
printf("#define sample_script                             %s\n", stringify(sample_script));
printf("#define sfv_calc_single_fname                     %s\n", (sfv_calc_single_fname == FALSE ? "FALSE" : "TRUE"));
printf("#define sfv_cleanup                               %s\n", (sfv_cleanup == FALSE ? "FALSE" : "TRUE"));
printf("#define sfv_cleanup_crlf                          %s\n", (sfv_cleanup_crlf == FALSE ? "FALSE" : "TRUE"));
printf("#define sfv_cleanup_lowercase                     %s\n", (sfv_cleanup_lowercase == FALSE ? "FALSE" : "TRUE"));
printf("#define sfv_dirs                                  %s\n", stringify(sfv_dirs));
printf("#define sfv_dupecheck                             %s\n", (sfv_dupecheck == FALSE ? "FALSE" : "TRUE"));
printf("#define sfv_lenient                               %s\n", (sfv_lenient == FALSE ? "FALSE" : "TRUE"));
printf("#define short_sitename                            %s\n", stringify(short_sitename));
printf("#define show_group_info                           %s\n", (show_group_info == FALSE ? "FALSE" : "TRUE"));
printf("#define show_stats_from_pos2_only                 %s\n", (show_stats_from_pos2_only == FALSE ? "FALSE" : "TRUE"));
printf("#define show_user_info                            %s\n", (show_user_info == FALSE ? "FALSE" : "TRUE"));
printf("#define show_users_in_group_dirs                  %s\n", (show_users_in_group_dirs == FALSE ? "FALSE" : "TRUE"));
printf("#define sitepath_dir                              %s\n", stringify(sitepath_dir));
printf("#define sleep_on_bad                              %s\n", stringify(sleep_on_bad));
printf("#define spaces_to_dots                            %s\n", (spaces_to_dots == FALSE ? "FALSE" : "TRUE"));
printf("#define speedtest_delfile                         %s\n", (speedtest_delfile == FALSE ? "FALSE" : "TRUE"));
printf("#define speedtest_dirs                            %s\n", stringify(speedtest_dirs));
printf("#define status_bar_type                           %s\n", stringify(status_bar_type));
printf("#define storage                                   %s\n", stringify(storage));
printf("#define strict_path_match                         %s\n", (strict_path_match == FALSE ? "FALSE" : "TRUE"));
printf("#define strict_sfv_check                          %s\n", (strict_sfv_check == FALSE ? "FALSE" : "TRUE"));
printf("#define subdir_list                               %s\n", stringify(subdir_list));
printf("#define test_for_password                         %s\n", (test_for_password == FALSE ? "FALSE" : "TRUE"));
printf("#define unduper_script                            %s\n", stringify(unduper_script));
printf("#define unzip_bin                                 %s\n", stringify(unzip_bin));
printf("#define use_group_dirs_as_affil_list              %s\n", (use_group_dirs_as_affil_list == FALSE ? "FALSE" : "TRUE"));
printf("#define use_partial_on_noforce                    %s\n", (use_partial_on_noforce == FALSE ? "FALSE" : "TRUE"));
printf("#define userellink                                %s\n", stringify(userellink));
printf("#define video_completebar                         %s\n", (video_completebar == DISABLED ? "DISABLED" : stringify(video_completebar)));
printf("#define video_types                               %s\n", stringify(video_types));
printf("#define write_complete_message                    %s\n", (write_complete_message == FALSE ? "FALSE" : "TRUE"));
printf("#define write_complete_message_in_group_dirs      %s\n", (write_complete_message_in_group_dirs == FALSE ? "FALSE" : "TRUE"));
printf("#define zip_bin                                   %s\n", stringify(zip_bin));
printf("#define zip_clean                                 %s\n", (zip_clean == FALSE ? "FALSE" : "TRUE"));
printf("#define zip_completebar                           %s\n", (zip_completebar == DISABLED ? "DISABLED" : stringify(zip_completebar)));
printf("#define zip_dirs                                  %s\n", stringify(zip_dirs));
printf("#define zipscript_SFV_ok                          %s\n", stringify(zipscript_SFV_ok));
printf("#define zipscript_SFV_skip                        %s\n", stringify(zipscript_SFV_skip));
printf("#define zipscript_any_ok                          %s\n", stringify(zipscript_any_ok));
printf("#define zipscript_footer_error                    %s\n", stringify(zipscript_footer_error));
printf("#define zipscript_footer_ok                       %s\n", stringify(zipscript_footer_ok));
printf("#define zipscript_footer_skip                     %s\n", stringify(zipscript_footer_skip));
printf("#define zipscript_footer_unknown                  %s\n", stringify(zipscript_footer_unknown));
printf("#define zipscript_header                          %s\n", stringify(zipscript_header));
printf("#define zipscript_sfv_ok                          %s\n", stringify(zipscript_sfv_ok));
printf("#define zipscript_zip_ok                          %s\n", stringify(zipscript_zip_ok));
printf("#define zsinternal_checks_completed               %s\n", stringify(zsinternal_checks_completed));
#ifdef USING_GLFTPD
printf("  Compiled for glftpd!\n");
#else
printf("  Compiled for generic ftpd!\n");
#endif
}


text:
// -----------------------------------------------------------------------
// <copyright file="IInputRoot.cs" company="Steven Kirk">
// Copyright 2015 MIT Licence. See licence.md for more information.
// </copyright>
// -----------------------------------------------------------------------

namespace Perspex.Input
{
    /// <summary>
    /// Defines the interface for top-level input elements.
    /// </summary>
    public interface IInputRoot : IInputElement
    {
        /// <summary>
        /// Gets or sets the access key handler.
        /// </summary>
        IAccessKeyHandler AccessKeyHandler { get; }

        /// <summary>
        /// Gets or sets the keyboard navigation handler.
        /// </summary>
        IKeyboardNavigationHandler KeyboardNavigationHandler { get; }

        /// <summary>
        /// Gets or sets a value indicating whether access keys are shown in the window.
        /// </summary>
        bool ShowAccessKeys { get; set; }
    }
}

redpajama_set_name: RedPajamaGithub


text:
module SigningsHistory
  class Engine < ::Rails::Engine
    isolate_namespace SigningsHistory
  end
end


text:
<?php
/**
 * Created by PhpStorm.
 * User: piferrari
 * Date: 26.10.16
 * Time: 14:55
 */

namespace InstagramBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;

class AboutController extends Controller
{
    public function indexAction()
    {
        $content = $this->get('templating')->render('InstagramBundle:About:index.html.twig');
        return new Response($content);
    }
}


text:
TEST(PKeyboardButton, OnLoad_sendStubInsteadStream_shouldSetDataFromStub) {
	PKeyboardButton btn(ButtonForm::RECTANGULAR, 101, "Z"); // condition is false by default
	std::stringstream stub;

	const string expectedName = "Q";
	const int expectedCode = 55;
	const bool expectedCondition = true;

	stub << expectedName << std::endl << expectedCode << std::endl << expectedCondition;

	// act
	btn.OnLoad(stub);
	const string actualName = btn.getName();
	const int actualCode = btn.getCode();
	const bool actualCondition = btn.getCondition();

	ASSERT_EQ(expectedName, actualName);
	ASSERT_EQ(expectedCode, actualCode);
	ASSERT_EQ(expectedCondition, actualCondition);
}

TEST(PKeyboardButton, OnStore_sendStubInsteadStream_shouldPushDataToStub) {
	const char expectedName = 'Q';
	const char expectedCode = '5';
	const char expectedCondition = '1';

	PKeyboardButton btn(ButtonForm::RECTANGULAR, expectedCode - '0', string(1, expectedName));
	btn.setCondition(expectedCondition - '0');
	std::stringstream stub;

	// act
	btn.OnStore(stub);

	// pulling data from stub:
	int dataPosIndex = 0;
	const short endlOffset = 1;
	const short expectedNamePos = dataPosIndex;
	const short expectedCodePos = ++dataPosIndex + endlOffset;
	const short expectedConditionPos = ++dataPosIndex + endlOffset + endlOffset;
	const char actualName = stub.str()[expectedNamePos];
	const char actualCode = stub.str()[expectedCodePos];
	const char actualCondition = stub.str()[expectedConditionPos];

	ASSERT_EQ(expectedName, actualName);
	ASSERT_EQ(expectedCode, actualCode);
	ASSERT_EQ(expectedCondition, actualCondition);
}


text:
description: Le JavaScript, comme je l'indiquai en introduction, est partout. Pour l'instant, nous allons le limiter principalement aux interactions utilisateurs (contrôle de saisie, validation de formulaire, interactivité).
---

# Contrôle de saisie & intéractivité

Le JavaScript, comme je l'indiquai en introduction, est partout. Pour l'instant, nous allons le limiter principalement aux interactions utilisateurs (contrôle de saisie, validation de formulaire, interactivité).

Nous allons pratiquer les évènements JavaScript en ajoutant à notre TP Bart ([Version JavaScript](/tp/php/tp2.md)) un simple formulaire puis des contrôles de saisie.

L'objectif étant donc d'ajouter des contrôles de saisie sur votre page formulaire.

Deux solutions sont possibles coder nous même, ou faire confiance à une librairie « provenant d'Internet ».

## Ajouter le formulaire sur votre page

La première étape vas être d'ajouter dans la page un formulaire HTML doit ressembler à :

![Formulaire BART](./res/bart-form.png)

Je vais laisse écrire le code _et le style_ du formulaire en question. Quelques règles :

- Vous pouvez ajouter bootstrap si vous souhaitez.
- Vous devez utiliser un « form »
- Vous devez externaliser la CSS.
- Votre formulaire doit être avant le tableau.

## La validation sans Librairie

Ajouter des contrôles, finalement c'est simple. Il « faut juste » :

- Ajouter un évènement « onSubmit ».
- Vérifier que les champs `input` ne sont pas vide (ou du moins, possède les valeurs attendues).

En pratique ça va donner :

```javascript
function validateForm(evt) {
  const name = document.getElementById("name").value;
  const password = document.getElementById("password").value;

  if (name == null || name == "") {
    alert("Name can't be blank");
    evt.preventDefault();
  } else if (password.length < 6) {
    alert("Password must be at least 6 characters long.");
    evt.preventDefault();
  }

  // Cas de réussite

  // Empêche le submit du formulaire
  evt.preventDefault();
}

// Attacher l'évènement en JS
document
  .getElementById("monForm")
  .addEventListener("submit", validateForm, true);

// Vous pouvez également attacher l'événement directement dans le HTML avec
// <form onsubmit="validateForm(this)">
// …
```

::: tip Un Instant !
`return false` ? Et oui, c'est aussi simple que ça ! En JS si vous souhaitez stopper la soumissions d'un formulaire il suffit que votre fonction de validation retourne `false`. Votre navigateur sera automatiquement qu'il doit arrêter imédiatement la soumission du formulaire. Votre _serveur ne recevra donc **pas**_ les données.
:::

### À faire

- Je vous laisse le mettre en place dans votre code.
- Rendre la page interactive avec les données saisies (via un `onsubmit` en HTML ou, `submit` via les events)
- Je vous laisse écrire la même chose avec jQuery.

## Faire l'action souhaitée

Maintenant que nos informations sont validées, il faut les utiliser dans la page. En reprenant [le code du TP précédent](./tp2.md), je vous laisse intégrer la logique suivante :

- Le tableau ne doit pas être visible au chargement de la page.
- Une fois, la validation du formulaire effective (saisie correcte), le tableau doit s'afficher avec dedans la phrase choisie par l'utilisateur (ainsi que le nombre).
- Le formulaire ne doit plus être visible (ainsi que la `card` dans lequel celui-ci est).
- « Une action » recommencer la saisie doit permettre de :
  - Masquer le tableau
  - Afficher le formulaire à nouveau

::: tip Rappels

Je vous rappels que vous avez [l'aide mémoire](/cheatsheets/javascript/) ainsi que le [support du cours](/tp/javascript/support.md) pour vous aider. Mais l'ensemble va reposer sur :

- Des sélecteurs, exemple `document.getElementById('tableau')`.
- L'obtention de valeur, exemple `document.getElementById('monInputText').value`.
- Masquer / afficher des éléments, exemple `document.getElementById('monInputText').className='hidden'`.

:::

## Avec une Librairie

Nous avons vu la façon manuelle de valider les formulaires. Je pense que sans vous faire un dessin… vous vous rendez compte que si nous avons 200 champs; ça va être plus compliqué ! D'autant plus que plus notre formulaire sera complexe plus celui-ci aura des règles complexes.

Heureusement des gens ont déjà pensé à ce genre de problématique pour vous… Je vous propose d'utiliser :

- [jQuery Validation](https://github.com/jquery-validation/jquery-validation)

::: warning C'est un plug-in parmi tant d'autres
Ce plug-in est juste « un parmi tant d'autre », comme toujours utilisez celui le plus adapté à votre problématique.

Par exemple quand nous ferons du VueJS, **il ne faudra plus utiliser jQuery** !
:::

### À faire

Réécrire votre code précédent pour implémenter une validation via jQuery Validation.


text:
using System.Collections;
using System.Collections.Generic;

namespace KNKVPlugin.Model
{
	public class Results : IEnumerable<Match>
	{
		public List<Week> Weeks = new List<Week>();
		public List<Match> Matches = new List<Match>();

		public Results(List<Week> weeks)
		{
			Weeks = weeks;
			foreach (var week in weeks)
				Matches.AddRange(week.Matches);
		}

		public IEnumerator<Match> GetEnumerator()
		{
			return Matches.GetEnumerator();
		}

		IEnumerator IEnumerable.GetEnumerator()
		{
			return GetEnumerator();
		}
	}
}


text:
UPGRADE FROM 4.0 to 5.0
=======================

 * The web configurator got removed. So you need to remove the `_configurator`
   routing entry from `app/config/routing_dev.yml`.

 * The generated `app/bootstrap.php.cache` does not include autoloading anymore.
   So you need to add the autoloading code in your front controllers `web/app.php`,
   `web/app_dev.php`, `app/console` and `app/phpunit.xml.dist` (bootstrap config).

 * If you have been using the Symfony 3 directory structure already, you need to
   overwrite the cache and log directories in your `AppKernel` as it is also done
   in Symfony 3 now (see
   [`app/AppKernel.php`](https://github.com/symfony/symfony-standard/blob/3.3/app/AppKernel.php#L40-L48)).


text:
package de.kuehweg.sqltool.common.achievement;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

import org.junit.Before;
import org.junit.Test;

import de.kuehweg.gamification.Achievement;
import de.kuehweg.gamification.AchievementCounter;
import de.kuehweg.gamification.AchievementEvent;

/**
 * @author Michael Kühweg
 */
public class RankingPointsTest {

	private RankingPoints rankingPoints = new RankingPoints();

	private final Achievement achievement1 = createTestAchievement(1);
	private final Achievement achievement2 = createTestAchievement(2);
	private final Achievement achievement3 = createTestAchievement(3);
	private final Achievement achievement4 = createTestAchievement(4);

	/**
	 * @throws java.lang.Exception
	 */
	@Before
	public void setUp() throws Exception {
		rankingPoints = new RankingPoints();
		rankingPoints.register(achievement1, 1);
		rankingPoints.register(achievement2, 2);
		rankingPoints.register(achievement3, 3);
	}

	private Achievement createTestAchievement(final int number) {
		final AchievementEvent event = new AchievementEvent(String.valueOf(number));
		final Achievement achievement = new Achievement(String.valueOf(number), new AchievementCounter(event, number));
		return achievement;
	}

	/**
	 * Test method for
	 * {@link de.kuehweg.sqltool.common.achievement.RankingPoints#register(de.kuehweg.gamification.Achievement, int)}
	 * .
	 */
	@Test
	public void testRegister() {
		assertEquals(3, rankingPoints.getRegisteredAchievements().size());
		assertTrue(rankingPoints.getRegisteredAchievements().contains(achievement1));
		assertTrue(rankingPoints.getRegisteredAchievements().contains(achievement2));
		assertTrue(rankingPoints.getRegisteredAchievements().contains(achievement3));
		assertFalse(rankingPoints.getRegisteredAchievements().contains(achievement4));
	}

	/**
	 * Test method for
	 * {@link de.kuehweg.sqltool.common.achievement.RankingPoints#pointsAchieved(de.kuehweg.gamification.Achievement)}
	 * .
	 */
	@Test
	public void testPointsAchievedAchievement() {
		assertEquals(0, rankingPoints.pointsAchieved(achievement1));
		assertEquals(0, rankingPoints.pointsAchieved(achievement2));
		assertEquals(0, rankingPoints.pointsAchieved(achievement3));

		achievement1.fire(new AchievementEvent("1"));
		assertEquals(1, rankingPoints.pointsAchieved(achievement1));

		// derzeit keine prozentuale Punktevergabe
		achievement2.fire(new AchievementEvent("2"));
		assertEquals(0, rankingPoints.pointsAchieved(achievement2));
		achievement2.fire(new AchievementEvent("2"));
		assertEquals(2, rankingPoints.pointsAchieved(achievement2));
	}

	@Test(expected = IllegalArgumentException.class)
	public void testPointsAchievedAchievementException() {
		rankingPoints.pointsAchieved(achievement4);
	}

	@Test(expected = NullPointerException.class)
	public void testPointsAchievedAchievementNullPointerException() {
		rankingPoints.pointsAchieved(null);
	}

	/**
	 * Test method for
	 * {@link de.kuehweg.sqltool.common.achievement.RankingPoints#pointsAchieved()}
	 * .
	 */
	@Test
	public void testPointsAchieved() {
		assertEquals(0, rankingPoints.pointsAchieved());
		achievement2.fire(new AchievementEvent("2"));
		// derzeit keine prozentuale Punktevergabe
		assertEquals(0, rankingPoints.pointsAchieved());
		achievement2.fire(new AchievementEvent("2"));
		assertEquals(2, rankingPoints.pointsAchieved());
	}

	/**
	 * Test method for
	 * {@link de.kuehweg.sqltool.common.achievement.RankingPoints#maxPointsPossible()}
	 * .
	 */
	@Test
	public void testMaxPointsPossible() {
		assertEquals(6, rankingPoints.maxPointsPossible());
	}

	/**
	 * Test method for
	 * {@link de.kuehweg.sqltool.common.achievement.RankingPoints#pointsAchievableForAchievement(de.kuehweg.gamification.Achievement)}
	 * .
	 */
	@Test
	public void testPointsAchievable() {
		assertEquals(1, rankingPoints.pointsAchievableForAchievement(achievement1));
		assertEquals(2, rankingPoints.pointsAchievableForAchievement(achievement2));
		assertEquals(3, rankingPoints.pointsAchievableForAchievement(achievement3));
	}

	@Test(expected = IllegalArgumentException.class)
	public void testPointsAchievableException() {
		rankingPoints.pointsAchievableForAchievement(achievement4);
	}

	@Test(expected = NullPointerException.class)
	public void testPointsAchievableNullPointerException() {
		rankingPoints.pointsAchievableForAchievement(null);
	}

}


text:
#import "XDUMLClassInterfaceCommons-Protocol.h"

@protocol XDUMLInterface <XDUMLClassInterfaceCommons>
- (void)implementorRemoved:(id)arg1;
- (void)implementorAdded:(id)arg1;
- (id)implementors;
- (id)redefinedInterface;
- (id)nestedInterface;
- (id)ownedOperations;
- (id)ownedAttributes;
@end


text:
<?xml version="1.0" encoding="UTF-8"?>

<!-- Copyright 2014 Loic Merckel Licensed under the Apache License, Version
	2.0 (the "License"); you may not use this file except in compliance with
	the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
	Unless required by applicable law or agreed to in writing, software distributed
	under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
	OR CONDITIONS OF ANY KIND, either express or implied. See the License for
	the specific language governing permissions and limitations under the License. -->

<settings>
	<swift>
		<segmentationSize>50000000</segmentationSize>
		<hideSegmentsContainers>true</hideSegmentsContainers>
	</swift>
	<proxy>
		<http>
			<active>false</active>
			<user>user-http</user>
			<password>password-http</password>
			<host>host-http</host>
			<port>9000</port>
		</http>
		<https>
			<active>false</active>
			<user>user-https</user>
			<password>password-https</password>
			<host>host-https</host>
			<port>9001</port>
		</https>
	</proxy>

	<localization>
		<language>en</language>
		<region>US</region>
	</localization>

	<authentication>
		<api>
			<key>api_key</key>
			<secret>api_secret</secret>
			<callback>http://localhost:9000/</callback>
		</api>
	</authentication>

</settings>


text:
import sbt._

object Version {
  val akka         = "2.3.12"
  val akkaHttp     = "1.0"
  val scala        = "2.11.7"
  val scalaTest    = "2.2.5"
  val scalaLogging = "3+"
}

object Library {
  val akkaHttp      = "com.typesafe.akka"          %% "akka-http-experimental" % Version.akkaHttp
  val akkaTestkit   = "com.typesafe.akka"          %% "akka-testkit"           % Version.akka
  val scalaTest     = "org.scalatest"              %% "scalatest"              % Version.scalaTest
  val scalaLogging  = "com.typesafe.scala-logging" %% "scala-logging"          % Version.scalaLogging
}


text:
<?php
global $fsl_options;

// Below is actually what's displayed in the options page.
?>

Facebook Simple Like Settings

    <form method="post" action="options.php">
        <?php settings_fields('fsl_options'); // adds nonce ?>

                    Fan Page URL:

                    <input id="actual_url" name="fsl_options[actual_url]" type="text"
                           value="<?php echo $fsl_options['actual_url']; ?>"/>

                    Automatically add like button to top of posts/pages

                    <input id="add_like_to_post_top" name="fsl_options[add_like_to_post_top]" type="checkbox"
                           value="true" <?php if (isset($fsl_options['add_like_to_post_top'])) echo "checked"; ?> />

                    Automatically add like button to bottom of posts/pages

                    <input id="add_like_to_post_bottom" name="fsl_options[add_like_to_post_bottom]" type="checkbox"
                           value="true" <?php if (isset($fsl_options['add_like_to_post_bottom'])) echo "checked"; ?> />

                    Enable Shortcodes In Widgets

                    <input id="widget_shortcodes_enable" name="fsl_options[widget_shortcodes_enable]" type="checkbox"
                           value="true" <?php if (isset($fsl_options['widget_shortcodes_enable'])) echo "checked"; ?> />

<input type="Submit" name="submit" class="button" value="<?php esc_attr_e('Save Changes'); ?>"/>

    </form>
    <?php if ($fsl_options['like_string']) { ?>

Currently saved default like button (preview):

        <?php echo $fsl_options['like_string']; ?>

    <?php } ?>

Instructions

        You have three options on how to use this plugin after entering your fan page's URL:

Just put the shortcode [facebooksimplelike] where ever
                you want a simple like button for your fan page

Use your theme's widgets interface to add a like button

... or ... you can even place as many like buttons to as many fan pages as you like via the this
                shortcode syntax:
[facebooksimplelike
                    pageurl="http://www.facebook.com/mypage"]

    <?php
    // Sends email, and prints response if contact form is used.
    if (preg_match('/[A-Za-z]{4,15}/', $_POST['comments'])) {
        $admin_email = get_option('admin_email');
        wp_mail(
            'dan@mdpatrick.com', //to
            "{$_POST['subject']} - F.S.L.", //subject
            "{$_POST['comments']}", //body
            "From: $admin_email <$admin_email>" . " \r\n" //header
        );
        echo "
Email sent!

";
        readfile(plugins_url('helpmeout.php', __FILE__));
    } else {
        // Prints contact form, newsletter, donate button, etc.
        readfile(plugins_url('helpmeout.php', __FILE__));
    }
    ?>


text:
layout: project
lab: [wuppertal] #needed for Aggregation on Lab-Page
imgname: wuppertal/OpenBus.PNG
title: OpenBus
status: Machbarkeitsstudie, Sucht Mitmacher

links:
- url: http://openbus.devtal.de/
  name: Website
- url: https://github.com/Opendatal/openbus
  name: Github

collaborators:
- name: Bastian

tags:
- Mobilität

---

Entstanden als Techdemo für einen OpenDataDay in Wuppertal. Greift die Daten vom Abfahrtsmonitor ab und visualisiert sie auf Google Maps.


text:
package com.sectong.domain;

import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;

/**
 * 新闻POJO
 *
 * @author jiekechoo
 *
 */

@Entity
public class News {

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long id;

	private String title;
	private String img;
	private String content;
	private Date datetime;
	@ManyToOne
	private User user;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getImg() {
		return img;
	}

	public void setImg(String img) {
		this.img = img;
	}

	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}

	public Date getDatetime() {
		return datetime;
	}

	public void setDatetime(Date datetime) {
		this.datetime = datetime;
	}

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

	public void createNews(String title, String img, String content, Date datetime, User user) {
		this.title = title;
		this.img = img;
		this.content = content;
		this.datetime = datetime;
		this.user = user;
	}

}