[elpa] branch externals/auctex updated (29d3c7e - f0b8860)

2014-05-23 Thread Tassilo Horn
tsdh pushed a change to branch externals/auctex
in repository elpa.

  from  29d3c7e   * tex-site.el (TeX-modes-set): Use advice-add if 
available. * font-latex.el (font-latex-make-sectioning-faces): Don't rely on 
dynamic scoping for `num'. (font-latex-make-built-in-keywords): Don't use 
`eval' needlessly. (font-latex-doctex-syntactic-keywords): Declare before first 
use. (font-latex-match-command-with-arguments): Stay away from `add-to-list' on 
let-bound variables. (font-latex-match-command-in-braces): Remove unused var 
`end'.
   new  f0b8860   Release 11.87.5.

The 1 revisions listed above as new are entirely new to this
repository and will be described in separate emails.  The revisions
listed as adds were already present in the repository and have only
been added to this reference.


Summary of changes:
 ChangeLog   |5 +
 auctex.el   |2 +-
 texmathp.el |5 -
 3 files changed, 10 insertions(+), 2 deletions(-)



[elpa] 01/01: Release 11.87.5.

2014-05-23 Thread Tassilo Horn
tsdh pushed a commit to branch externals/auctex
in repository elpa.

commit f0b8860b2857034bb7228d5c4965661d3110327a
Author: Tassilo Horn t...@gnu.org
Date:   Fri May 23 08:56:09 2014 +0200

Release 11.87.5.
---
 ChangeLog   |5 +
 auctex.el   |2 +-
 texmathp.el |5 -
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 85f16de..35a6c45 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-05-23  Tassilo Horn  t...@gnu.org
+
+   * texmathp.el (texmathp-tex-commands-default): Recognize
+   \\shortintertext from mathtools.
+
 2014-05-16  Stefan Monnier  monn...@iro.umontreal.ca
 
* tex-site.el (TeX-modes-set): Use advice-add if available.
diff --git a/auctex.el b/auctex.el
index d9a481a..de7b53b 100644
--- a/auctex.el
+++ b/auctex.el
@@ -2,7 +2,7 @@
 
 ;; Copyright (C) 2014 Free Software Foundation, Inc.
 
-;; Version: 11.87.4
+;; Version: 11.87.5
 ;; URL: http://www.gnu.org/software/auctex/
 
 ;; This file is part of GNU Emacs.
diff --git a/texmathp.el b/texmathp.el
index b7bb7f4..350406b 100644
--- a/texmathp.el
+++ b/texmathp.el
@@ -139,7 +139,10 @@
 (alignat   env-on)  (alignat*  env-on)
 (xalignat  env-on)  (xalignat* env-on)
 (xxalignat env-on)  (\\boxed   arg-on)
-(\\textarg-off) (\\intertext   arg-off))
+(\\textarg-off) (\\intertext   arg-off)
+
+;; mathtools
+(\\shortintertext   arg-off))
   The default entries for `texmathp-tex-commands', which see.)
 
 (defun texmathp-compile ()



[elpa] branch master updated (995856a - e3826c8)

2014-05-23 Thread Stefan Monnier
monnier pushed a change to branch master
in repository elpa.

  from  995856a   * update-archive.sh (announce_new): Avoid eval and 
don't assume pkg names don't start with -.
   new  e3826c8   * README: Update for new Version: 0 convention. * 
admin/forward-diffs.py: Adapt to different syntax. * admin/archive-contents.el 
(archive--strip-rcs-id): Remove. (batch-make-archive): Accept Version: 0 to 
mean don't publish. (archive--metadata): Don't use archive--strip-rcs-id any 
more. (archive--html-make-pkg): Handle the case where the is no `latest'. 
(batch-html-make-index): Include unreleased packages.

The 1 revisions listed above as new are entirely new to this
repository and will be described in separate emails.  The revisions
listed as adds were already present in the repository and have only
been added to this reference.


Summary of changes:
 README|4 +-
 admin/archive-contents.el |   70 +++--
 admin/forward-diffs.py|   10 +-
 3 files changed, 52 insertions(+), 32 deletions(-)



[elpa] branch externals/chess updated (57e0eb3 - b891e7c)

2014-05-23 Thread Stefan Monnier
monnier pushed a change to branch externals/chess
in repository elpa.

  from  57e0eb3   Correct year.
   new  b891e7c   * chess.el: Use new Version: 0 convention.

The 1 revisions listed above as new are entirely new to this
repository and will be described in separate emails.  The revisions
listed as adds were already present in the repository and have only
been added to this reference.


Summary of changes:
 chess.el |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)



[elpa] 01/01: * chess.el: Use new Version: 0 convention.

2014-05-23 Thread Stefan Monnier
monnier pushed a commit to branch externals/chess
in repository elpa.

commit b891e7c1d56d3a30f46b0826f00a3c0974a1bb9e
Author: Stefan Monnier monn...@iro.umontreal.ca
Date:   Fri May 23 11:03:50 2014 -0400

* chess.el: Use new Version: 0 convention.
---
 chess.el |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/chess.el b/chess.el
index 9aabf7b..304d821 100644
--- a/chess.el
+++ b/chess.el
@@ -4,7 +4,7 @@
 
 ;; Emacs Lisp Archive Entry
 ;; Filename: chess.el
-;; Version: -1
+;; Version: 0
 ;; Package-Requires: ((cl-lib 0.5))
 ;; Keywords: games
 ;; Author: John Wiegley jo...@gnu.org



[elpa] branch externals/ergoemacs-mode updated (7d81b60 - a36c916)

2014-05-23 Thread Stefan Monnier
monnier pushed a change to branch externals/ergoemacs-mode
in repository elpa.

  from  7d81b60   Fix up copyright headers
   new  a36c916   * ergoemacs-mode.el.el: Use new Version: 0 convention.

The 1 revisions listed above as new are entirely new to this
repository and will be described in separate emails.  The revisions
listed as adds were already present in the repository and have only
been added to this reference.


Summary of changes:
 ergoemacs-mode.el |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)



[elpa] branch master updated (e3826c8 - 8180b45)

2014-05-23 Thread Thien-Thi Nguyen
ttn pushed a change to branch master
in repository elpa.

  from  e3826c8   * README: Update for new Version: 0 convention. * 
admin/forward-diffs.py: Adapt to different syntax. * admin/archive-contents.el 
(archive--strip-rcs-id): Remove. (batch-make-archive): Accept Version: 0 to 
mean don't publish. (archive--metadata): Don't use archive--strip-rcs-id any 
more. (archive--html-make-pkg): Handle the case where the is no `latest'. 
(batch-html-make-index): Include unreleased packages.
   new  8180b45   [gnugo int] Fix up gnugo-frolic.el ‘require’ forms.

The 1 revisions listed above as new are entirely new to this
repository and will be described in separate emails.  The revisions
listed as adds were already present in the repository and have only
been added to this reference.


Summary of changes:
 packages/gnugo/gnugo-frolic.el |3 +++
 packages/gnugo/gnugo.el|1 -
 2 files changed, 3 insertions(+), 1 deletions(-)



[elpa] 01/01: [gnugo int] Fix up gnugo-frolic.el ‘require’ forms.

2014-05-23 Thread Thien-Thi Nguyen
ttn pushed a commit to branch master
in repository elpa.

commit 8180b45842090a7dcbecc78a68e0b117765a3b59
Author: Thien-Thi Nguyen t...@gnu.org
Date:   Fri May 23 11:02:44 2014 +0200

[gnugo int] Fix up gnugo-frolic.el ‘require’ forms.

* packages/gnugo/gnugo.el: Move ‘(require 'ascii-art-to-unicode)’ from 
here...
* packages/gnugo/gnugo-frolic.el: ...to here.
Also, require ‘gnugo’.
---
 packages/gnugo/gnugo-frolic.el |3 +++
 packages/gnugo/gnugo.el|1 -
 2 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/packages/gnugo/gnugo-frolic.el b/packages/gnugo/gnugo-frolic.el
index 51088bc..be6b2ac 100644
--- a/packages/gnugo/gnugo-frolic.el
+++ b/packages/gnugo/gnugo-frolic.el
@@ -20,6 +20,9 @@
 
 ;;; Code:
 
+(require 'gnugo)
+(require 'ascii-art-to-unicode) ; for `aa2u'
+
 (defvar gnugo-frolic-mode-map nil
   Keymap for GNUGO Frolic mode.)
 
diff --git a/packages/gnugo/gnugo.el b/packages/gnugo/gnugo.el
index ccc291b..4b362a5 100644
--- a/packages/gnugo/gnugo.el
+++ b/packages/gnugo/gnugo.el
@@ -92,7 +92,6 @@
 ;;; Code:
 
 (eval-when-compile (require 'cl))   ; use the source luke!
-(require 'ascii-art-to-unicode) ; for `aa2u'
 (require 'time-date); for `time-subtract'
 
 ;;;---



[elpa] 02/02: Remove URL field as this is now the official repo.

2014-05-23 Thread Mario Lang
mlang pushed a commit to branch externals/chess
in repository elpa.

commit 0adcf9bd54a26ca09b6b5eb7e0843ce9089b1d03
Author: Mario Lang ml...@debian.org
Date:   Fri May 23 23:57:43 2014 +0200

Remove URL field as this is now the official repo.

Also, remove duplicated Description field.
---
 chess.el |   10 +++---
 1 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/chess.el b/chess.el
index 0a4aff2..4b38526 100644
--- a/chess.el
+++ b/chess.el
@@ -1,16 +1,12 @@
-;;; chess.el --- Play chess in Emacs
+;;; chess.el --- Play chess in GNU Emacs
 
 ;; Copyright (C) 2001, 2014 Free Software Foundation, Inc.
 
-;; Emacs Lisp Archive Entry
-;; Filename: chess.el
+;; Author: John Wiegley jo...@gnu.org
+;; Maintainer: Mario Lang ml...@delysid.org
 ;; Version: 0
 ;; Package-Requires: ((cl-lib 0.5))
 ;; Keywords: games
-;; Author: John Wiegley jo...@gnu.org
-;; Maintainer: Mario Lang ml...@delysid.org
-;; Description: Play chess in Emacs
-;; URL: https://github.com/jwiegley/emacs-chess/
 ;; Compatibility: Emacs24
 
 ;; This program is free software; you can redistribute it and/or modify



[elpa] 01/01: chess-network: Put cursor in echo-area when prompting.

2014-05-23 Thread Mario Lang
mlang pushed a commit to branch externals/chess
in repository elpa.

commit bb2654e3c743f088afca39a0779b40eb550e4443
Author: Mario Lang ml...@delysid.org
Date:   Sat May 24 00:36:34 2014 +0200

chess-network: Put cursor in echo-area when prompting.
---
 chess-network.el |5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/chess-network.el b/chess-network.el
index 6de3978..a5f3ef4 100644
--- a/chess-network.el
+++ b/chess-network.el
@@ -131,8 +131,9 @@
   (unless chess-engine-handling-event
 (cond
  ((eq event 'initialize)
-  (let ((which (read-char Are you the c)lient or s)erver? ))
-   proc)
+  (let* ((cursor-in-echo-area t)
+(which (read-char Are you the c)lient or s)erver? ))
+proc)
(chess-message 'network-starting)
(setq proc
  (if (eq which ?s)



[elpa] branch externals/chess updated (0adcf9b - bb2654e)

2014-05-23 Thread Mario Lang
mlang pushed a change to branch externals/chess
in repository elpa.

  from  0adcf9b   Remove URL field as this is now the official repo.
   new  bb2654e   chess-network: Put cursor in echo-area when prompting.

The 1 revisions listed above as new are entirely new to this
repository and will be described in separate emails.  The revisions
listed as adds were already present in the repository and have only
been added to this reference.


Summary of changes:
 chess-network.el |5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)



[elpa] 01/01: Convert remaining `assert' to `cl-assert'.

2014-05-23 Thread Mario Lang
mlang pushed a commit to branch externals/chess
in repository elpa.

commit ae907cb0adfbacb381a06ad2c7770f5a28dba15c
Author: Mario Lang ml...@delysid.org
Date:   Sat May 24 03:15:19 2014 +0200

Convert remaining `assert' to `cl-assert'.
---
 chess-algebraic.el |6 +-
 chess-crafty.el|4 +-
 chess-epd.el   |6 +-
 chess-game.el  |  104 +--
 chess-module.el|2 +-
 chess-pgn.el   |2 +-
 chess-ply.el   |   42 ++--
 chess-var.el   |   24 ++--
 8 files changed, 94 insertions(+), 96 deletions(-)

diff --git a/chess-algebraic.el b/chess-algebraic.el
index d90bc11..4a5e11c 100644
--- a/chess-algebraic.el
+++ b/chess-algebraic.el
@@ -90,8 +90,8 @@ This regexp handles both long and short form.)
 
 (defun chess-algebraic-to-ply (position move optional trust)
   Convert the algebraic notation MOVE for POSITION to a ply.
-  (assert (vectorp position))
-  (assert (stringp move))
+  (cl-assert (vectorp position))
+  (cl-assert (stringp move))
   (let ((case-fold-search nil))
 (when (string-match chess-algebraic-regexp-entire move)
   (let ((color (chess-pos-side-to-move position))
@@ -213,7 +213,7 @@ This regexp handles both long and short form.)
 (defun chess-ply-to-algebraic (ply optional long)
   Convert the given PLY to algebraic notation.
 If LONG is non-nil, render the move into long notation.
-  (assert (listp ply))
+  (cl-assert (listp ply))
   (or (and (not long) (chess-ply-keyword ply :san))
   (and (null (chess-ply-source ply)) )
   (let ((move (chess-ply--move-text ply long)))
diff --git a/chess-crafty.el b/chess-crafty.el
index 11245b6..53ff416 100644
--- a/chess-crafty.el
+++ b/chess-crafty.el
@@ -164,10 +164,10 @@
(chess-engine-send nil hard\n)
  (chess-engine-send nil easy\n)))
((eq (car args) 'search-depth)
-   (assert (and (integerp (cadr args)) (= (cadr args) 0)))
+   (cl-assert (and (integerp (cadr args)) (= (cadr args) 0)))
(chess-engine-send nil (format sd %d\n (cadr args
((eq (car args) 'search-time)
-   (assert (and (integerp (cadr args)) ( (cadr args) 0)))
+   (cl-assert (and (integerp (cadr args)) ( (cadr args) 0)))
(chess-engine-send nil (format st %d\n (cadr args))
 
  (t
diff --git a/chess-epd.el b/chess-epd.el
index ac2c0b8..12b4eda 100644
--- a/chess-epd.el
+++ b/chess-epd.el
@@ -44,11 +44,11 @@
(value (cdr annotation)))
 (cond
  ((or (eq opcode 'am) (eq opcode 'bm))
-  (assert (consp value))
+  (cl-assert (consp value))
   (format %S %s;
  opcode (mapconcat #'chess-ply-to-string value  )))
  ((eq opcode 'ce)
-  (assert (integerp value))
+  (cl-assert (integerp value))
   (format %S %d; opcode value))
  ((or (eq opcode 'pv) (eq opcode 'sv))
   (format %S %s;
@@ -59,7 +59,7 @@
 (defun chess-pos-to-epd (position)
   Convert a chess POSITION to a string representation in extended
 position description format.
-  (assert position)
+  (cl-assert position)
   (concat (chess-pos-to-fen position)
  (when (consp (chess-pos-annotations position))
(concat  
diff --git a/chess-game.el b/chess-game.el
index 741f664..334ec70 100644
--- a/chess-game.el
+++ b/chess-game.el
@@ -44,19 +44,19 @@
 
 (defsubst chess-game-hooks (game)
   Return the event hooks associated with GAME.
-  (assert game)
+  (cl-assert game)
   (car game))
 
 (defsubst chess-game-set-hooks (game hooks)
   Set the event hooks associated with GAME.
-  (assert game)
-  (assert (or hooks (eq hooks nil)))
+  (cl-assert game)
+  (cl-assert (or hooks (eq hooks nil)))
   (setcar game hooks))
 
 (defun chess-game-add-hook (game function optional data prepend)
   Add to GAME an event hook FUNCTION.
-  (assert game)
-  (assert function)
+  (cl-assert game)
+  (cl-assert function)
   (let ((hooks (chess-game-hooks game)))
 (if (null hooks)
(chess-game-set-hooks game (list (cons function data)))
@@ -68,8 +68,8 @@
   Remove from GAME all event hooks that match FUNCTION.
 If DATA is specified, only remove those hooks whose associated data
 matches.
-  (assert game)
-  (assert function)
+  (cl-assert game)
+  (cl-assert function)
   (let* ((hooks (chess-game-hooks game))
 (h hooks) last-hook)
 (while h
@@ -85,7 +85,7 @@ matches.
 
 (defsubst chess-game-run-hooks (game rest args)
   Run the event hooks of GAME and pass ARGS.
-  (assert game)
+  (cl-assert game)
   (unless chess-game-inhibit-events
 (let (result)
   (dolist (hook (chess-game-hooks game) result)
@@ -93,29 +93,29 @@ matches.
 
 (defsubst chess-game-tags (game)
   Return the tags alist associated with GAME.
-  (assert game)
+  (cl-assert game)
   (cadr game))
 
 (defsubst chess-game-set-tags (game tags)
   Set the tags alist associated with GAME.
 After the TAGS alist was set the 'set-tags event is triggered.
-  (assert game)
-  (assert (or tags (eq tags nil)))
+  

[elpa] branch externals/chess updated (bb2654e - ae907cb)

2014-05-23 Thread Mario Lang
mlang pushed a change to branch externals/chess
in repository elpa.

  from  bb2654e   chess-network: Put cursor in echo-area when prompting.
   new  ae907cb   Convert remaining `assert' to `cl-assert'.

The 1 revisions listed above as new are entirely new to this
repository and will be described in separate emails.  The revisions
listed as adds were already present in the repository and have only
been added to this reference.


Summary of changes:
 chess-algebraic.el |6 +-
 chess-crafty.el|4 +-
 chess-epd.el   |6 +-
 chess-game.el  |  104 +--
 chess-module.el|2 +-
 chess-pgn.el   |2 +-
 chess-ply.el   |   42 ++--
 chess-var.el   |   24 ++--
 8 files changed, 94 insertions(+), 96 deletions(-)



[elpa] 01/01: Add osc.el.

2014-05-23 Thread Mario Lang
mlang pushed a commit to branch master
in repository elpa.

commit 7da6741f270fd2404f0d62b5ea3b1d70eb5f2898
Author: Mario Lang ml...@delysid.org
Date:   Sat May 24 04:01:52 2014 +0200

Add osc.el.
---
 packages/osc/osc.el |  237 +++
 1 files changed, 237 insertions(+), 0 deletions(-)

diff --git a/packages/osc/osc.el b/packages/osc/osc.el
new file mode 100644
index 000..e214f8d
--- /dev/null
+++ b/packages/osc/osc.el
@@ -0,0 +1,237 @@
+;;; osc.el --- Open Sound Control protocol library
+
+;; Copyright (C) 2014  Free Software Foundation, Inc.
+
+;; Author: Mario Lang ml...@delysid.org
+;; Version: 0.1
+;; Keywords: comm, processes, multimedia
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program.  If not, see http://www.gnu.org/licenses/.
+
+;;; Commentary:
+
+;; OpenSound Control (OSC) is a protocol for communication among
+;; computers, sound synthesizers, and other multimedia devices that is
+;; optimized for modern networking technology and has been used in many
+;; application areas.
+
+;; This package implements low-level functionality for OSC clients and servers.
+;; In particular:
+;; * `osc-make-client' and `osc-make-server' can be used to create process 
objects.
+;; * `osc-send-message' encodes and sends OSC messages from a client process.
+;; * `osc-server-set-handler' can be used to change handlers for particular
+;;   OSC paths on a server process object on the fly.
+
+;; BUGS/TODO:
+;;
+;; * Timetags and binary blobs are not supported yet.
+
+;; Usage:
+;;
+;; Client: (setq my-client (osc-make-client localhost 7770))
+;; (osc-send-message my-client /osc/path 1.5 1.0 5 done)
+;; (delete-process my-client)
+;;
+;; Server: (setq my-server (osc-make-server localhost 7770
+;;  (lambda (path rest args)
+;;(message OSC %s: %S path args
+
+;;; Code:
+
+(require 'cl-lib)
+
+(defun osc-insert-string (string)
+  (insert string 0 (make-string (- 3 (% (length string) 4)) 0)))
+
+(defun osc-insert-float32 (value)
+  (let (s (e 0) f)
+(cond
+ ((string= (format %f value) (format %f -0.0))
+  (setq s 1 f 0))
+ ((string= (format %f value) (format %f 0.0))
+  (setq s 0 f 0))
+ ((= value 1.0e+INF)
+  (setq s 0 e 255 f (1- (expt 2 23
+ ((= value -1.0e+INF)
+  (setq s 1 e 255 f (1- (expt 2 23
+ ((string= (format %f value) (format %f 0.0e+NaN))
+  (setq s 0 e 255 f 1))
+ (t
+  (setq s (if (= value 0.0)
+ (progn (setq f value) 0)
+   (setq f (* -1 value)) 1))
+  (while (= (* f (expt 2.0 e)) 2.0) (setq e (1- e)))
+  (if (= e 0) (while ( (* f (expt 2.0 e)) 1.0) (setq e (1+ e
+  (setq f (round (* (1- (* f (expt 2.0 e))) (expt 2 23)))
+   e (+ (* -1 e) 127
+(insert (+ (lsh s 7) (lsh (logand e #XFE) -1))
+   (+ (lsh (logand e #X01) 7) (lsh (logand f #X7F) -16))
+   (lsh (logand f #XFF00) -8)
+   (logand f #XFF
+
+(defun osc-insert-int32 (value)
+  (let (bytes)
+(dotimes (i 4)
+  (push (% value 256) bytes)
+  (setq value (/ value 256)))
+(dolist (byte bytes)
+  (insert byte
+
+;;;###autoload
+(defun osc-make-client (host port)
+  Create an OSC client process which talks to HOST and PORT.
+  (make-network-process
+   :name OSCclient
+   :coding 'binary
+   :host host
+   :service port
+   :type 'datagram))
+
+;;;###autoload
+(defun osc-send-message (client path rest args)
+  Send an OSC message from CLIENT to the specified PATH with ARGS.
+  (with-temp-buffer
+(set-buffer-multibyte nil)
+(osc-insert-string path)
+(osc-insert-string
+ (apply 'concat , (mapcar (lambda (arg)
+ (cond
+  ((floatp arg) f)
+  ((integerp arg) i)
+  ((stringp arg) s)
+  (t (error Invalid argument: %S arg
+   args)))
+(dolist (arg args)
+  (cond
+   ((floatp arg) (osc-insert-float32 arg))
+   ((integerp arg) (osc-insert-int32 arg))
+   ((stringp arg) (osc-insert-string arg
+(process-send-string client (buffer-string
+
+(defun osc-read-string ()
+  (let ((pos (point)) string)
+(while (not (= (following-char) 0)) (forward-char 1))
+(setq string (buffer-substring-no-properties pos (point)))
+

[elpa] branch master updated (8180b45 - 7da6741)

2014-05-23 Thread Mario Lang
mlang pushed a change to branch master
in repository elpa.

  from  8180b45   [gnugo int] Fix up gnugo-frolic.el ‘require’ forms.
   new  7da6741   Add osc.el.

The 1 revisions listed above as new are entirely new to this
repository and will be described in separate emails.  The revisions
listed as adds were already present in the repository and have only
been added to this reference.


Summary of changes:
 packages/osc/osc.el |  237 +++
 1 files changed, 237 insertions(+), 0 deletions(-)
 create mode 100644 packages/osc/osc.el