struct PrjFields { const char *name; PrVoidError(ProjectDescriptor:: *func_ptr)(Sexp* list); PrVoidError(ProjectDescriptor:: *read_ptr)(); bool must_have; }; %% Project-Description, ProjectDescriptor::project_desc_prj_entry_func, NULL, true Created-By-Prcs-Version, ProjectDescriptor::created_by_prj_entry_func, NULL, true Project-Version, ProjectDescriptor::project_ver_prj_entry_func, NULL, true Parent-Version, ProjectDescriptor::parent_ver_prj_entry_func, NULL, true Version-Log, ProjectDescriptor::version_log_prj_entry_func, NULL, true New-Version-Log, ProjectDescriptor::new_version_log_prj_entry_func, NULL, true Checkin-Time, ProjectDescriptor::checkin_time_prj_entry_func, NULL, true Checkin-Login, ProjectDescriptor::checkin_login_prj_entry_func, NULL, true Descends-From, ProjectDescriptor::descends_from_prj_entry_func, NULL, false Populate-Ignore, ProjectDescriptor::populate_ignore_prj_entry_func, NULL, false Project-Keywords, ProjectDescriptor::project_keywords_prj_entry_func, NULL, false Merge-Parents, NULL, ProjectDescriptor::merge_parents_prj_entry_read, false New-Merge-Parents, NULL, ProjectDescriptor::new_merge_parents_prj_entry_read, false Files, NULL, ProjectDescriptor::files_prj_entry_read, true