Fix bug #20910.
* helper.c (create_casereader_from_data_store): New function.
(execute_syntax): Only replace the active file data by a new
casereader if syntax caused the active file to be read, to avoid
exponential slowdown as an increasing number of snippets that do
not read from the active file are consecutively executed. Bug
#20910. Reviewed by and heavily influenced by John Darrington.
* psppire-data-store.c (psppire_data_store_get_value_count): New
function.
* psppire-dict.c (psppire_dict_get_value_cnt): New function.
* procedure.c (proc_extract_active_file_data): New function.
* lazy-casereader.h: New file.
* lazy-casereader.c: New file.
* casereader.c (casereader_dynamic_cast): New function.
14 files changed: