Commit Graph

33 Commits

Author SHA1 Message Date
Stefan Monnier 129c33dddf * lisp/org-agenda.el: Use lexical-binding
- Removed the global (defvar date) and (defvar entry) so as not to
  conflict with function arguments of that name.  Instead I added such
  `defvar`s in the body of each of the functions where it
  seemed needed.
- I added some FIXMEs for some issues I found along the way.
- Added an `org-dlet` macro, just like I had done for `calendar-dlet`,
  but I also use `defvar` "manually" at some places, when splitting an
  existing `let` into a mix of `let`s and `dlet`s seemed too much trouble.
- Removed uses of `org-let and `org-let2` not only because I consider
  them offensive to my sense of aesthetics but also because they're
  basically incompatible with lexical scoping.
  I replaced them with uses of `cl-progv` which are a bit more verbose.
  Maybe we should define some `org-progv` macro on top of `cl-progv` to
  make the code less verbose, but I didn't do that because I like the
  fact that the current code makes uses of `eval` a bit more obvious
  (since these behave differently with lexical scoping than with
  lexical binding, it seemed worthwhile).
- Removed the use of `eval` in `org-store-agenda-views` which was only
  placed there in order to use a macro before it's defined (it would
  have been simpler/cleaner to just move that functions *after* the
  macro, but with the new code the problem doesn't occur any more anyway).
- Replaced a few `(lambda...) with actual closures.

Detailed changes follow:

(date, entry): Don't declare as being globally dynbound.
(org-agenda-format-date-aligned): Remove unused var `weekyear`.
(org-agenda-mode): `run-mode-hooks` is always available nowadays.
(org-agenda-undo): Remove unused var `last-undo-buffer`.
(org-agenda): Rename arg to `keys` and then dyn-bind it as `org-keys`.
Remove unused vars `buf` and `key`.
(org-agenda): Use `pcase` and `cl-progv` instead of `org-let`.
(org-let, org-let2): Mark as obsolete.
(org-agenda-run-series): Use `cl-progv` instead of `org-let` and `org-let2`.
(org-agenda-run-series): New function.
(org--batch-agenda): New function extracted from `org-batch-agenda`.
(org-batch-agenda): Use it.
(org--batch-agenda-csv): New function extracted from `org-batch-agenda-csv`.
(org-batch-agenda-csv): Use it.
(org--batch-store-agenda-views): New function, extracted from
`org-batch-store-agenda-views`.
(org-store-agenda-views, org-batch-store-agenda-views): Use it.
(org--batch-store-agenda-views): Use `cl-progv` instead of
`org-eval-in-environment`.
(org-agenda-write): Use `cl-progv` instead of `org-let`.
Use `with-current-buffer`.
(org-agenda-filter-any): Use `cl-some` instead of `eval`.
(org-agenda-list): Remove unused var `e`.
(org-search-view): η-reduce.
(crm-separator): Declare var.
(org-agenda-skip-if): Remove unused var `beg`.
(org-agenda-list-stuck-projects): Use a closure rather than `(lambda..).
(diary-modify-entry-list-string-function, diary-file-name-prefix)
(diary-display-function): Declare vars.
(org-diary): Declare `date` and `entry` as dynbound.
(org-agenda-get-day-entries): Use `org-dlet`.
(org-agenda-get-timestamps, org-agenda-get-progress)
(org-agenda-get-deadlines, org-agenda-get-scheduled, org-agenda-get-blocks):
Declare `date` as dynbound.
(org-agenda-get-sexps, org-class): Declare `date` and `entry` as dynbound.
(org-agenda-format-item): Declare the vars mentioned in
`org-compile-prefix-format` as dyn-bound.
Also binding `extra`, suggested by Kyle Meyer <kyle@kyleam.com>.
(org-compile-prefix-format): Remove unused var `e`.
Use `member` rather than or+equal.
(org-set-sorting-strategy): Minor simplification.
(org-entries-lessp): Use `org-dlet`.
(org-agenda-redo): Declare var `org-agenda-tag-filter-while-redo`.
(org-agenda-redo): Use `cl-progv` rather than `org-let`.
(org-agenda-filter): Remove unused var `rpl-fn`.
Use `org-pushnew-to-end` to replace `add-to-list` on lexical var.
(org-agenda-filter-by-tag): Remove unused var `n`.
(org-agenda-filter-apply): Use `org-dlet`.
(org-agenda-compute-starting-span): Remove unused var `dg`.
(org-agenda-forward-block): Remove unused var `pos`.
(org-archive-from-agenda): Declare var.
(org-agenda-refile): Remove unused var `pos`.
(org-agenda-headline-snapshot-before-repeat): Declare var.
(org-agenda-todo): Remove redundant use of `bound-and-true-p`.
(org-agenda-add-note): Remove unused var `hdmarker` and unused `arg`.
(org-agenda-change-all-lines): Remove unused var `pl`.
(org-agenda-priority): Remove unused var `marker`.
(org-agenda-set-effort): Remove unused var `newhead`.
(org-agenda-schedule): Remove unused var `type`.
(org-agenda-clock-cancel): Remove unused `arg`.
(org-agenda-execute-calendar-command): Use `org-dlet`.
(org-agenda-bulk-action): Use closures instead of `(lambda ...).
(org-agenda-show-the-flagging-note): Remove unused vars `heading` and
`newhead`.
(org-agenda-remove-flag): Avoid `setq`.

* testing/org-test.el (org--compile-when): New macro.
(org-test-jump): Use it so compilation doesn't fail or generate broken
code when `jump` is not available.

* testing/lisp/test-org-src.el:
* testing/lisp/test-org-attach.el:
* testing/lisp/test-org-agenda.el:
* testing/lisp/test-ob-java.el: Pass explicit filename to `require`
so as not to rely on ".../testing" being in `load-path` during compilation.

* lisp/org-num.el: Require` org`.

* lisp/org-macs.el (org-eval-in-environment): Declare obsolete.
(org-dlet, org-pushnew-to-end): New macros.

* doc/Makefile (org.texi, orgguide.texi, %_letter.tex): Simplify quoting.

* contrib/lisp/ob-sclang.el: Don't crash compilation when `sclang`
is not available.

* contrib/lisp/ob-clojure-literate.el: Don't crash compilation when `cider`
is not available.

* contrib/lisp/ob-arduino.el: Don't crash compilation when `arduino-mode`
is not available.

* .gitignore: Add files generated during `make packages/org`.
2021-03-09 22:56:33 -05:00
Nicolas Goaziou 82b1d36585 Ignore orgguide spawns
* .gitignore: Ignore orgguide spawns.
2019-03-19 02:25:18 +01:00
Nicolas Goaziou 1289cfe218 Remove "org.texi" from source tree
* .gitignore: Ignore doc/org.texi
* doc/org.texi: Remove file.
2018-05-09 02:25:02 +02:00
Kyle Meyer a8d007db15 doc/Makefile: Auto-generate org-version.tex for orgcard
* doc/Makefile: Add rule to generate org-version.tex.
* doc/orgcard.tex: Include org-version.tex rather than explicitly
setting version and year.

This removes the only instance in the repo where the Org version is
hardcoded.
2017-06-28 00:54:32 -04:00
Bastien Guerry a5c8635fb8 .gitignore: Ignore ChangeLog files 2014-06-02 22:35:22 +02:00
Bastien Guerry 16e0730342 Fix references to org-install.el.
Use org-loaddefs.el when needed.
Update README_maintainer wrt this.
2012-10-02 12:19:39 +02:00
Achim Gratz f6f9d3a5cd mk/server.mk: implement ELPA archive including all contrib files - "orgplus"
* mk/server.mk: Add new targets elpaplus, eplaplus-up, eplaplus-dirty
  and upload-eplaplus as copy of respective epla targets, but with all
  files from contrib added.

* .gitignore: Add orgplus EPLA archive to the patterns.
2012-09-15 18:54:32 +02:00
Achim Gratz e20cb6f92b Makefile: show ORG_MAKE_DOC in `config´
* mk/targets.mk: Show ORG_MAKE_DOC in `config´.

* .gitignore: Add doc/org-version.inc.
2012-08-27 19:19:42 +02:00
Achim Gratz bf352eceda Rename utils/ to mk/, move some files to mk/ and make the requisite changes throughout
* Makefile: Include default.mk and targets.mk from mk/ where they've
  been moved to.

* README_maintainer: Rename utils to make throughout.

* doc/Makefile: Rename utils to make throughout.

* doc/org.texi: Remove reference to utils/, x11idle.c is now in
  contrib/scripts.

* mk/make_emacs_changelog: Add mk/ to list of directories not to be
  reported in Emacs' ChangeLog.  Also retain utils/ and re-add
  UTILITIES; add a comment explaining why these need to stay.

* mk/default.mk: Rename utils to make throughout.  Include version.mk
  from mk/ where it's been moved to.

* mk/targets.mk: Rename utils to make throughout.

* mk/server.mk: Rename utils to make throughout.  Only put those files
  from mk/ into the archives that are needed outside the server:
  default.mk targets.mk version.mk and org-fixup.el.

* lisp/org-compat.el: Rename utils to make throughout.

* .gitignore:  Rename utils to make throughout.
2012-08-26 15:27:19 +02:00
Achim Gratz ee9e27e66e server.mk: add version.mk to distribution archives
* targets.mk: If $(ORGVERSION) and $(GITVERSION) are not defined and
  cannot be determined from Git, try to read `version.mk´.  Fall back
  to "N/A" if still no definition has been made.

* utils/server.mk: Create `version.mk´ for each distribution.  Append
  "-dist" and "-elpa" to $(GITVERSION) to easily recognize builds from
  distribution archives.  Remove `version.mk´ in `cleanrel´ and use
  the same globbing patterns as .gitignore.

* .gitignore: Add "version.mk", also ignore ELPA archive (no ".gz"
  suffix) and only "org-version.el" (no globbing).
2012-08-26 10:32:11 +02:00
Bastien Guerry 0c8e87b8d2 Rename UTILITIES/ to utils/ 2012-08-23 12:47:10 +02:00
Achim Gratz e102e411e4 doc/Makefile: rename/add auto-generated files to be compatible with Emacs
* doc/Makefile: rename auto-generated file "git-describe.texi" to
  "org-version.inc" to allow for easier inclusion into Emacs.

* doc/org.texi: include "org-version.inc" instead of
  "git-describe.texi".

* lisp/Makefile: new auto-generated file org-version.el with autoload
  cookies.  The version strings will be pulled during autoload
  extraction into org-install.el (standalone org-mode) or
  ../loaddefs.el (Emacs).
2012-04-20 21:04:14 +02:00
Achim Gratz 41624c1809 ignore *.t2d directories in doc/, adapt some comments, implement missing targets
.gitignore: also ignore *.t2d directories in doc/ that texi2pdf
	might produce when run in tidy mode

	default.mk: correct some comments

	targets.mk: implement missing clean targets and add aliases for
	them
2012-04-20 21:04:12 +02:00
Achim Gratz 0081071a52 create Makefile for etc/, some additions to .gitignore
* etc/Makefile: create, activate subdir "styles" for ODT exporter
	* .gitignore: ignore doc/git-describe.texi and .gitattributes
2012-04-20 21:04:10 +02:00
Achim Gratz 1e343f7f3b update target descriptions, target "all" now automatically cleans .elc before compilation
* targets.mk: target "all" for lisp directory does now the same as
	"compile", i.e. it cleans .elc file first
	* Makefile: describe all targets and re-arrange the target groups
2012-04-20 21:04:10 +02:00
Andreas Röhler d2640d324b gitignore patch
Hi,

consider these endings ignored by default useful too.
BTW re-sorted, doubled *.dvi-entry removed.

Cheers,

Andreas
2010-08-17 09:54:21 +02:00
Carsten Dominik dc04992d26 Don't track the "t" directory. 2010-05-16 07:04:55 +02:00
Carsten Dominik c069b7c5c6 Make update of ascii refcard auomatic 2010-05-12 16:22:06 +02:00
James TD Smith 0410d6460c Add an X11 equivalent to org-mac-idle-seconds.
This needs a small C program (in UTILITIES/x11idle.c) to work.
2009-10-22 15:09:34 +02:00
Carsten Dominik f21605711e Add .pgs files to .gitignore 2009-06-18 23:23:04 +02:00
Carsten Dominik b4353a3d5c Add a variable index to the manual 2009-02-13 17:38:52 +01:00
Carsten Dominik ed2311923a More typos, dammit. 2008-11-23 08:27:31 +01:00
Carsten Dominik 69673b3c1f Put the examples in the manual under GPL. 2008-06-16 17:05:31 +02:00
Bastien Guerry e00ecff463 Added support for blockquote conversion in org-export-latex.el.
Also added *.elc to .gitignore.
2008-05-06 02:06:09 +02:00
Carsten Dominik 810441a762 Exclude file TODO. 2008-04-15 14:06:26 +02:00
Carsten Dominik e1d1ada043 Removed files added by accident during the last commit. 2008-04-08 13:13:12 +02:00
Carsten Dominik 3ab4658e17 Implemented showing a clock report in the agenda.
This is a new display mode in the agenda view.  It appends a clock
table to the daily/weekly agenda view that covers clocked time
for the time span shown in the agenda, and also limited to the
files that were used to create the current view.
2008-04-06 17:25:47 +02:00
Carsten Dominik 2bac50840d Add the Standards file, more entries in .gitignore. 2008-04-01 16:42:15 +02:00
Philip Rooke 9526703987 Track support files useful in checking Org documentation.
I have found it handy to track these, they represent standards in some
way.  The other aspell files change too randomly and often to bother
tracking so they are just ignored.
2008-04-01 15:59:35 +02:00
Carsten Dominik 65a32c2ab3 Fix unscheduling and un-daedlining so that it will work with
nonstandard locations of these timestamps.
Problem was reported by Pete Phillips.
2008-02-04 11:16:07 +01:00
Carsten Dominik d8b7e8a87a org-plain-link-re has been improved to allow ; and , in URL's. 2008-02-01 23:30:07 +01:00
Carsten Dominik e5eaacb55a More patterns for files to ignore 2008-01-31 16:30:59 +01:00
Carsten Dominik 636a803315 Added a new .gitignore file 2008-01-31 16:18:21 +01:00