For convenience, awful sloppily considered requests for files and directories to be equivalent. For example, if a page was defined with a "/foo" matcher, a request for "/foo/" would be handled by "/foo"'s handler. That's not always desired. For example, consider this case: (define-page (irregex "/[^/]*") identity) We want to specify that, e.g., requests to /foo should be handled, but /foo/ should _not_ be handled. However, since awful tries to find a handler by stripping the trailing slash, a request for "/foo/" would actually be handled by the handler for (irregex "/[^/]*"), even if the regex specified that paths with a trailing slash should not match. To work around that inconsistency, a new keyword parameter has been added to define-page, ajax, periodical-ajax and ajax-link: `strict' (default: #f, for backward compatibility). If the strict keyword parameter is truthy, awful will not try to find a handler for the requested path by removing the trailing slash. With this change, the format of the resources table has changed too. Now the value part of hash table items is a pair whose car is the resource handler and the cdr is a boolean indicating whether the resource is "strict" or not.
debug and debug-pp will properly handle the debug-file value types: filenames (strings) or output port objects.
In this case, all arguments are strings.
Before this change, development-mode-actions would only be called from load-apps. So, if an application uses awful-start with dev-mode? set to #t, but doesn't call load-apps, development-mode-actions would not be called. While at it, call development-mode-actions _before_ evaluating the thunk for awful-start, so that the evaluated code can override the settings made by development-mode-actions.
To be consistent with the db-support eggs for awful. WARNING: this change may break your code! In case of an empty result set from a query, $db will now return '() instead of #f. This change can be specially harmful in case you have something like (or ($db "some query") "something") In this example, if the query returns an empty result set, that expression would produce: * in older awful versions: "something" * in awful versions with this change: '()
This default matches the behavior of the awful-server (command line tool)