diff options
| author | Karoly Lorentey | 2006-10-14 17:36:28 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2006-10-14 17:36:28 +0000 |
| commit | 12b6af5c7ed2cfdb9783312bf890cf1e6c80c67a (patch) | |
| tree | 1775f9fd1c92defd8b61304a08ec00da95bc4539 /src/fns.c | |
| parent | 3f87f67ee215ffeecbd2f53bd7f342cdf03f47df (diff) | |
| parent | f763da8d0808af7c80d72bc586bf4fcf50b37ddd (diff) | |
| download | emacs-12b6af5c7ed2cfdb9783312bf890cf1e6c80c67a.tar.gz emacs-12b6af5c7ed2cfdb9783312bf890cf1e6c80c67a.zip | |
Merged from emacs@sv.gnu.org
Patches applied:
* emacs@sv.gnu.org/emacs--devo--0--patch-413
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-414
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-415
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-416
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-417
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-418
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-419
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-420
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-421
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-422
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-423
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-424
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-425
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-426
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-427
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-428
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-429
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-430
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-431
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-432
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-433
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-434
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-435
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-436
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-437
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-438
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-439
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-440
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-441
lisp/url/url-methods.el: Fix format error when http_proxy is empty string
* emacs@sv.gnu.org/emacs--devo--0--patch-442
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-443
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-444
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-445
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-446
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-447
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-448
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-449
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-450
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-451
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-452
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-453
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-454
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-455
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-456
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-457
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-458
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-459
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-460
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-461
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-462
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-463
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-464
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-465
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-466
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-467
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-468
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-469
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-470
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-471
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-472
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-473
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-128
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-129
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-130
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-131
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-132
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-133
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-134
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-135
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-136
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-137
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-138
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-139
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-140
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-141
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-142
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-143
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-144
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-145
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-146
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-147
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-148
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-149
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-582
Diffstat (limited to 'src/fns.c')
| -rw-r--r-- | src/fns.c | 49 |
1 files changed, 40 insertions, 9 deletions
| @@ -387,7 +387,12 @@ Symbols are also allowed; their print names are used instead. */) | |||
| 387 | return i1 < SCHARS (s2) ? Qt : Qnil; | 387 | return i1 < SCHARS (s2) ? Qt : Qnil; |
| 388 | } | 388 | } |
| 389 | 389 | ||
| 390 | static Lisp_Object concat (); | 390 | #if __GNUC__ |
| 391 | /* "gcc -O3" enables automatic function inlining, which optimizes out | ||
| 392 | the arguments for the invocations of this function, whereas it | ||
| 393 | expects these values on the stack. */ | ||
| 394 | static Lisp_Object concat () __attribute__((noinline)); | ||
| 395 | #endif | ||
| 391 | 396 | ||
| 392 | /* ARGSUSED */ | 397 | /* ARGSUSED */ |
| 393 | Lisp_Object | 398 | Lisp_Object |
| @@ -1459,11 +1464,10 @@ The value is actually the tail of LIST whose car is ELT. */) | |||
| 1459 | } | 1464 | } |
| 1460 | 1465 | ||
| 1461 | DEFUN ("memq", Fmemq, Smemq, 2, 2, 0, | 1466 | DEFUN ("memq", Fmemq, Smemq, 2, 2, 0, |
| 1462 | doc: /* Return non-nil if ELT is an element of LIST. | 1467 | doc: /* Return non-nil if ELT is an element of LIST. Comparison done with `eq'. |
| 1463 | Comparison done with `eq'. The value is actually the tail of LIST | 1468 | The value is actually the tail of LIST whose car is ELT. */) |
| 1464 | whose car is ELT. */) | ||
| 1465 | (elt, list) | 1469 | (elt, list) |
| 1466 | Lisp_Object elt, list; | 1470 | register Lisp_Object elt, list; |
| 1467 | { | 1471 | { |
| 1468 | while (1) | 1472 | while (1) |
| 1469 | { | 1473 | { |
| @@ -1486,6 +1490,30 @@ whose car is ELT. */) | |||
| 1486 | return list; | 1490 | return list; |
| 1487 | } | 1491 | } |
| 1488 | 1492 | ||
| 1493 | DEFUN ("memql", Fmemql, Smemql, 2, 2, 0, | ||
| 1494 | doc: /* Return non-nil if ELT is an element of LIST. Comparison done with `eql'. | ||
| 1495 | The value is actually the tail of LIST whose car is ELT. */) | ||
| 1496 | (elt, list) | ||
| 1497 | register Lisp_Object elt; | ||
| 1498 | Lisp_Object list; | ||
| 1499 | { | ||
| 1500 | register Lisp_Object tail; | ||
| 1501 | |||
| 1502 | if (!FLOATP (elt)) | ||
| 1503 | return Fmemq (elt, list); | ||
| 1504 | |||
| 1505 | for (tail = list; !NILP (tail); tail = XCDR (tail)) | ||
| 1506 | { | ||
| 1507 | register Lisp_Object tem; | ||
| 1508 | CHECK_LIST_CONS (tail, list); | ||
| 1509 | tem = XCAR (tail); | ||
| 1510 | if (FLOATP (tem) && internal_equal (elt, tem, 0, 0)) | ||
| 1511 | return tail; | ||
| 1512 | QUIT; | ||
| 1513 | } | ||
| 1514 | return Qnil; | ||
| 1515 | } | ||
| 1516 | |||
| 1489 | DEFUN ("assq", Fassq, Sassq, 2, 2, 0, | 1517 | DEFUN ("assq", Fassq, Sassq, 2, 2, 0, |
| 1490 | doc: /* Return non-nil if KEY is `eq' to the car of an element of LIST. | 1518 | doc: /* Return non-nil if KEY is `eq' to the car of an element of LIST. |
| 1491 | The value is actually the first element of LIST whose car is KEY. | 1519 | The value is actually the first element of LIST whose car is KEY. |
| @@ -2749,7 +2777,8 @@ optimize_sub_char_table (table, chars) | |||
| 2749 | else | 2777 | else |
| 2750 | from = 32, to = 128; | 2778 | from = 32, to = 128; |
| 2751 | 2779 | ||
| 2752 | if (!SUB_CHAR_TABLE_P (*table)) | 2780 | if (!SUB_CHAR_TABLE_P (*table) |
| 2781 | || ! NILP (XCHAR_TABLE (*table)->defalt)) | ||
| 2753 | return; | 2782 | return; |
| 2754 | elt = XCHAR_TABLE (*table)->contents[from++]; | 2783 | elt = XCHAR_TABLE (*table)->contents[from++]; |
| 2755 | for (; from < to; from++) | 2784 | for (; from < to; from++) |
| @@ -2764,7 +2793,7 @@ DEFUN ("optimize-char-table", Foptimize_char_table, Soptimize_char_table, | |||
| 2764 | Lisp_Object table; | 2793 | Lisp_Object table; |
| 2765 | { | 2794 | { |
| 2766 | Lisp_Object elt; | 2795 | Lisp_Object elt; |
| 2767 | int dim; | 2796 | int dim, chars; |
| 2768 | int i, j; | 2797 | int i, j; |
| 2769 | 2798 | ||
| 2770 | CHECK_CHAR_TABLE (table); | 2799 | CHECK_CHAR_TABLE (table); |
| @@ -2775,10 +2804,11 @@ DEFUN ("optimize-char-table", Foptimize_char_table, Soptimize_char_table, | |||
| 2775 | if (!SUB_CHAR_TABLE_P (elt)) | 2804 | if (!SUB_CHAR_TABLE_P (elt)) |
| 2776 | continue; | 2805 | continue; |
| 2777 | dim = CHARSET_DIMENSION (i - 128); | 2806 | dim = CHARSET_DIMENSION (i - 128); |
| 2807 | chars = CHARSET_CHARS (i - 128); | ||
| 2778 | if (dim == 2) | 2808 | if (dim == 2) |
| 2779 | for (j = 32; j < SUB_CHAR_TABLE_ORDINARY_SLOTS; j++) | 2809 | for (j = 32; j < SUB_CHAR_TABLE_ORDINARY_SLOTS; j++) |
| 2780 | optimize_sub_char_table (XCHAR_TABLE (elt)->contents + j, dim); | 2810 | optimize_sub_char_table (XCHAR_TABLE (elt)->contents + j, chars); |
| 2781 | optimize_sub_char_table (XCHAR_TABLE (table)->contents + i, dim); | 2811 | optimize_sub_char_table (XCHAR_TABLE (table)->contents + i, chars); |
| 2782 | } | 2812 | } |
| 2783 | return Qnil; | 2813 | return Qnil; |
| 2784 | } | 2814 | } |
| @@ -5831,6 +5861,7 @@ used if both `use-dialog-box' and this variable are non-nil. */); | |||
| 5831 | defsubr (&Selt); | 5861 | defsubr (&Selt); |
| 5832 | defsubr (&Smember); | 5862 | defsubr (&Smember); |
| 5833 | defsubr (&Smemq); | 5863 | defsubr (&Smemq); |
| 5864 | defsubr (&Smemql); | ||
| 5834 | defsubr (&Sassq); | 5865 | defsubr (&Sassq); |
| 5835 | defsubr (&Sassoc); | 5866 | defsubr (&Sassoc); |
| 5836 | defsubr (&Srassq); | 5867 | defsubr (&Srassq); |