diff --git a/mongoose.c b/mongoose.c index 1a3ab0aa..c774fc5a 100644 --- a/mongoose.c +++ b/mongoose.c @@ -5886,21 +5886,28 @@ static void mg_send_directory_listing(struct mg_connection *nc, const char *dir, struct http_message *hm, struct mg_serve_http_opts *opts) { static const char *sort_js_code = - ""; + "var m = /sc=([012]).so=(1|-1)/.exec(window.location.hash) || [0, 2, 1];" + "var sc = m[1], so = m[2]; document.onclick = function(ev) { " + "var c = ev.target.rel; if (c) {if (c == sc) so *= -1; srt(tb, c, so); " + "sc = c; ev.preventDefault();}};" + "srt(tb, sc, so, true);" + "}" + ""; mg_send_response_line(nc, 200, opts->extra_headers); mg_printf(nc, "%s: %s\r\n%s: %s\r\n\r\n", "Transfer-Encoding", "chunked", @@ -5922,8 +5929,8 @@ static void mg_send_directory_listing(struct mg_connection *nc, const char *dir, (int) hm->uri.len, hm->uri.p); mg_scan_directory(nc, dir, opts, mg_print_dir_entry); mg_printf_http_chunk(nc, - "
\n" - "\n" + "
\n" + "\n" "
%s
\n" "", mg_version_header);