diff --git a/subprojects/sim/include/sim/submissions/old_submission.hh b/subprojects/sim/include/sim/submissions/old_submission.hh index 058445b5..1bafb87a 100644 --- a/subprojects/sim/include/sim/submissions/old_submission.hh +++ b/subprojects/sim/include/sim/submissions/old_submission.hh @@ -35,6 +35,7 @@ struct OldSubmission { (PYTHON, 5, "python") (RUST, 6, "rust") (CPP20, 7, "cpp20") + (CPP23, 8, "cpp23") ); // Initial and final values may be combined, but special not @@ -96,6 +97,7 @@ constexpr const char* to_string(OldSubmission::Language x) { case OldSubmission::Language::CPP14: return "C++14"; case OldSubmission::Language::CPP17: return "C++17"; case OldSubmission::Language::CPP20: return "C++20"; + case OldSubmission::Language::CPP23: return "C++23"; case OldSubmission::Language::PASCAL: return "Pascal"; case OldSubmission::Language::PYTHON: return "Python"; case OldSubmission::Language::RUST: return "Rust"; @@ -109,7 +111,8 @@ constexpr const char* to_extension(OldSubmission::Language x) { case OldSubmission::Language::CPP11: case OldSubmission::Language::CPP14: case OldSubmission::Language::CPP17: - case OldSubmission::Language::CPP20: return ".cpp"; + case OldSubmission::Language::CPP20: + case OldSubmission::Language::CPP23: return ".cpp"; case OldSubmission::Language::PASCAL: return ".pas"; case OldSubmission::Language::PYTHON: return ".py"; case OldSubmission::Language::RUST: return ".rs"; @@ -123,7 +126,8 @@ constexpr const char* to_mime(OldSubmission::Language x) { case OldSubmission::Language::CPP11: case OldSubmission::Language::CPP14: case OldSubmission::Language::CPP17: - case OldSubmission::Language::CPP20: return "text/x-c++src"; + case OldSubmission::Language::CPP20: + case OldSubmission::Language::CPP23: return "text/x-c++src"; case OldSubmission::Language::PASCAL: return "text/x-pascal"; case OldSubmission::Language::PYTHON: return "text/x-python"; case OldSubmission::Language::RUST: return "text/x-rust"; diff --git a/subprojects/sim/include/sim/submissions/submission.hh b/subprojects/sim/include/sim/submissions/submission.hh index c43dea8d..a3bfd031 100644 --- a/subprojects/sim/include/sim/submissions/submission.hh +++ b/subprojects/sim/include/sim/submissions/submission.hh @@ -31,6 +31,7 @@ struct Submission { (PYTHON, 5, "python") (RUST, 6, "rust") (CPP20, 7, "cpp20") + (CPP23, 8, "cpp23") ); // Initial and final values may be combined, but special not diff --git a/subprojects/sim/src/job_server/job_handlers/add_or_reupload_problem/add_or_reupload_problem.cc b/subprojects/sim/src/job_server/job_handlers/add_or_reupload_problem/add_or_reupload_problem.cc index a8786c84..4ce6f1c5 100644 --- a/subprojects/sim/src/job_server/job_handlers/add_or_reupload_problem/add_or_reupload_problem.cc +++ b/subprojects/sim/src/job_server/job_handlers/add_or_reupload_problem/add_or_reupload_problem.cc @@ -185,6 +185,7 @@ std::vector submit_solutions( case sim::SolutionLanguage::CPP14: return Submission::Language::CPP14; case sim::SolutionLanguage::CPP17: return Submission::Language::CPP17; case sim::SolutionLanguage::CPP20: return Submission::Language::CPP20; + case sim::SolutionLanguage::CPP23: return Submission::Language::CPP23; case sim::SolutionLanguage::PASCAL: return Submission::Language::PASCAL; case sim::SolutionLanguage::PYTHON: return Submission::Language::PYTHON; case sim::SolutionLanguage::RUST: return Submission::Language::RUST; diff --git a/subprojects/sim/src/job_server/job_handlers/judge_or_rejudge_submission.cc b/subprojects/sim/src/job_server/job_handlers/judge_or_rejudge_submission.cc index 432f8144..b428feb4 100644 --- a/subprojects/sim/src/job_server/job_handlers/judge_or_rejudge_submission.cc +++ b/subprojects/sim/src/job_server/job_handlers/judge_or_rejudge_submission.cc @@ -149,6 +149,7 @@ void judge_or_rejudge_submission( case Submission::Language::CPP14: return sim::SolutionLanguage::CPP14; case Submission::Language::CPP17: return sim::SolutionLanguage::CPP17; case Submission::Language::CPP20: return sim::SolutionLanguage::CPP20; + case Submission::Language::CPP23: return sim::SolutionLanguage::CPP23; case Submission::Language::PASCAL: return sim::SolutionLanguage::PASCAL; case Submission::Language::PYTHON: return sim::SolutionLanguage::PYTHON; case Submission::Language::RUST: return sim::SolutionLanguage::RUST; diff --git a/subprojects/sim/src/web_server/old/submissions_api.cc b/subprojects/sim/src/web_server/old/submissions_api.cc index 0b9dc0c1..4d8ba85c 100644 --- a/subprojects/sim/src/web_server/old/submissions_api.cc +++ b/subprojects/sim/src/web_server/old/submissions_api.cc @@ -902,6 +902,8 @@ void Sim::api_submission_add() { slang = OldSubmission::Language::CPP17; } else if (slang_str == "cpp20") { slang = OldSubmission::Language::CPP20; + } else if (slang_str == "cpp23") { + slang = OldSubmission::Language::CPP23; } else if (slang_str == "pascal") { slang = OldSubmission::Language::PASCAL; } else if (slang_str == "python") { diff --git a/subprojects/sim/src/web_server/static/kit/scripts.js b/subprojects/sim/src/web_server/static/kit/scripts.js index b620f005..8ca64315 100644 --- a/subprojects/sim/src/web_server/static/kit/scripts.js +++ b/subprojects/sim/src/web_server/static/kit/scripts.js @@ -2061,6 +2061,7 @@ function submission_language_to_user_string(submission_language) { case 'python': return 'Python'; case 'rust': return 'Rust'; case 'cpp20': return 'C++20'; + case 'cpp23': return 'C++23'; default: assert(false, 'unexpected submission_language: ' + submission_language); } } @@ -4579,6 +4580,9 @@ function add_submission_impl(as_oldmodal, url, api_url, problem_field_elem, mayb }).add('