Function: provide

provide is a function defined in fns.c.

Signature

(provide FEATURE &optional SUBFEATURES)

Documentation

Announce that FEATURE is a feature of the current Emacs.

The optional argument SUBFEATURES should be a list of symbols listing particular subfeatures supported in this version of FEATURE.

View in manual

Probably introduced at or before Emacs version 15.

Source Code

// Defined in /usr/src/emacs/src/fns.c
{
  register Lisp_Object tem;
  CHECK_SYMBOL (feature);
  CHECK_LIST (subfeatures);
  if (!NILP (Vautoload_queue))
    Vautoload_queue = Fcons (Fcons (make_fixnum (0), Vfeatures),
			     Vautoload_queue);
  tem = Fmemq (feature, Vfeatures);
  if (NILP (tem))
    Vfeatures = Fcons (feature, Vfeatures);
  if (!NILP (subfeatures))
    Fput (feature, Qsubfeatures, subfeatures);
  LOADHIST_ATTACH (Fcons (Qprovide, feature));

  /* Run any load-hooks for this file.  */
  tem = Fassq (feature, Vafter_load_alist);
  if (CONSP (tem))
    Fmapc (Qfuncall, XCDR (tem));

  return feature;
}