rust: Clean up and improve system file handling; add "pspp decrypt".
authorBen Pfaff <blp@cs.stanford.edu>
Sat, 12 Jul 2025 00:05:30 +0000 (17:05 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Wed, 16 Jul 2025 14:58:14 +0000 (07:58 -0700)
commit780b6b472fad69aec25a53a6b19b27360d16e8c6
tree5acf1a7c0503c136bbca270a0fca19c7f8c05b62
parent956ae86c5f901f17c1fe7bad28116e52c98699d6
rust: Clean up and improve system file handling; add "pspp decrypt".

This commit substantially improves the system file reader and refactors
and documents it.  It adds the "pspp decrypt" command to the command-line
interface and removes the standalone "sack" example program (which was not
really useful).
90 files changed:
rust/Cargo.lock
rust/pspp/Cargo.toml
rust/pspp/src/command/crosstabs.rs
rust/pspp/src/command/ctables.rs
rust/pspp/src/command/data_list.rs
rust/pspp/src/command/descriptives.rs
rust/pspp/src/command/mod.rs
rust/pspp/src/crypto/mod.rs
rust/pspp/src/data.rs [new file with mode: 0644]
rust/pspp/src/dictionary.rs
rust/pspp/src/endian.rs
rust/pspp/src/engine.rs
rust/pspp/src/format/display/mod.rs
rust/pspp/src/format/display/test.rs
rust/pspp/src/format/mod.rs
rust/pspp/src/format/parse.rs
rust/pspp/src/identifier.rs
rust/pspp/src/lex/command_name.rs
rust/pspp/src/lex/lexer.rs
rust/pspp/src/lex/mod.rs
rust/pspp/src/lex/scan/mod.rs
rust/pspp/src/lex/scan/test.rs
rust/pspp/src/lex/segment/mod.rs
rust/pspp/src/lex/token.rs
rust/pspp/src/lib.rs
rust/pspp/src/macros.rs
rust/pspp/src/main.rs
rust/pspp/src/output/pivot/look_xml.rs
rust/pspp/src/output/pivot/mod.rs
rust/pspp/src/settings.rs
rust/pspp/src/sys/cooked.rs
rust/pspp/src/sys/encoding.rs
rust/pspp/src/sys/mod.rs
rust/pspp/src/sys/raw.rs
rust/pspp/src/sys/raw/records.rs [new file with mode: 0644]
rust/pspp/src/sys/sack.rs
rust/pspp/src/sys/test.rs
rust/pspp/src/sys/testdata/bad_machine_float_info_size.expected
rust/pspp/src/sys/testdata/bad_machine_integer_info_count.expected
rust/pspp/src/sys/testdata/bad_record_type.expected
rust/pspp/src/sys/testdata/bad_variable_name_in_variable_value_pair.expected
rust/pspp/src/sys/testdata/compressed_data_other_bias.expected
rust/pspp/src/sys/testdata/duplicate_attribute_name.expected
rust/pspp/src/sys/testdata/duplicate_long_variable_name.expected
rust/pspp/src/sys/testdata/extension_too_large.expected
rust/pspp/src/sys/testdata/integer_overflows_in_long_string_missing_values.expected
rust/pspp/src/sys/testdata/invalid_label_indicator.expected
rust/pspp/src/sys/testdata/invalid_long_string_missing_values.expected
rust/pspp/src/sys/testdata/invalid_missing_indicator.expected
rust/pspp/src/sys/testdata/invalid_missing_indicator2.expected
rust/pspp/src/sys/testdata/misplaced_type_4_record.expected
rust/pspp/src/sys/testdata/missing_attribute_value.expected
rust/pspp/src/sys/testdata/missing_type_4_record.expected
rust/pspp/src/sys/testdata/multiple_response_sets_bad_counted_string.expected
rust/pspp/src/sys/testdata/multiple_response_sets_counted_string_bad_length.expected
rust/pspp/src/sys/testdata/multiple_response_sets_counted_string_missing_space.expected
rust/pspp/src/sys/testdata/multiple_response_sets_missing_label_source.expected
rust/pspp/src/sys/testdata/multiple_response_sets_missing_newline_after_variable_name.expected
rust/pspp/src/sys/testdata/multiple_response_sets_missing_space_after_c.expected
rust/pspp/src/sys/testdata/multiple_response_sets_missing_space_after_counted_string.expected
rust/pspp/src/sys/testdata/multiple_response_sets_missing_space_after_e.expected
rust/pspp/src/sys/testdata/multiple_response_sets_unexpected_label_source.expected
rust/pspp/src/sys/testdata/null_dereference_skipping_bad_extension_record_18.expected
rust/pspp/src/sys/testdata/partial_compressed_data_record.expected
rust/pspp/src/sys/testdata/partial_data_record_between_variables.expected
rust/pspp/src/sys/testdata/too_many_value_labels.expected
rust/pspp/src/sys/testdata/unquoted_attribute_value.expected
rust/pspp/src/sys/testdata/value_label_variable_indexes_must_be_in_correct_range.expected
rust/pspp/src/sys/testdata/value_label_variable_indexes_must_not_be_long_string_continuation.expected
rust/pspp/src/sys/testdata/value_label_with_no_associated_variables.expected
rust/pspp/src/sys/testdata/variables_for_value_label_must_all_be_same_type.expected
rust/pspp/src/sys/testdata/wrong_display_alignment.expected
rust/pspp/src/sys/testdata/wrong_display_measurement_level.expected
rust/pspp/src/sys/testdata/wrong_display_parameter_count.expected
rust/pspp/src/sys/testdata/wrong_display_parameter_size.expected
rust/pspp/src/sys/testdata/zcompressed_data_bad_zheader_ofs.expected
rust/pspp/src/sys/testdata/zcompressed_data_bad_ztrailer_ofs.expected
rust/pspp/src/sys/testdata/zcompressed_data_compressed_sizes_don_t_add_up.expected
rust/pspp/src/sys/testdata/zcompressed_data_compressed_sizes_dont_add_up.expected
rust/pspp/src/sys/testdata/zcompressed_data_compression_expands_data_too_much.expected
rust/pspp/src/sys/testdata/zcompressed_data_invalid_ztrailer_len.expected
rust/pspp/src/sys/testdata/zcompressed_data_uncompressed_size_block_size.expected
rust/pspp/src/sys/testdata/zcompressed_data_wrong_block_size.expected
rust/pspp/src/sys/testdata/zcompressed_data_wrong_compressed_ofs.expected
rust/pspp/src/sys/testdata/zcompressed_data_wrong_n_blocks.expected
rust/pspp/src/sys/testdata/zcompressed_data_wrong_uncompressed_ofs.expected
rust/pspp/src/sys/testdata/zcompressed_data_wrong_ztrailer_bias.expected
rust/pspp/src/sys/testdata/zcompressed_data_wrong_ztrailer_len.expected
rust/pspp/src/sys/testdata/zcompressed_data_wrong_ztrailer_zero.expected
rust/pspp/tests/sack.rs [deleted file]