Changeset 14799
- Timestamp:
- May 14, 2011, 9:00:25 AM (14 years ago)
- File:
-
- 1 edited
-
trunk/source/doc/ccl-documentation.html (modified) (715 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/doc/ccl-documentation.html
r14795 r14799 6 6 <title>Clozure CL Documentation</title> 7 7 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /> 8 <link rel="home" href="#id 435872" title="Clozure CL Documentation" />8 <link rel="home" href="#id590940" title="Clozure CL Documentation" /> 9 9 <link rel="next" href="#about-ccl" title="Chapter 1. About Clozure CL" /> 10 10 </head> … … 14 14 <div> 15 15 <div> 16 <h1 class="title"><a id="id 435872"></a>Clozure CL Documentation</h1>16 <h1 class="title"><a id="id590940"></a>Clozure CL Documentation</h1> 17 17 </div> 18 18 </div> … … 233 233 <dt> 234 234 <span class="chapter"> 235 <a href="# Programming-with-Threads">6. Programming with Threads</a>235 <a href="#HemlockProgramming">6. Hemlock Programming</a> 236 236 </span> 237 237 </dt> … … 240 240 <dt> 241 241 <span class="sect1"> 242 <a href="# Threads-overview">6.1. Threads Overview</a>242 <a href="#HemlockProgrammingIntroduction">6.1. Introduction</a> 243 243 </span> 244 244 </dt> 245 245 <dt> 246 246 <span class="sect1"> 247 <a href="# Intentionally--Missing-Functionality">6.2. (Intentionally) Missing Functionality</a>247 <a href="#HemlockProgrammingRepresentationOfText">6.2. Representation of Text</a> 248 248 </span> 249 249 </dt> 250 250 <dt> 251 251 <span class="sect1"> 252 <a href="# Implementation-Decisions-and-Open-Questions">6.3. Implementation Decisions and Open Questions</a>252 <a href="#HemlockProgrammingBuffers">6.3. Buffers</a> 253 253 </span> 254 254 </dt> 255 255 <dt> 256 256 <span class="sect1"> 257 <a href="# Porting-Code-from-the-Old-Thread-Model">6.4. Porting Code from the Old Thread Model</a>257 <a href="#HemlockProgrammingAlteringAndSearchingText">6.4. Altering and Searching Text</a> 258 258 </span> 259 259 </dt> 260 260 <dt> 261 261 <span class="sect1"> 262 <a href="# Background-Terminal-Input">6.5. Background Terminal Input</a>262 <a href="#HemlockProgrammingTheCurrentEnvironment">6.5. The Current Environment</a> 263 263 </span> 264 264 </dt> 265 265 <dt> 266 266 <span class="sect1"> 267 <a href="# The-Threads-which-CCL-Uses-for-Its-Own-Purposes">6.6. The Threads which Clozure CL Uses for Its Own Purposes</a>267 <a href="#HemlockProgrammingHemlockVariables">6.6. Hemlock Variables</a> 268 268 </span> 269 269 </dt> 270 270 <dt> 271 271 <span class="sect1"> 272 <a href="#Threads-Dictionary">6.7. Threads Dictionary</a> 272 <a href="#HemlockProgrammingCommands">6.7. Commands</a> 273 </span> 274 </dt> 275 <dt> 276 <span class="sect1"> 277 <a href="#HemlockProgrammingModes">6.8. Modes</a> 278 </span> 279 </dt> 280 <dt> 281 <span class="sect1"> 282 <a href="#HemlockProgrammingCharacterAttributes">6.9. Character Attributes</a> 283 </span> 284 </dt> 285 <dt> 286 <span class="sect1"> 287 <a href="#HemlockProgrammingControllingTheDisplay">6.10. Controlling the Display</a> 288 </span> 289 </dt> 290 <dt> 291 <span class="sect1"> 292 <a href="#HemlockProgrammingLogicalKeyEvents">6.11. Logical Key-Events</a> 293 </span> 294 </dt> 295 <dt> 296 <span class="sect1"> 297 <a href="#EchoArea">6.12. The Echo Area</a> 298 </span> 299 </dt> 300 <dt> 301 <span class="sect1"> 302 <a href="#Files">6.13. Files</a> 303 </span> 304 </dt> 305 <dt> 306 <span class="sect1"> 307 <a href="#HemlockProgrammingHemlockSLispEnvironment">6.14. Hemlock's Lisp Environment</a> 308 </span> 309 </dt> 310 <dt> 311 <span class="sect1"> 312 <a href="#HemlockProgrammingHighLevelTextPrimitives">6.15. High-Level Text Primitives</a> 313 </span> 314 </dt> 315 <dt> 316 <span class="sect1"> 317 <a href="#HemlockProgrammingUtilities">6.16. Utilities</a> 318 </span> 319 </dt> 320 <dt> 321 <span class="sect1"> 322 <a href="#HemlockProgrammingMiscellaneous">6.17. Miscellaneous</a> 273 323 </span> 274 324 </dt> … … 277 327 <dt> 278 328 <span class="chapter"> 279 <a href="#Programming-with- Sockets">7. Programming with Sockets</a>329 <a href="#Programming-with-Threads">7. Programming with Threads</a> 280 330 </span> 281 331 </dt> … … 284 334 <dt> 285 335 <span class="sect1"> 286 <a href="# Sockets-Overview">7.1.Overview</a>336 <a href="#Threads-overview">7.1. Threads Overview</a> 287 337 </span> 288 338 </dt> 289 339 <dt> 290 340 <span class="sect1"> 291 <a href="#Sockets-Dictionary">7.2. Sockets Dictionary</a> 341 <a href="#Intentionally--Missing-Functionality">7.2. (Intentionally) Missing Functionality</a> 342 </span> 343 </dt> 344 <dt> 345 <span class="sect1"> 346 <a href="#Implementation-Decisions-and-Open-Questions">7.3. Implementation Decisions and Open Questions</a> 347 </span> 348 </dt> 349 <dt> 350 <span class="sect1"> 351 <a href="#Porting-Code-from-the-Old-Thread-Model">7.4. Porting Code from the Old Thread Model</a> 352 </span> 353 </dt> 354 <dt> 355 <span class="sect1"> 356 <a href="#Background-Terminal-Input">7.5. Background Terminal Input</a> 357 </span> 358 </dt> 359 <dt> 360 <span class="sect1"> 361 <a href="#The-Threads-which-CCL-Uses-for-Its-Own-Purposes">7.6. The Threads which Clozure CL Uses for Its Own Purposes</a> 362 </span> 363 </dt> 364 <dt> 365 <span class="sect1"> 366 <a href="#Threads-Dictionary">7.7. Threads Dictionary</a> 292 367 </span> 293 368 </dt> … … 296 371 <dt> 297 372 <span class="chapter"> 298 <a href="# Running-Other-Programs-as-Subprocesses">8. Running Other Programs as Subprocesses</a>373 <a href="#Programming-with-Sockets">8. Programming with Sockets</a> 299 374 </span> 300 375 </dt> … … 303 378 <dt> 304 379 <span class="sect1"> 305 <a href="#S ubprocess-Overview">8.1. Overview</a>380 <a href="#Sockets-Overview">8.1. Overview</a> 306 381 </span> 307 382 </dt> 308 383 <dt> 309 384 <span class="sect1"> 310 <a href="#Subprocess-Examples">8.2. Examples</a> 311 </span> 312 </dt> 313 <dt> 314 <span class="sect1"> 315 <a href="#Limitations-and-known-bugs">8.3. Limitations and known bugs</a> 316 </span> 317 </dt> 318 <dt> 319 <span class="sect1"> 320 <a href="#External-Program-Dictionary">8.4. External-Program Dictionary</a> 385 <a href="#Sockets-Dictionary">8.2. Sockets Dictionary</a> 321 386 </span> 322 387 </dt> … … 325 390 <dt> 326 391 <span class="chapter"> 327 <a href="# Streams">9. Streams</a>392 <a href="#Running-Other-Programs-as-Subprocesses">9. Running Other Programs as Subprocesses</a> 328 393 </span> 329 394 </dt> … … 332 397 <dt> 333 398 <span class="sect1"> 334 <a href="# CCL-Stream-Extensions">9.1. Stream Extensions</a>399 <a href="#Subprocess-Overview">9.1. Overview</a> 335 400 </span> 336 401 </dt> 337 402 <dt> 338 403 <span class="sect1"> 339 <a href="#Creating-Your-Own-Stream-Classes-with-Gray-Streams">9.2. Creating Your Own Stream Classes with Gray Streams</a> 404 <a href="#Subprocess-Examples">9.2. Examples</a> 405 </span> 406 </dt> 407 <dt> 408 <span class="sect1"> 409 <a href="#Limitations-and-known-bugs">9.3. Limitations and known bugs</a> 410 </span> 411 </dt> 412 <dt> 413 <span class="sect1"> 414 <a href="#External-Program-Dictionary">9.4. External-Program Dictionary</a> 340 415 </span> 341 416 </dt> … … 344 419 <dt> 345 420 <span class="chapter"> 346 <a href="# Writing-Portable-Extensions-to-the-Object-System-using-the-MetaObject-Protocol">10. Writing Portable Extensions to the Object System using the MetaObject Protocol</a>421 <a href="#Streams">10. Streams</a> 347 422 </span> 348 423 </dt> … … 351 426 <dt> 352 427 <span class="sect1"> 353 <a href="# MOP-Overview">10.1. Overview</a>428 <a href="#CCL-Stream-Extensions">10.1. Stream Extensions</a> 354 429 </span> 355 430 </dt> 356 431 <dt> 357 432 <span class="sect1"> 358 <a href="#MOP-Implementation-status">10.2. Implementation status</a> 359 </span> 360 </dt> 361 <dt> 362 <span class="sect1"> 363 <a href="#Concurrency-issues">10.3. Concurrency issues</a> 433 <a href="#Creating-Your-Own-Stream-Classes-with-Gray-Streams">10.2. Creating Your Own Stream Classes with Gray Streams</a> 364 434 </span> 365 435 </dt> … … 368 438 <dt> 369 439 <span class="chapter"> 370 <a href="# Profiling">11. Profiling</a>440 <a href="#Writing-Portable-Extensions-to-the-Object-System-using-the-MetaObject-Protocol">11. Writing Portable Extensions to the Object System using the MetaObject Protocol</a> 371 441 </span> 372 442 </dt> … … 375 445 <dt> 376 446 <span class="sect1"> 377 <a href="# Profiling-Using-the-Linux-oprofile-system-level-profiler">11.1. Using the Linux oprofile system-level profiler</a>447 <a href="#MOP-Overview">11.1. Overview</a> 378 448 </span> 379 449 </dt> 380 450 <dt> 381 451 <span class="sect1"> 382 <a href="#Profiling-Using-Apples-CHUD-metering-tools">11.2. Using Apple's CHUD metering tools</a> 452 <a href="#MOP-Implementation-status">11.2. Implementation status</a> 453 </span> 454 </dt> 455 <dt> 456 <span class="sect1"> 457 <a href="#Concurrency-issues">11.3. Concurrency issues</a> 383 458 </span> 384 459 </dt> … … 387 462 <dt> 388 463 <span class="chapter"> 389 <a href="# The-Foreign-Function-Interface">12. The Foreign-Function Interface</a>464 <a href="#Profiling">12. Profiling</a> 390 465 </span> 391 466 </dt> … … 394 469 <dt> 395 470 <span class="sect1"> 396 <a href="# Specifying-And-Using-Foreign-Types">12.1. Specifying And Using Foreign Types</a>471 <a href="#Profiling-Using-the-Linux-oprofile-system-level-profiler">12.1. Using the Linux oprofile system-level profiler</a> 397 472 </span> 398 473 </dt> 399 474 <dt> 400 475 <span class="sect1"> 401 <a href="#Foreign-Function-Calls">12.2. Foreign Function Calls</a> 402 </span> 403 </dt> 404 <dt> 405 <span class="sect1"> 406 <a href="#Referencing-and-Using-Foreign-Memory-Addresses">12.3. Referencing and Using Foreign Memory Addresses</a> 407 </span> 408 </dt> 409 <dt> 410 <span class="sect1"> 411 <a href="#The-Interface-Database">12.4. The Interface Database</a> 412 </span> 413 </dt> 414 <dt> 415 <span class="sect1"> 416 <a href="#Using-Interface-Directories">12.5. Using Interface Directories</a> 417 </span> 418 </dt> 419 <dt> 420 <span class="sect1"> 421 <a href="#Using-Shared-Libraries">12.6. Using Shared Libraries</a> 422 </span> 423 </dt> 424 <dt> 425 <span class="sect1"> 426 <a href="#The-Interface-Translator">12.7. The Interface Translator</a> 427 </span> 428 </dt> 429 <dt> 430 <span class="sect1"> 431 <a href="#Case-sensitivity-of-foreign-names-in-CCL">12.8. Case-sensitivity of foreign names in <code class="literal">CCL</code></a> 432 </span> 433 </dt> 434 <dt> 435 <span class="sect1"> 436 <a href="#Reading-Foreign-Names">12.9. Reading Foreign Names</a> 437 </span> 438 </dt> 439 <dt> 440 <span class="sect1"> 441 <a href="#Tutorial--Using-Basic-Calls-and-Types">12.10. Tutorial: Using Basic Calls and Types</a> 442 </span> 443 </dt> 444 <dt> 445 <span class="sect1"> 446 <a href="#Tutorial--Allocating-Foreign-Data-on-the-Lisp-Heap">12.11. Tutorial: Allocating Foreign Data on the Lisp Heap </a> 447 </span> 448 </dt> 449 <dt> 450 <span class="sect1"> 451 <a href="#Foreign-Function-Interface-Dictionary">12.12. The Foreign-Function-Interface Dictionary</a> 476 <a href="#Profiling-Using-Apples-CHUD-metering-tools">12.2. Using Apple's CHUD metering tools</a> 452 477 </span> 453 478 </dt> … … 456 481 <dt> 457 482 <span class="chapter"> 458 <a href="#The- Objective-C-Bridge">13. The Objective-C Bridge</a>483 <a href="#The-Foreign-Function-Interface">13. The Foreign-Function Interface</a> 459 484 </span> 460 485 </dt> … … 463 488 <dt> 464 489 <span class="sect1"> 465 <a href="# Objective-C-Changes-1.2">13.1. Changes in 1.2</a>490 <a href="#Specifying-And-Using-Foreign-Types">13.1. Specifying And Using Foreign Types</a> 466 491 </span> 467 492 </dt> 468 493 <dt> 469 494 <span class="sect1"> 470 <a href="# Using-Objective-C-Classes">13.2. Using Objective-C Classes</a>495 <a href="#Foreign-Function-Calls">13.2. Foreign Function Calls</a> 471 496 </span> 472 497 </dt> 473 498 <dt> 474 499 <span class="sect1"> 475 <a href="# Instantiating-Objective-C-Objects">13.3. Instantiating Objective-C Objects</a>500 <a href="#Referencing-and-Using-Foreign-Memory-Addresses">13.3. Referencing and Using Foreign Memory Addresses</a> 476 501 </span> 477 502 </dt> 478 503 <dt> 479 504 <span class="sect1"> 480 <a href="# Calling-Objective-C-Methods">13.4. Calling Objective-C Methods</a>505 <a href="#The-Interface-Database">13.4. The Interface Database</a> 481 506 </span> 482 507 </dt> 483 508 <dt> 484 509 <span class="sect1"> 485 <a href="# Defining-Objective-C-Classes">13.5. Defining Objective-C Classes</a>510 <a href="#Using-Interface-Directories">13.5. Using Interface Directories</a> 486 511 </span> 487 512 </dt> 488 513 <dt> 489 514 <span class="sect1"> 490 <a href="# Defining-Objective-C-Methods">13.6. Defining Objective-C Methods</a>515 <a href="#Using-Shared-Libraries">13.6. Using Shared Libraries</a> 491 516 </span> 492 517 </dt> 493 518 <dt> 494 519 <span class="sect1"> 495 <a href="# Loading-Objc-Frameworks">13.7. Loading Frameworks</a>520 <a href="#The-Interface-Translator">13.7. The Interface Translator</a> 496 521 </span> 497 522 </dt> 498 523 <dt> 499 524 <span class="sect1"> 500 <a href="#How-Objective-C-Names-are-Mapped-to-Lisp-Symbols">13.8. How Objective-C Names are Mapped to Lisp Symbols</a> 525 <a href="#Case-sensitivity-of-foreign-names-in-CCL">13.8. Case-sensitivity of foreign names in <code class="literal">CCL</code></a> 526 </span> 527 </dt> 528 <dt> 529 <span class="sect1"> 530 <a href="#Reading-Foreign-Names">13.9. Reading Foreign Names</a> 531 </span> 532 </dt> 533 <dt> 534 <span class="sect1"> 535 <a href="#Tutorial--Using-Basic-Calls-and-Types">13.10. Tutorial: Using Basic Calls and Types</a> 536 </span> 537 </dt> 538 <dt> 539 <span class="sect1"> 540 <a href="#Tutorial--Allocating-Foreign-Data-on-the-Lisp-Heap">13.11. Tutorial: Allocating Foreign Data on the Lisp Heap </a> 541 </span> 542 </dt> 543 <dt> 544 <span class="sect1"> 545 <a href="#Foreign-Function-Interface-Dictionary">13.12. The Foreign-Function-Interface Dictionary</a> 501 546 </span> 502 547 </dt> … … 505 550 <dt> 506 551 <span class="chapter"> 507 <a href="# Platform-specific-notes">14. Platform-specific notes</a>552 <a href="#The-Objective-C-Bridge">14. The Objective-C Bridge</a> 508 553 </span> 509 554 </dt> … … 512 557 <dt> 513 558 <span class="sect1"> 514 <a href="# Platform-specific-overview">14.1. Overview</a>559 <a href="#Objective-C-Changes-1.2">14.1. Changes in 1.2</a> 515 560 </span> 516 561 </dt> 517 562 <dt> 518 563 <span class="sect1"> 519 <a href="#U nix-Posix-Darwin-Features">14.2. Unix/Posix/Darwin Features</a>564 <a href="#Using-Objective-C-Classes">14.2. Using Objective-C Classes</a> 520 565 </span> 521 566 </dt> 522 567 <dt> 523 568 <span class="sect1"> 524 <a href="# Cocoa-Programming-in-CCL">14.3. Cocoa Programming in Clozure CL</a>569 <a href="#Instantiating-Objective-C-Objects">14.3. Instantiating Objective-C Objects</a> 525 570 </span> 526 571 </dt> 527 572 <dt> 528 573 <span class="sect1"> 529 <a href="# Building-an-Application-Bundle">14.4. Building an Application Bundle</a>574 <a href="#Calling-Objective-C-Methods">14.4. Calling Objective-C Methods</a> 530 575 </span> 531 576 </dt> 532 577 <dt> 533 578 <span class="sect1"> 534 <a href="# Recommended-Reading">14.5. Recommended Reading</a>579 <a href="#Defining-Objective-C-Classes">14.5. Defining Objective-C Classes</a> 535 580 </span> 536 581 </dt> 537 582 <dt> 538 583 <span class="sect1"> 539 <a href="#Operating-System-Dictionary">14.6. Operating-System Dictionary</a> 584 <a href="#Defining-Objective-C-Methods">14.6. Defining Objective-C Methods</a> 585 </span> 586 </dt> 587 <dt> 588 <span class="sect1"> 589 <a href="#Loading-Objc-Frameworks">14.7. Loading Frameworks</a> 590 </span> 591 </dt> 592 <dt> 593 <span class="sect1"> 594 <a href="#How-Objective-C-Names-are-Mapped-to-Lisp-Symbols">14.8. How Objective-C Names are Mapped to Lisp Symbols</a> 540 595 </span> 541 596 </dt> … … 544 599 <dt> 545 600 <span class="chapter"> 546 <a href="# Understanding-and-Configuring-the-Garbage-Collector">15. Understanding and Configuring the Garbage Collector</a>601 <a href="#Platform-specific-notes">15. Platform-specific notes</a> 547 602 </span> 548 603 </dt> … … 551 606 <dt> 552 607 <span class="sect1"> 553 <a href="# Heap-space-allocation">15.1. Heap space allocation</a>608 <a href="#Platform-specific-overview">15.1. Overview</a> 554 609 </span> 555 610 </dt> 556 611 <dt> 557 612 <span class="sect1"> 558 <a href="# The-Ephemeral-GC">15.2. The Ephemeral GC</a>613 <a href="#Unix-Posix-Darwin-Features">15.2. Unix/Posix/Darwin Features</a> 559 614 </span> 560 615 </dt> 561 616 <dt> 562 617 <span class="sect1"> 563 <a href="# GC-Page-reclamation-policy">15.3. GC Page reclamation policy</a>618 <a href="#Cocoa-Programming-in-CCL">15.3. Cocoa Programming in Clozure CL</a> 564 619 </span> 565 620 </dt> 566 621 <dt> 567 622 <span class="sect1"> 568 <a href="# iPure--areas-are-read-only--paged-from-image-file">15.4. "Pure" areas are read-only, paged from image file</a>623 <a href="#Building-an-Application-Bundle">15.4. Building an Application Bundle</a> 569 624 </span> 570 625 </dt> 571 626 <dt> 572 627 <span class="sect1"> 573 <a href="# Weak-References">15.5. Weak References</a>628 <a href="#Recommended-Reading">15.5. Recommended Reading</a> 574 629 </span> 575 630 </dt> 576 631 <dt> 577 632 <span class="sect1"> 578 <a href="#Weak-References-Dictionary">15.6. Weak References Dictionary</a> 579 </span> 580 </dt> 581 <dt> 582 <span class="sect1"> 583 <a href="#Garbage-Collection-Dictionary">15.7. Garbage-Collection Dictionary</a> 633 <a href="#Operating-System-Dictionary">15.6. Operating-System Dictionary</a> 584 634 </span> 585 635 </dt> … … 588 638 <dt> 589 639 <span class="chapter"> 590 <a href="# Implementation-Details-of-CCL">16. Implementation Details of Clozure CL</a>640 <a href="#Understanding-and-Configuring-the-Garbage-Collector">16. Understanding and Configuring the Garbage Collector</a> 591 641 </span> 592 642 </dt> … … 595 645 <dt> 596 646 <span class="sect1"> 597 <a href="# Threads-and-exceptions">16.1. Threads and exceptions</a>647 <a href="#Heap-space-allocation">16.1. Heap space allocation</a> 598 648 </span> 599 649 </dt> 600 650 <dt> 601 651 <span class="sect1"> 602 <a href="# Register-usage-and-tagging">16.2. Register usage and tagging</a>652 <a href="#The-Ephemeral-GC">16.2. The Ephemeral GC</a> 603 653 </span> 604 654 </dt> 605 655 <dt> 606 656 <span class="sect1"> 607 <a href="# Heap-Allocation">16.3. Heap Allocation</a>657 <a href="#GC-Page-reclamation-policy">16.3. GC Page reclamation policy</a> 608 658 </span> 609 659 </dt> 610 660 <dt> 611 661 <span class="sect1"> 612 <a href="# GC-details">16.4. GC details</a>662 <a href="#iPure--areas-are-read-only--paged-from-image-file">16.4. "Pure" areas are read-only, paged from image file</a> 613 663 </span> 614 664 </dt> 615 665 <dt> 616 666 <span class="sect1"> 617 <a href="# The-ephemeral-GC">16.5. The ephemeral GC</a>667 <a href="#Weak-References">16.5. Weak References</a> 618 668 </span> 619 669 </dt> 620 670 <dt> 621 671 <span class="sect1"> 622 <a href="# Fasl-files">16.6. Fasl files</a>672 <a href="#Weak-References-Dictionary">16.6. Weak References Dictionary</a> 623 673 </span> 624 674 </dt> 625 675 <dt> 626 676 <span class="sect1"> 627 <a href="# The-Objective-C-Bridge--1-">16.7. The Objective-C Bridge</a>677 <a href="#Garbage-Collection-Dictionary">16.7. Garbage-Collection Dictionary</a> 628 678 </span> 629 679 </dt> … … 632 682 <dt> 633 683 <span class="chapter"> 634 <a href="# Modifying-CCL">17. ModifyingClozure CL</a>684 <a href="#Implementation-Details-of-CCL">17. Implementation Details of Clozure CL</a> 635 685 </span> 636 686 </dt> … … 639 689 <dt> 640 690 <span class="sect1"> 641 <a href="# Contributing-Code-Back-to-the-CCL-Project">17.1. Contributing Code Back to the Clozure CL Project</a>691 <a href="#Threads-and-exceptions">17.1. Threads and exceptions</a> 642 692 </span> 643 693 </dt> 644 694 <dt> 645 695 <span class="sect1"> 646 <a href="# Using-CCL-in--development--and-in--user--mode">17.2. Using Clozure CL in "development" and in "user" mode</a>696 <a href="#Register-usage-and-tagging">17.2. Register usage and tagging</a> 647 697 </span> 648 698 </dt> 649 699 <dt> 650 700 <span class="sect1"> 651 <a href="# kernel-debugger">17.3. The Kernel Debugger</a>701 <a href="#Heap-Allocation">17.3. Heap Allocation</a> 652 702 </span> 653 703 </dt> 654 704 <dt> 655 705 <span class="sect1"> 656 <a href="# Using-AltiVec-in-CCL-LAP-functions">17.4. Using AltiVec in Clozure CL LAP functions</a>706 <a href="#GC-details">17.4. GC details</a> 657 707 </span> 658 708 </dt> 659 709 <dt> 660 710 <span class="sect1"> 661 <a href="#Development-Mode-Dictionary">17.5. Development-Mode Dictionary</a> 711 <a href="#The-ephemeral-GC">17.5. The ephemeral GC</a> 712 </span> 713 </dt> 714 <dt> 715 <span class="sect1"> 716 <a href="#Fasl-files">17.6. Fasl files</a> 717 </span> 718 </dt> 719 <dt> 720 <span class="sect1"> 721 <a href="#The-Objective-C-Bridge--1-">17.7. The Objective-C Bridge</a> 662 722 </span> 663 723 </dt> … … 666 726 <dt> 667 727 <span class="chapter"> 668 <a href="# Questions-and-Answers">18. Questions and Answers</a>728 <a href="#Modifying-CCL">18. Modifying Clozure CL</a> 669 729 </span> 670 730 </dt> … … 673 733 <dt> 674 734 <span class="sect1"> 675 <a href="# How-can-I-do-nonblocking--aka--unbuffered--and--raw---IO-">18.1. How can I do nonblocking (aka "unbuffered" and "raw") IO?</a>735 <a href="#Contributing-Code-Back-to-the-CCL-Project">18.1. Contributing Code Back to the Clozure CL Project</a> 676 736 </span> 677 737 </dt> 678 738 <dt> 679 739 <span class="sect1"> 680 <a href="#I-m-using-the-graphics-demos--Why-doesn-t-the-menubar-change-">18.2. I'm using the graphics demos. Why doesn't the menubar 740 <a href="#Using-CCL-in--development--and-in--user--mode">18.2. Using Clozure CL in "development" and in "user" mode</a> 741 </span> 742 </dt> 743 <dt> 744 <span class="sect1"> 745 <a href="#kernel-debugger">18.3. The Kernel Debugger</a> 746 </span> 747 </dt> 748 <dt> 749 <span class="sect1"> 750 <a href="#Using-AltiVec-in-CCL-LAP-functions">18.4. Using AltiVec in Clozure CL LAP functions</a> 751 </span> 752 </dt> 753 <dt> 754 <span class="sect1"> 755 <a href="#Development-Mode-Dictionary">18.5. Development-Mode Dictionary</a> 756 </span> 757 </dt> 758 </dl> 759 </dd> 760 <dt> 761 <span class="chapter"> 762 <a href="#Questions-and-Answers">19. Questions and Answers</a> 763 </span> 764 </dt> 765 <dd> 766 <dl> 767 <dt> 768 <span class="sect1"> 769 <a href="#How-can-I-do-nonblocking--aka--unbuffered--and--raw---IO-">19.1. How can I do nonblocking (aka "unbuffered" and "raw") IO?</a> 770 </span> 771 </dt> 772 <dt> 773 <span class="sect1"> 774 <a href="#I-m-using-the-graphics-demos--Why-doesn-t-the-menubar-change-">19.2. I'm using the graphics demos. Why doesn't the menubar 681 775 change?</a> 682 776 </span> … … 684 778 <dt> 685 779 <span class="sect1"> 686 <a href="#I-m-using-Slime-and-Cocoa--Why-doesn-t--standard-output--seem-to-work-">1 8.3. I'm using Slime and Cocoa. Why doesn't *standard-output*780 <a href="#I-m-using-Slime-and-Cocoa--Why-doesn-t--standard-output--seem-to-work-">19.3. I'm using Slime and Cocoa. Why doesn't *standard-output* 687 781 seem to work? </a> 688 782 </span> … … 1293 1387 such as <code class="literal">require</code> and 1294 1388 <code class="literal">provide</code>, access to foreign interface 1295 information (see <a class="link" href="#The-Interface-Database" title="1 2.4. The Interface Database">The1389 information (see <a class="link" href="#The-Interface-Database" title="13.4. The Interface Database">The 1296 1390 Interface Database</a>) and the Lisp build process (see 1297 1391 <a class="link" href="#Building-CCL">Building Clozure CL from its Source … … 1531 1625 <code class="literal">--set-lisp-heap-gc-threshold</code> 1532 1626 <em class="parameter"><code>n</code></em>). Sets the Lisp gc threshold to 1533 <em class="parameter"><code>n</code></em>. (see <a class="xref" href="#GC-Page-reclamation-policy" title="1 5.3. GC Page reclamation policy">Section 15.3, âGC Page reclamation policyâ</a></p>1627 <em class="parameter"><code>n</code></em>. (see <a class="xref" href="#GC-Page-reclamation-policy" title="16.3. GC Page reclamation policy">Section 16.3, âGC Page reclamation policyâ</a></p> 1534 1628 </li> 1535 1629 <li class="listitem"> … … 1543 1637 <code class="literal">--heap-reserve</code>). Reserves 1544 1638 <em class="parameter"><code>n</code></em> bytes for heap expansion. The 1545 default is <code class="literal"> 549755813888</code>. (see <a class="xref" href="#Heap-space-allocation" title="1 5.1. Heap space allocation">Section 15.1, âHeap space allocationâ</a>)</p>1639 default is <code class="literal"> 549755813888</code>. (see <a class="xref" href="#Heap-space-allocation" title="16.1. Heap space allocation">Section 16.1, âHeap space allocationâ</a>)</p> 1546 1640 </li> 1547 1641 <li class="listitem"> 1548 1642 <p><code class="literal">-S</code> <em class="parameter"><code>n</code></em> (or 1549 1643 <code class="literal">--stack-size</code> <em class="parameter"><code>n</code></em>). Sets the size of the 1550 initial control stack to <em class="parameter"><code>n</code></em>. (see <a class="xref" href="#Thread-Stack-Sizes" title=" 6.3.1. Thread Stack Sizes">Section 6.3.1, âThread Stack Sizesâ</a>)</p>1644 initial control stack to <em class="parameter"><code>n</code></em>. (see <a class="xref" href="#Thread-Stack-Sizes" title="7.3.1. Thread Stack Sizes">Section 7.3.1, âThread Stack Sizesâ</a>)</p> 1551 1645 </li> 1552 1646 <li class="listitem"> … … 1554 1648 <code class="literal">--thread-stack-size</code> 1555 1649 <em class="parameter"><code>n</code></em>). Sets the size of the first 1556 thread's stack to <em class="parameter"><code>n</code></em>. (see <a class="xref" href="#Thread-Stack-Sizes" title=" 6.3.1. Thread Stack Sizes">Section 6.3.1, âThread Stack Sizesâ</a>)</p>1650 thread's stack to <em class="parameter"><code>n</code></em>. (see <a class="xref" href="#Thread-Stack-Sizes" title="7.3.1. Thread Stack Sizes">Section 7.3.1, âThread Stack Sizesâ</a>)</p> 1557 1651 </li> 1558 1652 <li class="listitem"> … … 1751 1845 <p xmlns="http://www.w3.org/1999/xhtml">The following terms are used in subsequent sections; it 1752 1846 may be helpful to refer to these definitions.</p> 1753 <p xmlns="http://www.w3.org/1999/xhtml"><a id="id 445357" class="indexterm"></a><a class="glossterm" href="#fasl-file"><em class="glossterm">fasl1847 <p xmlns="http://www.w3.org/1999/xhtml"><a id="id617613" class="indexterm"></a><a class="glossterm" href="#fasl-file"><em class="glossterm">fasl 1754 1848 files</em></a> are the object files produced 1755 1849 by <code class="literal">compile-file</code>. fasl files store the … … 1762 1856 see 1763 1857 <a class="xref" href="#Platform-specific-filename-conventions" title="Table 3.1. Platform-specific filename conventions">Table 3.1, âPlatform-specific filename conventionsâ</a> </p> 1764 <p xmlns="http://www.w3.org/1999/xhtml">The <a id="id 454540" class="indexterm"></a> <a class="glossterm" href="#lisp_kernel"><em class="glossterm">Lisp1858 <p xmlns="http://www.w3.org/1999/xhtml">The <a id="id617682" class="indexterm"></a> <a class="glossterm" href="#lisp_kernel"><em class="glossterm">Lisp 1765 1859 kernel</em></a> is a C program with a fair amount of 1766 1860 platform-specific assembly language code. Its basic job is to … … 1772 1866 files on different platforms; see 1773 1867 <a class="xref" href="#Platform-specific-filename-conventions" title="Table 3.1. Platform-specific filename conventions">Table 3.1, âPlatform-specific filename conventionsâ</a>.</p> 1774 <p xmlns="http://www.w3.org/1999/xhtml">A <a id="id 487863" class="indexterm"></a> <a class="glossterm" href="#lisp_image"><em class="glossterm">heap1868 <p xmlns="http://www.w3.org/1999/xhtml">A <a id="id632967" class="indexterm"></a> <a class="glossterm" href="#lisp_image"><em class="glossterm">heap 1775 1869 image</em></a> is a file that can be quickly mapped into a 1776 1870 process's address space. Conceptually, it's not too different … … 1783 1877 standard full heap image files on different platforms; see 1784 1878 <a class="xref" href="#Platform-specific-filename-conventions" title="Table 3.1. Platform-specific filename conventions">Table 3.1, âPlatform-specific filename conventionsâ</a>.</p> 1785 <p xmlns="http://www.w3.org/1999/xhtml">A <a id="id 489213" class="indexterm"></a> bootstrapping image is a minimal1879 <p xmlns="http://www.w3.org/1999/xhtml">A <a id="id615294" class="indexterm"></a> bootstrapping image is a minimal 1786 1880 heap image used in the process of building Clozure CL itself. The 1787 1881 bootstrapping image contains just enough code to load the rest … … 1795 1889 as-yet-unsupported ones) has a uniquely named subdirectory of 1796 1890 <code class="literal">ccl/lisp-kernel/</code>; each such 1797 <a id="id 461162" class="indexterm"></a>1891 <a id="id635477" class="indexterm"></a> 1798 1892 contains a Makefile and may contain some auxiliary files (linker 1799 1893 scripts, etc.) that are used to build the lisp kernel on a … … 2580 2674 <dt> 2581 2675 <span class="sect2"> 2582 <a href="#code-coverage-interpreting-code-coloring">4.13.4. Interpreting Code Coloring</a> 2676 <a href="#code-coverage-functions-and-variables">4.13.4. Functions and Variables</a> 2677 </span> 2678 </dt> 2679 <dt> 2680 <span class="sect2"> 2681 <a href="#code-coverage-interpreting-code-coloring">4.13.5. Interpreting Code Coloring</a> 2583 2682 </span> 2584 2683 </dt> … … 2624 2723 </p> 2625 2724 <p xmlns="http://www.w3.org/1999/xhtml"> 2626 <a id="id 477453" class="indexterm"></a>2725 <a id="id626964" class="indexterm"></a> 2627 2726 <span class="command"><strong><em class="varname"><a id="trace"></a>TRACE</em> {<em class="replaceable"><code>keyword</code></em> 2628 2727 <em class="replaceable"><code>global-value</code></em>}* {<em class="replaceable"><code>spec</code></em> | … … 3068 3167 </div> 3069 3168 <p xmlns="http://www.w3.org/1999/xhtml"> 3070 <a id="id 490618" class="indexterm"></a>3169 <a id="id645738" class="indexterm"></a> 3071 3170 <span class="command"><strong><em class="varname"><a id="trace-level"></a>CCL:*TRACE-LEVEL*</em> [Variable]</strong></span> 3072 3171 </p> 3073 3172 <p xmlns="http://www.w3.org/1999/xhtml">Variable bound to the current nesting level during execution of before and after trace actions. The default printing actions use it to determine the amount of indentation.</p> 3074 3173 <p xmlns="http://www.w3.org/1999/xhtml"> 3075 <a id="id 490644" class="indexterm"></a>3174 <a id="id645765" class="indexterm"></a> 3076 3175 <span class="command"><strong><em class="varname"><a id="trace-max-indent"></a>CCL:*TRACE-MAX-INDENT*</em> [Variable]</strong></span> 3077 3176 </p> 3078 3177 <p xmlns="http://www.w3.org/1999/xhtml">The default before and after print actions will not indent by more than the value of <em class="varname">ccl:*trace-max-indent*</em> regardless of the current trace level.</p> 3079 3178 <p xmlns="http://www.w3.org/1999/xhtml"> 3080 <a id="id 490673" class="indexterm"></a>3179 <a id="id645794" class="indexterm"></a> 3081 3180 <span class="command"><strong><em class="varname"><a id="trace-function"></a>CCL:TRACE-FUNCTION</em> <em class="replaceable"><code>spec</code></em> <em class="varname">&key</em> {<em class="replaceable"><code>keyword</code></em> <em class="replaceable"><code>value</code></em>}* [Function]</strong></span> 3082 3181 </p> … … 3086 3185 </p> 3087 3186 <p xmlns="http://www.w3.org/1999/xhtml"> 3088 <a id="id 490722" class="indexterm"></a>3187 <a id="id645842" class="indexterm"></a> 3089 3188 <span class="command"><strong><em class="varname"><a id="trace-print-level"></a>CCL:*TRACE-PRINT-LEVEL*</em> [Variable]</strong></span> 3090 3189 </p> … … 3094 3193 explicit printing done by user code.</p> 3095 3194 <p xmlns="http://www.w3.org/1999/xhtml"> 3096 <a id="id 490757" class="indexterm"></a>3195 <a id="id645877" class="indexterm"></a> 3097 3196 <span class="command"><strong><em class="varname"><a id="trace-print-length"></a>CCL:*TRACE-PRINT-LENGTH*</em> [Variable]</strong></span> 3098 3197 </p> … … 3102 3201 explicit printing done by user code.</p> 3103 3202 <p xmlns="http://www.w3.org/1999/xhtml"> 3104 <a id="id 490791" class="indexterm"></a>3203 <a id="id645912" class="indexterm"></a> 3105 3204 <span class="command"><strong><em class="varname"><a id="trace-bar-frequency"></a>CCL:*TRACE-BAR-FREQUENCY*</em> [Variable]</strong></span> 3106 3205 </p> … … 3151 3250 <div> 3152 3251 <div class="refsect1" lang="en" xml:lang="en"> 3153 <a xmlns="http://www.w3.org/1999/xhtml" id="id 490954"></a>3252 <a xmlns="http://www.w3.org/1999/xhtml" id="id646075"></a> 3154 3253 <div class="header">Arguments and Values:</div> 3155 3254 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">spec</span></i>--- … … 3186 3285 </div> 3187 3286 <div class="refsect1" lang="en" xml:lang="en"> 3188 <a xmlns="http://www.w3.org/1999/xhtml" id="id 491060"></a>3287 <a xmlns="http://www.w3.org/1999/xhtml" id="id646182"></a> 3189 3288 <div class="header">Examples:</div> 3190 3289 <p xmlns="http://www.w3.org/1999/xhtml"> … … 3231 3330 <div> 3232 3331 <div class="refsect1" lang="en" xml:lang="en"> 3233 <a xmlns="http://www.w3.org/1999/xhtml" id="id 491159"></a>3332 <a xmlns="http://www.w3.org/1999/xhtml" id="id646281"></a> 3234 3333 <div class="header">Description:</div> 3235 3334 <p xmlns="http://www.w3.org/1999/xhtml"> … … 3246 3345 </div> 3247 3346 <div class="refsect1" lang="en" xml:lang="en"> 3248 <a xmlns="http://www.w3.org/1999/xhtml" id="id 491226"></a>3347 <a xmlns="http://www.w3.org/1999/xhtml" id="id646348"></a> 3249 3348 <div class="header">Arguments and Values:</div> 3250 3349 <p xmlns="http://www.w3.org/1999/xhtml"> … … 3270 3369 <div> 3271 3370 <div class="refsect1" lang="en" xml:lang="en"> 3272 <a xmlns="http://www.w3.org/1999/xhtml" id="id 491304"></a>3371 <a xmlns="http://www.w3.org/1999/xhtml" id="id646426"></a> 3273 3372 <div class="header">Description:</div> 3274 3373 <p xmlns="http://www.w3.org/1999/xhtml"> … … 3282 3381 </div> 3283 3382 <div class="refsect1" lang="en" xml:lang="en"> 3284 <a xmlns="http://www.w3.org/1999/xhtml" id="id 491352"></a>3383 <a xmlns="http://www.w3.org/1999/xhtml" id="id646474"></a> 3285 3384 <div class="header">Arguments and Values:</div> 3286 3385 <p xmlns="http://www.w3.org/1999/xhtml"> … … 3442 3541 <div> 3443 3542 <div class="refsect1" lang="en" xml:lang="en"> 3444 <a xmlns="http://www.w3.org/1999/xhtml" id="id 491886"></a>3543 <a xmlns="http://www.w3.org/1999/xhtml" id="id647008"></a> 3445 3544 <div class="header">Description:</div> 3446 3545 <p xmlns="http://www.w3.org/1999/xhtml">The value of this variable is used when :EXTERNAL-FORMAT is … … 3468 3567 <div> 3469 3568 <div class="refsect1" lang="en" xml:lang="en"> 3470 <a xmlns="http://www.w3.org/1999/xhtml" id="id 491948"></a>3569 <a xmlns="http://www.w3.org/1999/xhtml" id="id647070"></a> 3471 3570 <div class="header">Description:</div> 3472 3571 <p xmlns="http://www.w3.org/1999/xhtml">The value of this variable is used when an external-format … … 3500 3599 <div> 3501 3600 <div class="refsect1" lang="en" xml:lang="en"> 3502 <a xmlns="http://www.w3.org/1999/xhtml" id="id 492030"></a>3601 <a xmlns="http://www.w3.org/1999/xhtml" id="id647152"></a> 3503 3602 <div class="header">Arguments and Values:</div> 3504 3603 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">domain</span></i>---This is used to indicate where the external … … 3534 3633 </div> 3535 3634 <div class="refsect1" lang="en" xml:lang="en"> 3536 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507273"></a>3635 <a xmlns="http://www.w3.org/1999/xhtml" id="id662900"></a> 3537 3636 <div class="header">Description:</div> 3538 3637 <p xmlns="http://www.w3.org/1999/xhtml">Despite the function's name, it doesn't necessarily create a … … 3707 3806 <div> 3708 3807 <div> 3709 <h4 class="title"><a id="id 507607"></a>4.5.4.1. Encoding Problems</h4>3808 <h4 class="title"><a id="id663234"></a>4.5.4.1. Encoding Problems</h4> 3710 3809 </div> 3711 3810 </div> … … 3723 3822 <div> 3724 3823 <div> 3725 <h4 class="title"><a id="id 507620"></a>4.5.4.2. Byte Order Marks</h4>3824 <h4 class="title"><a id="id663246"></a>4.5.4.2. Byte Order Marks</h4> 3726 3825 </div> 3727 3826 </div> … … 3751 3850 <div> 3752 3851 <div> 3753 <h4 class="title"><a id="id 507654"></a>4.5.4.3. <span class="function"><strong>DESCRIBE-CHARACTER-ENCODINGS</strong></span></h4>3852 <h4 class="title"><a id="id663281"></a>4.5.4.3. <span class="function"><strong>DESCRIBE-CHARACTER-ENCODINGS</strong></span></h4> 3754 3853 </div> 3755 3854 </div> … … 3773 3872 <div> 3774 3873 <div class="refsect1" lang="en" xml:lang="en"> 3775 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507716"></a>3874 <a xmlns="http://www.w3.org/1999/xhtml" id="id663342"></a> 3776 3875 <div class="header">Description:</div> 3777 3876 <p xmlns="http://www.w3.org/1999/xhtml">Writes descriptions of all defined character encodings … … 3782 3881 </div> 3783 3882 <div class="refsect1" lang="en" xml:lang="en"> 3784 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507731"></a>3883 <a xmlns="http://www.w3.org/1999/xhtml" id="id663357"></a> 3785 3884 <div class="header">See Also:</div> 3786 3885 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#Character-Encodings" title="4.5.4. Character Encodings">Section 4.5.4, âCharacter Encodingsâ</a>, <a class="xref" href="#External-Formats" title="4.5.2. External Formats">Section 4.5.2, âExternal Formatsâ</a>, <a class="xref" href="#Supported-Character-Encodings" title="4.5.4.4. Supported Character Encodings">Section 4.5.4.4, âSupported Character Encodingsâ</a></span> … … 4213 4312 <div> 4214 4313 <div> 4215 <h4 class="title"><a id="id 508410"></a>4.5.4.5. Encoding and Decoding Strings</h4>4314 <h4 class="title"><a id="id664036"></a>4.5.4.5. Encoding and Decoding Strings</h4> 4216 4315 </div> 4217 4316 </div> … … 4238 4337 <div> 4239 4338 <div class="refsect1" lang="en" xml:lang="en"> 4240 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508485"></a>4339 <a xmlns="http://www.w3.org/1999/xhtml" id="id664112"></a> 4241 4340 <div class="header">Description:</div> 4242 4341 <p xmlns="http://www.w3.org/1999/xhtml"> … … 4269 4368 <div> 4270 4369 <div class="refsect1" lang="en" xml:lang="en"> 4271 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508580"></a>4370 <a xmlns="http://www.w3.org/1999/xhtml" id="id664207"></a> 4272 4371 <div class="header">Description:</div> 4273 4372 <p xmlns="http://www.w3.org/1999/xhtml"> … … 4318 4417 <div> 4319 4418 <div class="refsect1" lang="en" xml:lang="en"> 4320 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508714"></a>4419 <a xmlns="http://www.w3.org/1999/xhtml" id="id664341"></a> 4321 4420 <div class="header">Description:</div> 4322 4421 <p xmlns="http://www.w3.org/1999/xhtml"> … … 4371 4470 <div> 4372 4471 <div class="refsect1" lang="en" xml:lang="en"> 4373 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508845"></a>4472 <a xmlns="http://www.w3.org/1999/xhtml" id="id664471"></a> 4374 4473 <div class="header">Description:</div> 4375 4474 <p xmlns="http://www.w3.org/1999/xhtml"> … … 4421 4520 </div> 4422 4521 <p xmlns="http://www.w3.org/1999/xhtml">Clozure CL sets up logical pathname translations for logical hosts: <code class="literal">ccl</code> and <code class="literal">home</code></p> 4423 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508933" class="indexterm"></a>4522 <a xmlns="http://www.w3.org/1999/xhtml" id="id664560" class="indexterm"></a> 4424 4523 <p xmlns="http://www.w3.org/1999/xhtml">The <code class="literal">CCL</code> logical host should point to the 4425 4524 <code class="literal">ccl</code> directory. It is used for a variety of … … 4480 4579 <div> 4481 4580 <div> 4482 <h4 class="title"><a id="id 509036"></a>4.6.3.1. Working with native namestrings</h4>4581 <h4 class="title"><a id="id664662"></a>4.6.3.1. Working with native namestrings</h4> 4483 4582 </div> 4484 4583 </div> … … 4499 4598 <div> 4500 4599 <div class="refsect1" lang="en" xml:lang="en"> 4501 <a xmlns="http://www.w3.org/1999/xhtml" id="id 509082"></a>4600 <a xmlns="http://www.w3.org/1999/xhtml" id="id664709"></a> 4502 4601 <div class="header">Description:</div> 4503 4602 <p xmlns="http://www.w3.org/1999/xhtml"> … … 4530 4629 <div> 4531 4630 <div class="refsect1" lang="en" xml:lang="en"> 4532 <a xmlns="http://www.w3.org/1999/xhtml" id="id 509156"></a>4631 <a xmlns="http://www.w3.org/1999/xhtml" id="id664783"></a> 4533 4632 <div class="header">Description:</div> 4534 4633 <p xmlns="http://www.w3.org/1999/xhtml"> … … 4653 4752 platforms.</p> 4654 4753 <p xmlns="http://www.w3.org/1999/xhtml"> 4655 <a id="id 509330" class="indexterm"></a>4754 <a id="id664957" class="indexterm"></a> 4656 4755 <span class="command"><strong><em class="varname"><a id="map-file-to-ivector"></a>CCL:MAP-FILE-TO-IVECTOR</em> 4657 4756 <em class="parameter"><code>pathname</code></em> … … 4713 4812 a memory error.</p> 4714 4813 <p xmlns="http://www.w3.org/1999/xhtml"> 4715 <a id="id 509463" class="indexterm"></a>4814 <a id="id665090" class="indexterm"></a> 4716 4815 <span class="command"><strong><em class="varname"><a id="unmap-ivector"></a>CCL:UNMAP-IVECTOR</em> 4717 4816 <em class="parameter"><code>displaced-array</code></em> … … 4725 4824 target is an empty vector (of length zero).</p> 4726 4825 <p xmlns="http://www.w3.org/1999/xhtml"> 4727 <a id="id 509499" class="indexterm"></a>4826 <a id="id665125" class="indexterm"></a> 4728 4827 <span class="command"><strong><em class="varname"><a id="map-file-to-octet-vector"></a>CCL:MAP-FILE-TO-OCTET-VECTOR</em> 4729 4828 <em class="parameter"><code>pathname</code></em> … … 4735 4834 bytes.</p> 4736 4835 <p xmlns="http://www.w3.org/1999/xhtml"> 4737 <a id="id 509531" class="indexterm"></a>4836 <a id="id665157" class="indexterm"></a> 4738 4837 <span class="command"><strong><em class="varname"><a id="unmap-octet-vector"></a>CCL:UNMAP-OCTET-VECTOR</em> 4739 4838 <em class="parameter"><code>displaced-array</code></em> … … 4774 4873 static.</p> 4775 4874 <p xmlns="http://www.w3.org/1999/xhtml"> 4776 <a id="id 509605" class="indexterm"></a>4875 <a id="id665232" class="indexterm"></a> 4777 4876 <span class="command"><strong><em class="varname"><a id="defstatic"></a>DEFSTATIC</em> 4778 4877 <em class="parameter"><code>var</code></em> … … 4828 4927 </div> 4829 4928 </div> 4830 <a xmlns="http://www.w3.org/1999/xhtml" id="id 509717" class="indexterm"></a>4929 <a xmlns="http://www.w3.org/1999/xhtml" id="id665344" class="indexterm"></a> 4831 4930 <p xmlns="http://www.w3.org/1999/xhtml">Clozure CL provides the 4832 4931 function <code class="literal">CCL:SAVE-APPLICATION</code>, which creates a file … … 4908 5007 converted, because address 0 can always be relied upon to refer to 4909 5008 the same thing.</p> 4910 <a xmlns="http://www.w3.org/1999/xhtml" id="id 509939" class="indexterm"></a>5009 <a xmlns="http://www.w3.org/1999/xhtml" id="id665565" class="indexterm"></a> 4911 5010 <p xmlns="http://www.w3.org/1999/xhtml">As of Clozure CL 1.2, the constant <code class="literal">CCL:+NULL-PTR+</code> 4912 5011 refers to a <code class="literal">MACPTR</code> object that points to address 0.</p> … … 4919 5018 or <code class="literal">ccl64</code> script.</p> 4920 5019 <p xmlns="http://www.w3.org/1999/xhtml"> 4921 <a id="id 509986" class="indexterm"></a>5020 <a id="id665613" class="indexterm"></a> 4922 5021 <span class="command"><strong><em class="varname"><a id="save-application"></a>SAVE-APPLICATION</em> 4923 5022 <em class="parameter"><code>filename</code></em> … … 5120 5219 <div> 5121 5220 <div class="refsect1" lang="en" xml:lang="en"> 5122 <a xmlns="http://www.w3.org/1999/xhtml" id="id 510389"></a>5221 <a xmlns="http://www.w3.org/1999/xhtml" id="id666016"></a> 5123 5222 <div class="header">Arguments and Values:</div> 5124 5223 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">out-file</span></i>--- … … 5134 5233 </div> 5135 5234 <div class="refsect1" lang="en" xml:lang="en"> 5136 <a xmlns="http://www.w3.org/1999/xhtml" id="id 510449"></a>5235 <a xmlns="http://www.w3.org/1999/xhtml" id="id666075"></a> 5137 5236 <div class="header">Description:</div> 5138 5237 <p xmlns="http://www.w3.org/1999/xhtml"> … … 5194 5293 <div> 5195 5294 <div class="refsect1" lang="en" xml:lang="en"> 5196 <a xmlns="http://www.w3.org/1999/xhtml" id="id 510540"></a>5295 <a xmlns="http://www.w3.org/1999/xhtml" id="id666166"></a> 5197 5296 <div class="header">Arguments and Values:</div> 5198 5297 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">mode</span></i>--- … … 5202 5301 </div> 5203 5302 <div class="refsect1" lang="en" xml:lang="en"> 5204 <a xmlns="http://www.w3.org/1999/xhtml" id="id 510563"></a>5303 <a xmlns="http://www.w3.org/1999/xhtml" id="id666190"></a> 5205 5304 <div class="header">Description:</div> 5206 5305 <p xmlns="http://www.w3.org/1999/xhtml"> … … 5241 5340 <div> 5242 5341 <div class="refsect1" lang="en" xml:lang="en"> 5243 <a xmlns="http://www.w3.org/1999/xhtml" id="id 510658"></a>5342 <a xmlns="http://www.w3.org/1999/xhtml" id="id666285"></a> 5244 5343 <div class="header">Arguments and Values:</div> 5245 5344 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">rounding-mode</span></i>--- … … 5250 5349 </div> 5251 5350 <div class="refsect1" lang="en" xml:lang="en"> 5252 <a xmlns="http://www.w3.org/1999/xhtml" id="id 510695"></a>5351 <a xmlns="http://www.w3.org/1999/xhtml" id="id666321"></a> 5253 5352 <div class="header">Description:</div> 5254 5353 <p xmlns="http://www.w3.org/1999/xhtml"> … … 5299 5398 <div> 5300 5399 <div class="refsect1" lang="en" xml:lang="en"> 5301 <a xmlns="http://www.w3.org/1999/xhtml" id="id 510770"></a>5400 <a xmlns="http://www.w3.org/1999/xhtml" id="id666396"></a> 5302 5401 <div class="header">Arguments and Values:</div> 5303 5402 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">object</span></i>--- … … 5306 5405 </div> 5307 5406 <div class="refsect1" lang="en" xml:lang="en"> 5308 <a xmlns="http://www.w3.org/1999/xhtml" id="id 510792"></a>5407 <a xmlns="http://www.w3.org/1999/xhtml" id="id666418"></a> 5309 5408 <div class="header">Description:</div> 5310 5409 <p xmlns="http://www.w3.org/1999/xhtml"> … … 5473 5572 <div> 5474 5573 <div class="refsect1" lang="en" xml:lang="en"> 5475 <a xmlns="http://www.w3.org/1999/xhtml" id="id 510966"></a>5574 <a xmlns="http://www.w3.org/1999/xhtml" id="id666593"></a> 5476 5575 <div class="header">Description:</div> 5477 5576 <p xmlns="http://www.w3.org/1999/xhtml"> … … 5507 5606 <div> 5508 5607 <div class="refsect1" lang="en" xml:lang="en"> 5509 <a xmlns="http://www.w3.org/1999/xhtml" id="id 511015"></a>5608 <a xmlns="http://www.w3.org/1999/xhtml" id="id666641"></a> 5510 5609 <div class="header">Discussion:</div> 5511 5610 <p xmlns="http://www.w3.org/1999/xhtml"> … … 5525 5624 </div> 5526 5625 <div class="refsect1" lang="en" xml:lang="en"> 5527 <a xmlns="http://www.w3.org/1999/xhtml" id="id 511068"></a>5626 <a xmlns="http://www.w3.org/1999/xhtml" id="id666695"></a> 5528 5627 <div class="header">Restarts:</div> 5529 5628 <p xmlns="http://www.w3.org/1999/xhtml"> … … 5593 5692 <div> 5594 5693 <div> 5595 <h4 class="title"><a id="id 511126"></a>4.12.5.1. Fancy arrays</h4>5694 <h4 class="title"><a id="id666752"></a>4.12.5.1. Fancy arrays</h4> 5596 5695 </div> 5597 5696 </div> … … 5620 5719 <div> 5621 5720 <div> 5622 <h4 class="title"><a id="id 511145"></a>4.12.5.2. Hash tables</h4>5721 <h4 class="title"><a id="id666771"></a>4.12.5.2. Hash tables</h4> 5623 5722 </div> 5624 5723 </div> … … 5668 5767 <div> 5669 5768 <div> 5670 <h4 class="title"><a id="id 511175"></a>4.12.5.3. Lists</h4>5769 <h4 class="title"><a id="id666802"></a>4.12.5.3. Lists</h4> 5671 5770 </div> 5672 5771 </div> … … 5774 5873 (progn 5775 5874 (do-this) 5776 (setq that ...) ...)) 5777 </pre> 5875 (setq that ...) ...))</pre> 5778 5876 <p xmlns="http://www.w3.org/1999/xhtml"> 5779 5877 do: … … 5783 5881 (do-this) 5784 5882 (setq that ...) ...) 5785 (init-this-and-that) 5786 </pre> 5883 (init-this-and-that)</pre> 5787 5884 <p xmlns="http://www.w3.org/1999/xhtml"> 5885 5788 5886 Then you can see the coverage information in the definition of 5789 5887 <code class="literal">init-this-and-that</code>. … … 5807 5905 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> 5808 5906 (setq ccl:*compile-code-coverage* t) 5809 (recompile-all-your-files) 5810 </pre> 5907 (recompile-all-your-files)</pre> 5811 5908 <p xmlns="http://www.w3.org/1999/xhtml"> 5812 5909 </p> … … 5816 5913 </p> 5817 5914 <p xmlns="http://www.w3.org/1999/xhtml"> 5818 When you execute function loaded from instrumented fasl files, they 5819 will record coverage information every time they are executed. The 5820 system keeps track of which instrumented files have been loaded. 5915 When you execute functions loaded from instrumented fasl files, they 5916 will record coverage information every time they are executed. 5917 You can examine that information by calling <code class="literal">ccl:report-coverage</code> 5918 or <code class="literal">ccl:coverage-statistics</code>. 5821 5919 </p> 5920 <p xmlns="http://www.w3.org/1999/xhtml"> 5921 While recording coverage, you can collect incremental coverage deltas between any two points 5922 in time. You might do this while running a test suite, to record the coverage for 5923 each test, for example: 5924 </p> 5925 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> 5926 (ccl:reset-incremental-coverage) 5927 (loop with coverage = (make-hash-table) 5928 for test in (tests-to-run) 5929 do (run-test test) 5930 do (setf (gethash test coverage) (ccl:get-incremental-coverage)) 5931 finally (return coverage))</pre> 5932 <p xmlns="http://www.w3.org/1999/xhtml">creates a hash table mapping a test to a representation of all coverage recorded while running the 5933 test. This hash table can then be passed to <code class="literal">ccl:incremental-coverage-svn-matches</code> 5934 or <code class="literal">ccl:incremental-coverage-source-matches</code>. 5935 </p> 5936 </div> 5937 <div class="sect2" lang="en" xml:lang="en"> 5938 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 5939 <div> 5940 <div> 5941 <h3 class="title"><a id="code-coverage-functions-and-variables"></a>4.13.4. Functions and Variables</h3> 5942 </div> 5943 </div> 5944 </div> 5822 5945 <p xmlns="http://www.w3.org/1999/xhtml"> 5823 5946 The following functions can be used to manage the coverage data: … … 5837 5960 <div> 5838 5961 <div class="refsect1" lang="en" xml:lang="en"> 5839 <a xmlns="http://www.w3.org/1999/xhtml" id="id 511363"></a>5962 <a xmlns="http://www.w3.org/1999/xhtml" id="id667031"></a> 5840 5963 <div class="header">Arguments and Values:</div> 5841 5964 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">output-file</span></i>--- … … 5861 5984 </div> 5862 5985 <div class="refsect1" lang="en" xml:lang="en"> 5863 <a xmlns="http://www.w3.org/1999/xhtml" id="id 511434"></a>5986 <a xmlns="http://www.w3.org/1999/xhtml" id="id667102"></a> 5864 5987 <div class="header">Example:</div> 5865 5988 <p xmlns="http://www.w3.org/1999/xhtml"> … … 5895 6018 <div> 5896 6019 <div class="refsect1" lang="en" xml:lang="en"> 5897 <a xmlns="http://www.w3.org/1999/xhtml" id="id 511513"></a>6020 <a xmlns="http://www.w3.org/1999/xhtml" id="id667181"></a> 5898 6021 <div class="header">Description:</div> 5899 6022 <p xmlns="http://www.w3.org/1999/xhtml"> … … 5917 6040 <div> 5918 6041 <div class="refsect1" lang="en" xml:lang="en"> 5919 <a xmlns="http://www.w3.org/1999/xhtml" id="id 511552"></a>6042 <a xmlns="http://www.w3.org/1999/xhtml" id="id667220"></a> 5920 6043 <div class="header">Description:</div> 5921 6044 <p xmlns="http://www.w3.org/1999/xhtml"> 5922 6045 Gets rid of the information about which instrumented files have 5923 been loaded, so ccl:report-coveragewill not report any files,5924 and ccl:save-coverage-in-filewill not save any info, until more6046 been loaded, so <code class="literal">ccl:report-coverage</code> will not report any files, 6047 and <code class="literal">ccl:save-coverage-in-file</code> will not save any info, until more 5925 6048 instrumented files are loaded. 5926 6049 </p> … … 5943 6066 <div> 5944 6067 <div class="refsect1" lang="en" xml:lang="en"> 5945 <a xmlns="http://www.w3.org/1999/xhtml" id="id 511604"></a>6068 <a xmlns="http://www.w3.org/1999/xhtml" id="id667282"></a> 5946 6069 <div class="header">Description:</div> 5947 6070 <p xmlns="http://www.w3.org/1999/xhtml"> … … 5949 6072 coverage state later. This allows you to combine multiple runs 5950 6073 or continue in a later session. Equivalent to 5951 (ccl:write-coverage-to-file (ccl:save-coverage) pathname).6074 <code class="literal">(ccl:write-coverage-to-file (ccl:get-coverage) pathname)</code>. 5952 6075 </p> 5953 6076 </div> … … 5969 6092 <div> 5970 6093 <div class="refsect1" lang="en" xml:lang="en"> 5971 <a xmlns="http://www.w3.org/1999/xhtml" id="id 511656"></a>6094 <a xmlns="http://www.w3.org/1999/xhtml" id="id667339"></a> 5972 6095 <div class="header">Description:</div> 5973 6096 <p xmlns="http://www.w3.org/1999/xhtml"> … … 5977 6100 info is only restored for files that have been loaded in this 5978 6101 session. For example if in a previous session you had loaded 5979 "foo.lx86fsl"and then saved the coverage info, in this session5980 you must load the same "foo.lx86fsl"before calling5981 restore-coverage-from-filein order to retrieve the stored5982 coverage info for "foo". Equivalent to (ccl:restore-coverage5983 (ccl:read-coverage-from-file pathname)) .6102 <code class="filename">"foo.lx86fsl"</code> and then saved the coverage info, in this session 6103 you must load the same <code class="filename">"foo.lx86fsl"</code> before calling 6104 <code class="literal">restore-coverage-from-file</code> in order to retrieve the stored 6105 coverage info for "foo". Equivalent to <code class="literal">(ccl:restore-coverage 6106 (ccl:read-coverage-from-file pathname))</code>. 5984 6107 </p> 5985 6108 </div> … … 5988 6111 <p> 5989 6112 <div class="refentrytitle"> 5990 <a id="f_ save-coverage"></a>6113 <a id="f_get-coverage"></a> 5991 6114 <strong>[Function]</strong> 5992 6115 <br></br> 5993 <code> SAVE-COVERAGE</code>6116 <code>GET-COVERAGE</code> 5994 6117 </div> 5995 6118 <div class="refentrytitle"> … … 6000 6123 <div> 6001 6124 <div class="refsect1" lang="en" xml:lang="en"> 6002 <a xmlns="http://www.w3.org/1999/xhtml" id="id 511699"></a>6125 <a xmlns="http://www.w3.org/1999/xhtml" id="id667403"></a> 6003 6126 <div class="header">Description:</div> 6004 6127 <p xmlns="http://www.w3.org/1999/xhtml"> 6005 6128 Returns a snapshot of the current coverage data. A snapshot is a 6006 6129 copy of the current coverage state. It can be saved in a file 6007 with ccl:write-coverage-to-file, reinstated back as the current6008 state with ccl:restore-coverage, or combined with other6009 snapshots with ccl:combine-coverage.6130 with <code class="literal">ccl:write-coverage-to-file</code>, reinstated back as the current 6131 state with <code class="literal">ccl:restore-coverage</code>, or combined with other 6132 snapshots with <code class="literal">ccl:combine-coverage</code>. 6010 6133 </p> 6011 6134 </div> … … 6027 6150 <div> 6028 6151 <div class="refsect1" lang="en" xml:lang="en"> 6029 <a xmlns="http://www.w3.org/1999/xhtml" id="id 511752"></a>6152 <a xmlns="http://www.w3.org/1999/xhtml" id="id667470"></a> 6030 6153 <div class="header">Description:</div> 6031 6154 <p xmlns="http://www.w3.org/1999/xhtml"> … … 6050 6173 <div> 6051 6174 <div class="refsect1" lang="en" xml:lang="en"> 6052 <a xmlns="http://www.w3.org/1999/xhtml" id="id 511803"></a>6175 <a xmlns="http://www.w3.org/1999/xhtml" id="id667521"></a> 6053 6176 <div class="header">Description:</div> 6054 6177 <p xmlns="http://www.w3.org/1999/xhtml"> … … 6074 6197 <div> 6075 6198 <div class="refsect1" lang="en" xml:lang="en"> 6076 <a xmlns="http://www.w3.org/1999/xhtml" id="id 511854"></a>6199 <a xmlns="http://www.w3.org/1999/xhtml" id="id667571"></a> 6077 6200 <div class="header">Description:</div> 6078 6201 <p xmlns="http://www.w3.org/1999/xhtml"> 6079 6202 Saves the coverage snapshot in a file. The snapshot can be 6080 loaded back with ccl:read-coverage-from-fileor loaded and6081 restored with ccl:restore-coverage-from-file. Note that the file6203 loaded back with <code class="literal">ccl:read-coverage-from-file</code> or loaded and 6204 restored with <code class="literal">ccl:restore-coverage-from-file</code>. Note that the file 6082 6205 created is actually a lisp source file and can be compiled for 6083 6206 faster loading. … … 6101 6224 <div> 6102 6225 <div class="refsect1" lang="en" xml:lang="en"> 6103 <a xmlns="http://www.w3.org/1999/xhtml" id="id 511906"></a>6226 <a xmlns="http://www.w3.org/1999/xhtml" id="id667634"></a> 6104 6227 <div class="header">Description:</div> 6105 6228 <p xmlns="http://www.w3.org/1999/xhtml"> 6106 6229 Returns the snapshot saved in pathname. Doesn't affect the 6107 6230 current coverage state. pathname can be the file previously 6108 created with ccl:write-coverage-to-fileor6109 ccl:save-coverage-in-file, or it can be the name of the fasl6231 created with <code class="literal">ccl:write-coverage-to-file</code> or 6232 <code class="literal">ccl:save-coverage-in-file</code>, or it can be the name of the fasl 6110 6233 created from compiling such a file. 6111 6234 </p> … … 6128 6251 <div> 6129 6252 <div class="refsect1" lang="en" xml:lang="en"> 6130 <a xmlns="http://www.w3.org/1999/xhtml" id="id 511959"></a>6253 <a xmlns="http://www.w3.org/1999/xhtml" id="id667701"></a> 6131 6254 <div class="header">Description:</div> 6132 6255 <p xmlns="http://www.w3.org/1999/xhtml"> 6133 Returns a sequence ccl:coverage-statisticsobjects, one for each6256 Returns a sequence of <code class="literal">ccl:coverage-statistics</code> objects, one for each 6134 6257 source file, containing the same information as that written to 6135 the statistics file by ccl:report-coverage. The following6136 accessors are defined for ccl:coverage-statisticsobjects:6258 the statistics file by <code class="literal">ccl:report-coverage</code>. The following 6259 accessors are defined for <code class="literal">ccl:coverage-statistics</code> objects: 6137 6260 </p> 6138 6261 <div xmlns="http://www.w3.org/1999/xhtml" class="variablelist"> … … 6282 6405 <p> 6283 6406 <div class="refentrytitle"> 6407 <a id="f_reset-incremental-coverage"></a> 6408 <strong>[Function]</strong> 6409 <br></br> 6410 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>reset-incremental-coverage</strong></span> 6411 </code> 6412 </div> 6413 <div class="refentrytitle"> 6414 Reset incremental coverage. 6415 </div> 6416 </p> 6417 <p> 6418 <div> 6419 <div class="refsect1" lang="en" xml:lang="en"> 6420 <a xmlns="http://www.w3.org/1999/xhtml" id="id667952"></a> 6421 <div class="header">Description:</div> 6422 <p xmlns="http://www.w3.org/1999/xhtml"> 6423 Marks a starting point for recording incremental coverage. 6424 Note that calling 6425 this function does not affect regular coverage data (whereas calling 6426 <code class="literal">ccl:reset-coverage</code> resets incremental coverage as well). 6427 </p> 6428 </div> 6429 </div> 6430 </p> 6431 <p> 6432 <div class="refentrytitle"> 6433 <a id="f_get-incremental-coverage"></a> 6434 <strong>[Function]</strong> 6435 <br></br> 6436 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>get-incremental-coverage</strong></span> <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> (reset t) 6437 </code> 6438 </div> 6439 <div class="refentrytitle"> 6440 Returns the delta of coverage since the last incremental reset. 6441 </div> 6442 </p> 6443 <p> 6444 <div> 6445 <div class="refsect1" lang="en" xml:lang="en"> 6446 <a xmlns="http://www.w3.org/1999/xhtml" id="id668012"></a> 6447 <div class="header">Description:</div> 6448 <p xmlns="http://www.w3.org/1999/xhtml"> 6449 Returns the delta of coverage since the last reset of incremental coverage. 6450 If <code class="literal">reset</code> is true (the default), it also resets incremental coverage 6451 now, so that the next call to <code class="literal">get-incremental-coverage</code> will return 6452 the delta from this point. 6453 </p> 6454 <p xmlns="http://www.w3.org/1999/xhtml"> 6455 Incremental coverage deltas are represented differently than the full coverage snapshots 6456 returned by functions such as <code class="literal">ccl:get-coverage</code>. Incremental 6457 coverage uses an abbreviated format 6458 and is missing some of the information in a full snapshot, and therefore cannot be passed to 6459 functions documented to accept a <span style="color: red"><variable>snapshot</variable></span>, only to functions 6460 specifically documented to accept incremental coverage deltas. 6461 </p> 6462 </div> 6463 </div> 6464 </p> 6465 <p> 6466 <div class="refentrytitle"> 6467 <a id="f_incremental-coverage-source-matches"></a> 6468 <strong>[Function]</strong> 6469 <br></br> 6470 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>incremental-coverage-source-matches</strong></span> collection sources 6471 </code> 6472 </div> 6473 <div class="refentrytitle"> 6474 Find incremental coverage deltas intersecting source regions. 6475 </div> 6476 </p> 6477 <p> 6478 <div> 6479 <div class="refsect1" lang="en" xml:lang="en"> 6480 <a xmlns="http://www.w3.org/1999/xhtml" id="id668090"></a> 6481 <div class="header">Arguments and Values:</div> 6482 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">collection</span></i>--- 6483 A hash table mapping arbitrary keys to incremental coverage deltas, or a sequence of 6484 incremental coverage deltas. 6485 </p> 6486 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">sources</span></i>--- 6487 A list of pathnames and/or source-notes, the latter representing a range within a file. 6488 </p> 6489 </div> 6490 <div class="refsect1" lang="en" xml:lang="en"> 6491 <a xmlns="http://www.w3.org/1999/xhtml" id="id668127"></a> 6492 <div class="header">Description:</div> 6493 <p xmlns="http://www.w3.org/1999/xhtml"> 6494 Given a hash table <code class="literal">collection</code> whose values are incremental coverage 6495 deltas, return a list of all keys corresponding to those deltas that intersect any region 6496 in <code class="literal">sources</code>. 6497 </p> 6498 <p xmlns="http://www.w3.org/1999/xhtml"> 6499 For example if the deltas represent tests, then the returned value is a list of all tests 6500 that cover some part of the source regions. 6501 </p> 6502 <p xmlns="http://www.w3.org/1999/xhtml"> 6503 <code class="literal">collection</code> can also be a sequence of deltas, in which case a subsequence 6504 of matching deltas is returned. In particular you can test whether any particular delta 6505 intersects the sources by passing it in as a single-element list. 6506 </p> 6507 </div> 6508 </div> 6509 </p> 6510 <p> 6511 <div class="refentrytitle"> 6512 <a id="f_incremental-coverage-svn-matches"></a> 6513 <strong>[Function]</strong> 6514 <br></br> 6515 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>incremental-coverage-svn-matches</strong></span> collection <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> (directory (current-directory)) (revision :base) 6516 </code> 6517 </div> 6518 <div class="refentrytitle"> 6519 Find incremental coverage deltas matching changes from a particular subversion revision. 6520 </div> 6521 </p> 6522 <p> 6523 <div> 6524 <div class="refsect1" lang="en" xml:lang="en"> 6525 <a xmlns="http://www.w3.org/1999/xhtml" id="id668207"></a> 6526 <div class="header">Arguments and Values:</div> 6527 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">collection</span></i>--- 6528 A hash table mapping arbitrary keys to incremental coverage deltas, or a sequence of 6529 incremental coverage deltas. 6530 </p> 6531 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">directory</span></i>--- 6532 The pathname of a subversion working directory. 6533 </p> 6534 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">revision</span></i>--- 6535 The revision to compare to the working directory, an integer or another 6536 value whose printed representation is suitable for passing as the 6537 <code xmlns="http://www.w3.org/1999/xhtml" class="literal">--revision</code> argument 6538 to <code xmlns="http://www.w3.org/1999/xhtml" class="filename">svn</code>. 6539 </p> 6540 </div> 6541 <div class="refsect1" lang="en" xml:lang="en"> 6542 <a xmlns="http://www.w3.org/1999/xhtml" id="id668268"></a> 6543 <div class="header">Description:</div> 6544 <p xmlns="http://www.w3.org/1999/xhtml"> 6545 Given a hash table <code class="literal">collection</code> whose values are incremental coverage 6546 deltas, return a list of all keys corresponding to those deltas that intersect any changed 6547 source in <code class="literal">directory</code> since revision <code class="literal">revision</code> in subversion. 6548 </p> 6549 <p xmlns="http://www.w3.org/1999/xhtml"> 6550 For example if the deltas represent tests, then the returned value is a list of all tests 6551 that might be affected by the changes. 6552 </p> 6553 <p xmlns="http://www.w3.org/1999/xhtml"> 6554 <code class="literal">collection</code> can also be a sequence of deltas, in which case a subsequence 6555 of matching deltas is returned. In particular you can test whether any particular delta 6556 is affected by the changes by passing it in as a single-element list. 6557 </p> 6558 </div> 6559 </div> 6560 </p> 6561 <p> 6562 <div class="refentrytitle"> 6284 6563 <a id="v_compile-code-coverage"></a> 6285 6564 <strong>[Variable]</strong> … … 6295 6574 <div> 6296 6575 <div class="refsect1" lang="en" xml:lang="en"> 6297 <a xmlns="http://www.w3.org/1999/xhtml" id="id 512194"></a>6576 <a xmlns="http://www.w3.org/1999/xhtml" id="id668348"></a> 6298 6577 <div class="header">Description:</div> 6299 6578 <p xmlns="http://www.w3.org/1999/xhtml"> … … 6320 6599 <div> 6321 6600 <div class="refsect1" lang="en" xml:lang="en"> 6322 <a xmlns="http://www.w3.org/1999/xhtml" id="id 512246"></a>6601 <a xmlns="http://www.w3.org/1999/xhtml" id="id668400"></a> 6323 6602 <div class="header">Description:</div> 6324 6603 <p xmlns="http://www.w3.org/1999/xhtml"> 6325 6604 This macro arranges so that body doesn't record internal details 6326 6605 of code coverage. It will be considered totally covered if it's 6327 entered at all. The Common Lisp macros ASSERT and CHECK-TYPEuse6606 entered at all. The Common Lisp macros <code class="literal">ASSERT</code> and <code class="literal">CHECK-TYPE</code> use 6328 6607 this macro. 6329 6608 </p> … … 6336 6615 <div> 6337 6616 <div> 6338 <h3 class="title"><a id="code-coverage-interpreting-code-coloring"></a>4.13. 4. Interpreting Code Coloring</h3>6617 <h3 class="title"><a id="code-coverage-interpreting-code-coloring"></a>4.13.5. Interpreting Code Coloring</h3> 6339 6618 </div> 6340 6619 </div> … … 6363 6642 form will have the outer form's coverage color. If the syntax of outer form involves some non-executable 6364 6643 forms, or forms that do not have coverage info of their own for whatever reason, then they will just 6365 inherit the color of the outer form, because it doesn't get replaced with a color of itsown.6644 inherit the color of the outer form, because they don't get repainted with a color of their own. 6366 6645 </p> 6367 6646 <p xmlns="http://www.w3.org/1999/xhtml"> … … 6396 6675 <div> 6397 6676 <div class="refsect1" lang="en" xml:lang="en"> 6398 <a xmlns="http://www.w3.org/1999/xhtml" id="id 512348"></a>6677 <a xmlns="http://www.w3.org/1999/xhtml" id="id668512"></a> 6399 6678 <div class="header">Summary:</div> 6400 6679 <p xmlns="http://www.w3.org/1999/xhtml"> … … 6431 6710 <div> 6432 6711 <div class="refsect1" lang="en" xml:lang="en"> 6433 <a xmlns="http://www.w3.org/1999/xhtml" id="id 512410"></a>6712 <a xmlns="http://www.w3.org/1999/xhtml" id="id668574"></a> 6434 6713 <div class="header">Summary:</div> 6435 6714 <p xmlns="http://www.w3.org/1999/xhtml"> … … 6462 6741 <div> 6463 6742 <div class="refsect1" lang="en" xml:lang="en"> 6464 <a xmlns="http://www.w3.org/1999/xhtml" id="id 512467"></a>6743 <a xmlns="http://www.w3.org/1999/xhtml" id="id668631"></a> 6465 6744 <div class="header">Summary:</div> 6466 6745 <p xmlns="http://www.w3.org/1999/xhtml"> … … 6692 6971 <div> 6693 6972 <div> 6694 <h4 class="title"><a id="id 464004"></a>5.4.2.1. Checking for Updates</h4>6973 <h4 class="title"><a id="id651919"></a>5.4.2.1. Checking for Updates</h4> 6695 6974 </div> 6696 6975 </div> … … 6824 7103 the required subsystems, if necessary.</p> 6825 7104 <p xmlns="http://www.w3.org/1999/xhtml"> 6826 <a id="id 468313" class="indexterm"></a>7105 <a id="id600388" class="indexterm"></a> 6827 7106 <span class="command"><strong><em class="varname"><a id="build-application"></a>BUILD-APPLICATION</em> <em class="varname">&key</em> 6828 7107 (<em class="parameter"><code>name</code></em> <em class="replaceable"><code>"MyApplication"</code></em>) … … 7094 7373 <div> 7095 7374 <div> 7096 <h2 class="title"><a id=" Programming-with-Threads"></a>Chapter 6. Programming with Threads</h2>7375 <h2 class="title"><a id="HemlockProgramming"></a>Chapter 6. Hemlock Programming</h2> 7097 7376 </div> 7098 7377 </div> … … 7102 7381 <dt> 7103 7382 <span class="sect1"> 7104 <a href="# Threads-overview">6.1. Threads Overview</a>7383 <a href="#HemlockProgrammingIntroduction">6.1. Introduction</a> 7105 7384 </span> 7106 7385 </dt> 7107 7386 <dt> 7108 7387 <span class="sect1"> 7109 <a href="#Intentionally--Missing-Functionality">6.2. (Intentionally) Missing Functionality</a> 7110 </span> 7111 </dt> 7112 <dt> 7113 <span class="sect1"> 7114 <a href="#Implementation-Decisions-and-Open-Questions">6.3. Implementation Decisions and Open Questions</a> 7388 <a href="#HemlockProgrammingRepresentationOfText">6.2. Representation of Text</a> 7115 7389 </span> 7116 7390 </dt> … … 7119 7393 <dt> 7120 7394 <span class="sect2"> 7121 <a href="# Thread-Stack-Sizes">6.3.1. Thread Stack Sizes</a>7395 <a href="#Lines">6.2.1. Lines</a> 7122 7396 </span> 7123 7397 </dt> 7124 7398 <dt> 7125 7399 <span class="sect2"> 7126 <a href="#id480092">6.3.2. As of August 2003:</a> 7400 <a href="#Marks">6.2.2. Marks</a> 7401 </span> 7402 </dt> 7403 <dt> 7404 <span class="sect2"> 7405 <a href="#Regions">6.2.3. Regions</a> 7127 7406 </span> 7128 7407 </dt> … … 7131 7410 <dt> 7132 7411 <span class="sect1"> 7133 <a href="#Porting-Code-from-the-Old-Thread-Model">6.4. Porting Code from the Old Thread Model</a> 7134 </span> 7135 </dt> 7136 <dt> 7137 <span class="sect1"> 7138 <a href="#Background-Terminal-Input">6.5. Background Terminal Input</a> 7412 <a href="#HemlockProgrammingBuffers">6.3. Buffers</a> 7139 7413 </span> 7140 7414 </dt> … … 7143 7417 <dt> 7144 7418 <span class="sect2"> 7145 <a href="# backgrount-ti-overview">6.5.1. Overview</a>7419 <a href="#CurrentBuffer">6.3.1. The Current Buffer</a> 7146 7420 </span> 7147 7421 </dt> 7148 7422 <dt> 7149 7423 <span class="sect2"> 7150 <a href="# background-terminal-example">6.5.2. An example</a>7424 <a href="#BufferFunctions">6.3.2. Buffer Functions</a> 7151 7425 </span> 7152 7426 </dt> 7153 7427 <dt> 7154 7428 <span class="sect2"> 7155 <a href="#A-more-elaborate-example-">6.5.3. A more elaborate example.</a> 7156 </span> 7157 </dt> 7158 <dt> 7159 <span class="sect2"> 7160 <a href="#Summary">6.5.4. Summary</a> 7429 <a href="#Modelines">6.3.3. Modelines</a> 7161 7430 </span> 7162 7431 </dt> … … 7165 7434 <dt> 7166 7435 <span class="sect1"> 7167 <a href="#The-Threads-which-CCL-Uses-for-Its-Own-Purposes">6.6. The Threads which Clozure CL Uses for Its Own Purposes</a> 7436 <a href="#HemlockProgrammingAlteringAndSearchingText">6.4. Altering and Searching Text</a> 7437 </span> 7438 </dt> 7439 <dd> 7440 <dl> 7441 <dt> 7442 <span class="sect2"> 7443 <a href="#AlteringText">6.4.1. Altering Text</a> 7444 </span> 7445 </dt> 7446 <dt> 7447 <span class="sect2"> 7448 <a href="#TextPredicates">6.4.2. Text Predicates</a> 7449 </span> 7450 </dt> 7451 <dt> 7452 <span class="sect2"> 7453 <a href="#KillRing">6.4.3. Kill Ring</a> 7454 </span> 7455 </dt> 7456 <dt> 7457 <span class="sect2"> 7458 <a href="#ActiveRegions">6.4.4. Active Regions</a> 7459 </span> 7460 </dt> 7461 <dt> 7462 <span class="sect2"> 7463 <a href="#SearchingAndReplacing">6.4.5. Searching and Replacing</a> 7464 </span> 7465 </dt> 7466 </dl> 7467 </dd> 7468 <dt> 7469 <span class="sect1"> 7470 <a href="#HemlockProgrammingTheCurrentEnvironment">6.5. The Current Environment</a> 7471 </span> 7472 </dt> 7473 <dd> 7474 <dl> 7475 <dt> 7476 <span class="sect2"> 7477 <a href="#DifferentScopes">6.5.1. Different Scopes</a> 7478 </span> 7479 </dt> 7480 <dt> 7481 <span class="sect2"> 7482 <a href="#Shadowing">6.5.2. Shadowing</a> 7483 </span> 7484 </dt> 7485 </dl> 7486 </dd> 7487 <dt> 7488 <span class="sect1"> 7489 <a href="#HemlockProgrammingHemlockVariables">6.6. Hemlock Variables</a> 7490 </span> 7491 </dt> 7492 <dd> 7493 <dl> 7494 <dt> 7495 <span class="sect2"> 7496 <a href="#VariableNames">6.6.1. Variable Names</a> 7497 </span> 7498 </dt> 7499 <dt> 7500 <span class="sect2"> 7501 <a href="#VariableFunctions">6.6.2. Variable Functions</a> 7502 </span> 7503 </dt> 7504 <dt> 7505 <span class="sect2"> 7506 <a href="#Hooks">6.6.3. Hooks</a> 7507 </span> 7508 </dt> 7509 </dl> 7510 </dd> 7511 <dt> 7512 <span class="sect1"> 7513 <a href="#HemlockProgrammingCommands">6.7. Commands</a> 7514 </span> 7515 </dt> 7516 <dd> 7517 <dl> 7518 <dt> 7519 <span class="sect2"> 7520 <a href="#HemlockProgrammingCommandsIntroduction">6.7.1. Introduction</a> 7521 </span> 7522 </dt> 7523 <dt> 7524 <span class="sect2"> 7525 <a href="#CommandInterpreter">6.7.2. The Command Interpreter</a> 7526 </span> 7527 </dt> 7528 <dt> 7529 <span class="sect2"> 7530 <a href="#CommandTypes">6.7.3. Command Types</a> 7531 </span> 7532 </dt> 7533 <dt> 7534 <span class="sect2"> 7535 <a href="#CommandArguments">6.7.4. Command Arguments</a> 7536 </span> 7537 </dt> 7538 </dl> 7539 </dd> 7540 <dt> 7541 <span class="sect1"> 7542 <a href="#HemlockProgrammingModes">6.8. Modes</a> 7543 </span> 7544 </dt> 7545 <dd> 7546 <dl> 7547 <dt> 7548 <span class="sect2"> 7549 <a href="#ModeHooks">6.8.1. Mode Hooks</a> 7550 </span> 7551 </dt> 7552 <dt> 7553 <span class="sect2"> 7554 <a href="#MajorAndMinorModes">6.8.2. Major and Minor Modes</a> 7555 </span> 7556 </dt> 7557 <dt> 7558 <span class="sect2"> 7559 <a href="#ModeFunctions">6.8.3. Mode Functions</a> 7560 </span> 7561 </dt> 7562 </dl> 7563 </dd> 7564 <dt> 7565 <span class="sect1"> 7566 <a href="#HemlockProgrammingCharacterAttributes">6.9. Character Attributes</a> 7567 </span> 7568 </dt> 7569 <dd> 7570 <dl> 7571 <dt> 7572 <span class="sect2"> 7573 <a href="#HemlockProgrammingCharacterAttributesIntroduction">6.9.1. Introduction</a> 7574 </span> 7575 </dt> 7576 <dt> 7577 <span class="sect2"> 7578 <a href="#CharacterAttributeNames">6.9.2. Character Attribute Names</a> 7579 </span> 7580 </dt> 7581 <dt> 7582 <span class="sect2"> 7583 <a href="#CharacterAttributeFunctions">6.9.3. Character Attribute Functions</a> 7584 </span> 7585 </dt> 7586 <dt> 7587 <span class="sect2"> 7588 <a href="#CharacterAttributeHooks">6.9.4. Character Attribute Hooks</a> 7589 </span> 7590 </dt> 7591 <dt> 7592 <span class="sect2"> 7593 <a href="#SystemDefinedCharacterAttributes">6.9.5. System Defined Character Attributes</a> 7594 </span> 7595 </dt> 7596 </dl> 7597 </dd> 7598 <dt> 7599 <span class="sect1"> 7600 <a href="#HemlockProgrammingControllingTheDisplay">6.10. Controlling the Display</a> 7601 </span> 7602 </dt> 7603 <dd> 7604 <dl> 7605 <dt> 7606 <span class="sect2"> 7607 <a href="#Views">6.10.1. Views</a> 7608 </span> 7609 </dt> 7610 <dt> 7611 <span class="sect2"> 7612 <a href="#CurrentView">6.10.2. The Current View</a> 7613 </span> 7614 </dt> 7615 <dt> 7616 <span class="sect2"> 7617 <a href="#ViewFunctions">6.10.3. View Functions</a> 7618 </span> 7619 </dt> 7620 <dt> 7621 <span class="sect2"> 7622 <a href="#CursorPositions">6.10.4. Cursor Positions</a> 7623 </span> 7624 </dt> 7625 <dt> 7626 <span class="sect2"> 7627 <a href="#Redisplay">6.10.5. Redisplay</a> 7628 </span> 7629 </dt> 7630 </dl> 7631 </dd> 7632 <dt> 7633 <span class="sect1"> 7634 <a href="#HemlockProgrammingLogicalKeyEvents">6.11. Logical Key-Events</a> 7635 </span> 7636 </dt> 7637 <dd> 7638 <dl> 7639 <dt> 7640 <span class="sect2"> 7641 <a href="#HemlockProgrammingLogicalKeyEventsIntroduction">6.11.1. Introduction</a> 7642 </span> 7643 </dt> 7644 <dt> 7645 <span class="sect2"> 7646 <a href="#LogicalKeyEventFunctions">6.11.2. Logical Key-Event Functions</a> 7647 </span> 7648 </dt> 7649 <dt> 7650 <span class="sect2"> 7651 <a href="#SystemDefinedLogicalKeyEvents">6.11.3. System Defined Logical Key-Events</a> 7652 </span> 7653 </dt> 7654 </dl> 7655 </dd> 7656 <dt> 7657 <span class="sect1"> 7658 <a href="#EchoArea">6.12. The Echo Area</a> 7659 </span> 7660 </dt> 7661 <dd> 7662 <dl> 7663 <dt> 7664 <span class="sect2"> 7665 <a href="#EchoAreaFunctions">6.12.1. Echo Area Functions</a> 7666 </span> 7667 </dt> 7668 <dt> 7669 <span class="sect2"> 7670 <a href="#PromptingFunctions">6.12.2. Prompting Functions</a> 7671 </span> 7672 </dt> 7673 <dt> 7674 <span class="sect2"> 7675 <a href="#ControlOfParsingBehavior">6.12.3. Control of Parsing Behavior</a> 7676 </span> 7677 </dt> 7678 <dt> 7679 <span class="sect2"> 7680 <a href="#DefiningNewPromptingFunctions">6.12.4. Defining New Prompting Functions</a> 7681 </span> 7682 </dt> 7683 <dt> 7684 <span class="sect2"> 7685 <a href="#SomeEchoAreaCommands">6.12.5. Some Echo Area Commands</a> 7686 </span> 7687 </dt> 7688 </dl> 7689 </dd> 7690 <dt> 7691 <span class="sect1"> 7692 <a href="#Files">6.13. Files</a> 7693 </span> 7694 </dt> 7695 <dd> 7696 <dl> 7697 <dt> 7698 <span class="sect2"> 7699 <a href="#FileOptionsAndTypeHooks">6.13.1. File Options and Type Hooks</a> 7700 </span> 7701 </dt> 7702 <dt> 7703 <span class="sect2"> 7704 <a href="#PathnamesAndBuffers">6.13.2. Pathnames and Buffers</a> 7705 </span> 7706 </dt> 7707 <dt> 7708 <span class="sect2"> 7709 <a href="#FileGroups">6.13.3. File Groups</a> 7710 </span> 7711 </dt> 7712 <dt> 7713 <span class="sect2"> 7714 <a href="#FileReadingAndWriting">6.13.4. File Reading and Writing</a> 7715 </span> 7716 </dt> 7717 </dl> 7718 </dd> 7719 <dt> 7720 <span class="sect1"> 7721 <a href="#HemlockProgrammingHemlockSLispEnvironment">6.14. Hemlock's Lisp Environment</a> 7722 </span> 7723 </dt> 7724 <dd> 7725 <dl> 7726 <dt> 7727 <span class="sect2"> 7728 <a href="#EnteringAndLeavingTheEditor">6.14.1. Entering and Leaving the Editor</a> 7729 </span> 7730 </dt> 7731 <dt> 7732 <span class="sect2"> 7733 <a href="#KeyboardInput">6.14.2. Keyboard Input</a> 7734 </span> 7735 </dt> 7736 <dt> 7737 <span class="sect2"> 7738 <a href="#HemlockStreams">6.14.3. Hemlock Streams</a> 7739 </span> 7740 </dt> 7741 <dt> 7742 <span class="sect2"> 7743 <a href="#InterfaceToTheErrorSystem">6.14.4. Interface to the Error System</a> 7744 </span> 7745 </dt> 7746 <dt> 7747 <span class="sect2"> 7748 <a href="#DefinitionEditing">6.14.5. Definition Editing</a> 7749 </span> 7750 </dt> 7751 <dt> 7752 <span class="sect2"> 7753 <a href="#EventScheduling">6.14.6. Event Scheduling</a> 7754 </span> 7755 </dt> 7756 <dt> 7757 <span class="sect2"> 7758 <a href="#Miscellaneous">6.14.7. Miscellaneous</a> 7759 </span> 7760 </dt> 7761 </dl> 7762 </dd> 7763 <dt> 7764 <span class="sect1"> 7765 <a href="#HemlockProgrammingHighLevelTextPrimitives">6.15. High-Level Text Primitives</a> 7766 </span> 7767 </dt> 7768 <dd> 7769 <dl> 7770 <dt> 7771 <span class="sect2"> 7772 <a href="#IndentingText">6.15.1. Indenting Text</a> 7773 </span> 7774 </dt> 7775 <dt> 7776 <span class="sect2"> 7777 <a href="#LispTextBuffers">6.15.2. Lisp Text Buffers</a> 7778 </span> 7779 </dt> 7780 <dt> 7781 <span class="sect2"> 7782 <a href="#EnglishTextBuffers">6.15.3. English Text Buffers</a> 7783 </span> 7784 </dt> 7785 <dt> 7786 <span class="sect2"> 7787 <a href="#LogicalPages">6.15.4. Logical Pages</a> 7788 </span> 7789 </dt> 7790 <dt> 7791 <span class="sect2"> 7792 <a href="#Filling">6.15.5. Filling</a> 7793 </span> 7794 </dt> 7795 </dl> 7796 </dd> 7797 <dt> 7798 <span class="sect1"> 7799 <a href="#HemlockProgrammingUtilities">6.16. Utilities</a> 7800 </span> 7801 </dt> 7802 <dd> 7803 <dl> 7804 <dt> 7805 <span class="sect2"> 7806 <a href="#StringTableFunctions">6.16.1. String-table Functions</a> 7807 </span> 7808 </dt> 7809 <dt> 7810 <span class="sect2"> 7811 <a href="#RingFunctions">6.16.2. Ring Functions</a> 7812 </span> 7813 </dt> 7814 <dt> 7815 <span class="sect2"> 7816 <a href="#UndoingCommands">6.16.3. Undoing commands</a> 7817 </span> 7818 </dt> 7819 </dl> 7820 </dd> 7821 <dt> 7822 <span class="sect1"> 7823 <a href="#HemlockProgrammingMiscellaneous">6.17. Miscellaneous</a> 7824 </span> 7825 </dt> 7826 <dd> 7827 <dl> 7828 <dt> 7829 <span class="sect2"> 7830 <a href="#KeyEvents">6.17.1. Key-events</a> 7831 </span> 7832 </dt> 7833 </dl> 7834 </dd> 7835 </dl> 7836 </div> 7837 <div class="sect1" lang="en" xml:lang="en"> 7838 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 7839 <div> 7840 <div> 7841 <h2 class="title" style="clear: both"><a id="HemlockProgrammingIntroduction"></a>6.1. Introduction</h2> 7842 </div> 7843 </div> 7844 </div> 7845 <p xmlns="http://www.w3.org/1999/xhtml"> 7846 Hemlock is the text editor used in Clozure CL. It was originally based on the <a class="ulink" href="http://www.cons.org/cmucl/hemlock/index.html" target="_top">CMU Hemlock editor</a>, but has since diverged from it in various ways. We continue to call the editor part of our IDE <code class="code">Hemlock</code> to give credit where credit is due, but we make no attempt at source or API compatibility with the original Hemlock. 7847 </p> 7848 <p xmlns="http://www.w3.org/1999/xhtml"> 7849 Like the code, this documentation is based on the original Hemlock documentation, modified as necessary. 7850 </p> 7851 <p xmlns="http://www.w3.org/1999/xhtml"> 7852 Hemlock follows in the tradition of Emacs-compatible editors, with a rich set of extensible commands. This document describes the API for implementing new commands. The basic editor consists of a set of Lisp utility functions for manipulating buffers and the other data structures of the editor. All user level commands are written in terms of these 7853 functions. To find out how to define commands see <a class="ulink" href="HemlockProgrammer/Commands" target="_top">Commands</a>. 7854 </p> 7855 </div> 7856 <div class="sect1" lang="en" xml:lang="en"> 7857 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 7858 <div> 7859 <div> 7860 <h2 class="title" style="clear: both"><a id="HemlockProgrammingRepresentationOfText"></a>6.2. Representation of Text</h2> 7861 </div> 7862 </div> 7863 </div> 7864 <p xmlns="http://www.w3.org/1999/xhtml"> 7865 In Hemlock, text is represented as a sequence of lines. Newline characters 7866 are never stored but are implicit between lines. The 7867 implicit newline character is treated as the single character <code class="code">#\Newline</code> by the 7868 text primitives. 7869 </p> 7870 <p xmlns="http://www.w3.org/1999/xhtml"> 7871 Text is broken into lines when it is first introduced into Hemlock. Text enters 7872 Hemlock from the outside world in two ways: reading a file, or pasting text 7873 from the system clipboard. Hemlock uses heuristics <span class="bold"><strong>(which should be documented here!)</strong></span> 7874 to decide what newline convention to use to convert the incoming text into its internal 7875 representation as a sequence of lines. Similarly it uses heuristics 7876 <span class="bold"><strong>(which should be documented here!)</strong></span> to convert the internal representation into 7877 a string with embedded newlines in order to write a file or paste a region into 7878 the clipboard. 7879 </p> 7880 <div class="sect2" lang="en" xml:lang="en"> 7881 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 7882 <div> 7883 <div> 7884 <h3 class="title"><a id="Lines"></a>6.2.1. Lines</h3> 7885 </div> 7886 </div> 7887 </div> 7888 <p xmlns="http://www.w3.org/1999/xhtml"> 7889 A <code class="code">line</code> is an object representing a sequence of characters with no line breaks. 7890 </p> 7891 <p> 7892 <div class="refentrytitle"> 7893 <a id="f_linep"></a> 7894 <strong>[Function]</strong> 7895 <br></br> 7896 <code> 7897 linep line 7898 </code> 7899 </div> 7900 <div class="refentrytitle"></div> 7901 </p> 7902 <p> 7903 <div> 7904 <div class="refsect1" lang="en" xml:lang="en"> 7905 <a xmlns="http://www.w3.org/1999/xhtml" id="id626500"></a> 7906 <div class="header">Description:</div> 7907 <p xmlns="http://www.w3.org/1999/xhtml"> 7908 This function returns t if line is a line object, otherwise nil. 7909 </p> 7910 </div> 7911 </div> 7912 </p> 7913 <p> 7914 <div class="refentrytitle"> 7915 <a id="f_line-string"></a> 7916 <strong>[Function]</strong> 7917 <br></br> 7918 <code> 7919 line-string line 7920 </code> 7921 </div> 7922 <div class="refentrytitle"></div> 7923 </p> 7924 <p> 7925 <div> 7926 <div class="refsect1" lang="en" xml:lang="en"> 7927 <a xmlns="http://www.w3.org/1999/xhtml" id="id626553"></a> 7928 <div class="header">Description:</div> 7929 <p xmlns="http://www.w3.org/1999/xhtml"> 7930 Given a line, this function returns as a simple string the characters 7931 in the line. This is setf'able to set the line-string to any string 7932 that does not contain newline characters. It is an error to 7933 destructively modify the result of line-string or to destructively 7934 modify any string after the line-string of some line has been set to 7935 that string. 7936 </p> 7937 </div> 7938 </div> 7939 </p> 7940 <p> 7941 <div class="refentrytitle"> 7942 <a id="f_line-previous"></a> 7943 <strong>[Function]</strong> 7944 <br></br> 7945 <code> 7946 line-previous line 7947 </code> 7948 </div> 7949 <div class="refentrytitle"></div> 7950 </p> 7951 <p> 7952 <div> 7953 <div class="refsect1" lang="en" xml:lang="en"> 7954 <a xmlns="http://www.w3.org/1999/xhtml" id="id662541"></a> 7955 <div class="header">Description:</div> 7956 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 7957 </div> 7958 </div> 7959 </p> 7960 <p> 7961 <div class="refentrytitle"> 7962 <a id="f_line-next"></a> 7963 <strong>[Function]</strong> 7964 <br></br> 7965 <code> 7966 line-next line 7967 </code> 7968 </div> 7969 <div class="refentrytitle"></div> 7970 </p> 7971 <p> 7972 <div> 7973 <div class="refsect1" lang="en" xml:lang="en"> 7974 <a xmlns="http://www.w3.org/1999/xhtml" id="id662593"></a> 7975 <div class="header">Description:</div> 7976 <p xmlns="http://www.w3.org/1999/xhtml"> 7977 Given a line, line-previous returns the previous line or nil if there 7978 is no previous line. Similarly, line-next returns the line following 7979 line or nil. 7980 </p> 7981 </div> 7982 </div> 7983 </p> 7984 <p> 7985 <div class="refentrytitle"> 7986 <a id="f_line-buffer"></a> 7987 <strong>[Function]</strong> 7988 <br></br> 7989 <code> 7990 line-buffer line 7991 </code> 7992 </div> 7993 <div class="refentrytitle"></div> 7994 </p> 7995 <p> 7996 <div> 7997 <div class="refsect1" lang="en" xml:lang="en"> 7998 <a xmlns="http://www.w3.org/1999/xhtml" id="id604470"></a> 7999 <div class="header">Description:</div> 8000 <p xmlns="http://www.w3.org/1999/xhtml"> 8001 This function returns the buffer which contains this line. Since a 8002 line may not be associated with any buffer, in which case line-buffer 8003 returns nil. 8004 </p> 8005 </div> 8006 </div> 8007 </p> 8008 <p> 8009 <div class="refentrytitle"> 8010 <a id="f_line-length"></a> 8011 <strong>[Function]</strong> 8012 <br></br> 8013 <code> 8014 line-length line 8015 </code> 8016 </div> 8017 <div class="refentrytitle"></div> 8018 </p> 8019 <p> 8020 <div> 8021 <div class="refsect1" lang="en" xml:lang="en"> 8022 <a xmlns="http://www.w3.org/1999/xhtml" id="id604523"></a> 8023 <div class="header">Description:</div> 8024 <p xmlns="http://www.w3.org/1999/xhtml"> 8025 This function returns the number of characters in the line. This 8026 excludes the newline character at the end. 8027 </p> 8028 </div> 8029 </div> 8030 </p> 8031 <p> 8032 <div class="refentrytitle"> 8033 <a id="f_line-character"></a> 8034 <strong>[Function]</strong> 8035 <br></br> 8036 <code> 8037 line-character line index 8038 </code> 8039 </div> 8040 <div class="refentrytitle"></div> 8041 </p> 8042 <p> 8043 <div> 8044 <div class="refsect1" lang="en" xml:lang="en"> 8045 <a xmlns="http://www.w3.org/1999/xhtml" id="id604577"></a> 8046 <div class="header">Description:</div> 8047 <p xmlns="http://www.w3.org/1999/xhtml"> 8048 This function returns the character at position index within line. It 8049 is an error for index to be greater than the length of the line or 8050 less than zero. If index is equal to the length of the line, this 8051 returns a #\newline character. 8052 </p> 8053 </div> 8054 </div> 8055 </p> 8056 <p> 8057 <div class="refentrytitle"> 8058 <a id="f_line-plist"></a> 8059 <strong>[Function]</strong> 8060 <br></br> 8061 <code> 8062 line-plist line 8063 </code> 8064 </div> 8065 <div class="refentrytitle"></div> 8066 </p> 8067 <p> 8068 <div> 8069 <div class="refsect1" lang="en" xml:lang="en"> 8070 <a xmlns="http://www.w3.org/1999/xhtml" id="id660364"></a> 8071 <div class="header">Description:</div> 8072 <p xmlns="http://www.w3.org/1999/xhtml"> 8073 This function returns the property-list for line. setf, getf, putf and 8074 remf can be used to change properties. This is typically used in 8075 conjunction with line-signature to cache information about the line's 8076 contents. 8077 </p> 8078 </div> 8079 </div> 8080 </p> 8081 <p> 8082 <div class="refentrytitle"> 8083 <a id="f_line-signature"></a> 8084 <strong>[Function]</strong> 8085 <br></br> 8086 <code> 8087 line-signature line 8088 </code> 8089 </div> 8090 <div class="refentrytitle"></div> 8091 </p> 8092 <p> 8093 <div> 8094 <div class="refsect1" lang="en" xml:lang="en"> 8095 <a xmlns="http://www.w3.org/1999/xhtml" id="id660419"></a> 8096 <div class="header">Description:</div> 8097 <p xmlns="http://www.w3.org/1999/xhtml"> 8098 This function returns an object that serves as a signature for a 8099 line's contents. It is guaranteed that any modification of text on the 8100 line will result in the signature changing so that it is not eql to 8101 any previous value. The signature may change even when the text 8102 remains unmodified, but this does not happen often. 8103 </p> 8104 </div> 8105 </div> 8106 </p> 8107 </div> 8108 <div class="sect2" lang="en" xml:lang="en"> 8109 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 8110 <div> 8111 <div> 8112 <h3 class="title"><a id="Marks"></a>6.2.2. Marks</h3> 8113 </div> 8114 </div> 8115 </div> 8116 <p xmlns="http://www.w3.org/1999/xhtml"> 8117 A <code class="code">mark</code> indicates a specific position within the text represented by a 8118 line and a character position within that line. Although a mark is 8119 sometimes loosely referred to as pointing to some character, it in 8120 fact points between characters. If the charpos is zero, the previous 8121 character is the newline character separating the previous line from 8122 the mark's line. If the charpos is equal to the number of characters 8123 in the line, the next character is the newline character separating 8124 the current line from the next. If the mark's line has no previous 8125 line, a mark with charpos of zero has no previous character; if the 8126 mark's line has no next line, a mark with charpos equal to the length of 8127 the line has no next character. 8128 </p> 8129 <p xmlns="http://www.w3.org/1999/xhtml"> 8130 This section discusses the very basic operations involving marks, but 8131 a lot of Hemlock programming is built on altering some text at a mark. 8132 For more extended uses of marks see <a class="ulink" href="HemlockProgrammer/AlteringAndSearchingText" target="_top">Altering And Searching Text</a>. 8133 </p> 8134 <div class="sect3" lang="en" xml:lang="en"> 8135 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 8136 <div> 8137 <div> 8138 <h4 class="title"><a id="MarksKindsOfMarks"></a>6.2.2.1. Kinds of Marks</h4> 8139 </div> 8140 </div> 8141 </div> 8142 <p xmlns="http://www.w3.org/1999/xhtml"> 8143 A mark may have one of two lifetimes: temporary or permanent. Permanent 8144 marks remain valid after arbitrary operations on the text; temporary 8145 marks do not. Temporary marks are used because less bookkeeping 8146 overhead is involved in their creation and use. If a temporary mark 8147 is used after the text it points to has been modified results will be 8148 unpredictable. Permanent marks continue to point between the same two 8149 characters regardless of insertions and deletions made before or after 8150 them. 8151 </p> 8152 <p xmlns="http://www.w3.org/1999/xhtml"> 8153 There are two different kinds of permanent marks which differ only in 8154 their behavior when text is inserted at the position of the mark; text 8155 is inserted to the left of a left-inserting mark and to the right of 8156 right-inserting mark. 8157 </p> 8158 </div> 8159 <div class="sect3" lang="en" xml:lang="en"> 8160 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 8161 <div> 8162 <div> 8163 <h4 class="title"><a id="MarksMarkFunctions"></a>6.2.2.2. Mark Functions</h4> 8164 </div> 8165 </div> 8166 </div> 8167 <p> 8168 <div class="refentrytitle"> 8169 <a id="f_markp"></a> 8170 <strong>[Function]</strong> 8171 <br></br> 8172 <code> 8173 markp mark 8174 </code> 8175 </div> 8176 <div class="refentrytitle"></div> 8177 </p> 8178 <p> 8179 <div> 8180 <div class="refsect1" lang="en" xml:lang="en"> 8181 <a xmlns="http://www.w3.org/1999/xhtml" id="id660541"></a> 8182 <div class="header">Description:</div> 8183 <p xmlns="http://www.w3.org/1999/xhtml"> 8184 This function returns t if mark is a mark object, otherwise nil. 8185 </p> 8186 </div> 8187 </div> 8188 </p> 8189 <p> 8190 <div class="refentrytitle"> 8191 <a id="f_mark-line"></a> 8192 <strong>[Function]</strong> 8193 <br></br> 8194 <code> 8195 mark-line mark 8196 </code> 8197 </div> 8198 <div class="refentrytitle"></div> 8199 </p> 8200 <p> 8201 <div> 8202 <div class="refsect1" lang="en" xml:lang="en"> 8203 <a xmlns="http://www.w3.org/1999/xhtml" id="id660595"></a> 8204 <div class="header">Description:</div> 8205 <p xmlns="http://www.w3.org/1999/xhtml"> 8206 This function returns the line to which mark points. 8207 </p> 8208 </div> 8209 </div> 8210 </p> 8211 <p> 8212 <div class="refentrytitle"> 8213 <a id="f_mark-charpos"></a> 8214 <strong>[Function]</strong> 8215 <br></br> 8216 <code> 8217 mark-charpos mark 8218 </code> 8219 </div> 8220 <div class="refentrytitle"></div> 8221 </p> 8222 <p> 8223 <div> 8224 <div class="refsect1" lang="en" xml:lang="en"> 8225 <a xmlns="http://www.w3.org/1999/xhtml" id="id660648"></a> 8226 <div class="header">Description:</div> 8227 <p xmlns="http://www.w3.org/1999/xhtml"> 8228 This function returns the character position <span class="emphasis"><em>in the line</em></span> of the character 8229 after mark, i.e. the number of characters before the mark in the mark's line. 8230 </p> 8231 </div> 8232 </div> 8233 </p> 8234 <p> 8235 <div class="refentrytitle"> 8236 <a id="f_mark-buffer"></a> 8237 <strong>[Function]</strong> 8238 <br></br> 8239 <code> 8240 mark-buffer mark 8241 </code> 8242 </div> 8243 <div class="refentrytitle"></div> 8244 </p> 8245 <p> 8246 <div> 8247 <div class="refsect1" lang="en" xml:lang="en"> 8248 <a xmlns="http://www.w3.org/1999/xhtml" id="id660706"></a> 8249 <div class="header">Description:</div> 8250 <p xmlns="http://www.w3.org/1999/xhtml"> 8251 Returns the buffer containing this mark. 8252 </p> 8253 </div> 8254 </div> 8255 </p> 8256 <p> 8257 <div class="refentrytitle"> 8258 <a id="f_mark-absolute-position"></a> 8259 <strong>[Function]</strong> 8260 <br></br> 8261 <code> 8262 mark-absolute-position mark 8263 </code> 8264 </div> 8265 <div class="refentrytitle"></div> 8266 </p> 8267 <p> 8268 <div> 8269 <div class="refsect1" lang="en" xml:lang="en"> 8270 <a xmlns="http://www.w3.org/1999/xhtml" id="id660760"></a> 8271 <div class="header">Description:</div> 8272 <p xmlns="http://www.w3.org/1999/xhtml"> 8273 This function returns the character position <span class="emphasis"><em>in the buffer</em></span> of the character 8274 after the mark, i.e. the number of characters before the mark in the mark's 8275 buffer. 8276 </p> 8277 </div> 8278 </div> 8279 </p> 8280 <p> 8281 <div class="refentrytitle"> 8282 <a id="f_mark-kind"></a> 8283 <strong>[Function]</strong> 8284 <br></br> 8285 <code> 8286 mark-kind mark 8287 </code> 8288 </div> 8289 <div class="refentrytitle"></div> 8290 </p> 8291 <p> 8292 <div> 8293 <div class="refsect1" lang="en" xml:lang="en"> 8294 <a xmlns="http://www.w3.org/1999/xhtml" id="id660819"></a> 8295 <div class="header">Description:</div> 8296 <p xmlns="http://www.w3.org/1999/xhtml"> 8297 This function returns one of <code class="code">:right-inserting</code>, <code class="code">:left-inserting</code> or 8298 <code class="code">:temporary</code> depending on the mark's kind. A corresponding setf form 8299 changes the mark's kind. 8300 </p> 8301 </div> 8302 </div> 8303 </p> 8304 <p> 8305 <div class="refentrytitle"> 8306 <a id="f_previous-character"></a> 8307 <strong>[Function]</strong> 8308 <br></br> 8309 <code> 8310 previous-character mark 8311 </code> 8312 </div> 8313 <div class="refentrytitle"></div> 8314 </p> 8315 <p> 8316 <div> 8317 <div class="refsect1" lang="en" xml:lang="en"> 8318 <a xmlns="http://www.w3.org/1999/xhtml" id="id660884"></a> 8319 <div class="header">Description:</div> 8320 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 8321 </div> 8322 </div> 8323 </p> 8324 <p> 8325 <div class="refentrytitle"> 8326 <a id="f_next-character"></a> 8327 <strong>[Function]</strong> 8328 <br></br> 8329 <code> 8330 next-character mark 8331 </code> 8332 </div> 8333 <div class="refentrytitle"></div> 8334 </p> 8335 <p> 8336 <div> 8337 <div class="refsect1" lang="en" xml:lang="en"> 8338 <a xmlns="http://www.w3.org/1999/xhtml" id="id660938"></a> 8339 <div class="header">Description:</div> 8340 <p xmlns="http://www.w3.org/1999/xhtml"> 8341 This function returns the character immediately before (after) the 8342 position of the mark, or nil if there is no previous (next) character. 8343 These characters may be set with setf when they exist; the setf 8344 methods for these forms signal errors when there is no previous or 8345 next character. 8346 </p> 8347 </div> 8348 </div> 8349 </p> 8350 </div> 8351 <div class="sect3" lang="en" xml:lang="en"> 8352 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 8353 <div> 8354 <div> 8355 <h4 class="title"><a id="MarksMakingMarks"></a>6.2.2.3. Making Marks</h4> 8356 </div> 8357 </div> 8358 </div> 8359 <p> 8360 <div class="refentrytitle"> 8361 <a id="f_mark"></a> 8362 <strong>[Function]</strong> 8363 <br></br> 8364 <code> 8365 mark line charpos <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> kind 8366 </code> 8367 </div> 8368 <div class="refentrytitle"></div> 8369 </p> 8370 <p> 8371 <div> 8372 <div class="refsect1" lang="en" xml:lang="en"> 8373 <a xmlns="http://www.w3.org/1999/xhtml" id="id661008"></a> 8374 <div class="header">Description:</div> 8375 <p xmlns="http://www.w3.org/1999/xhtml"> 8376 This function returns a mark object that points to the charpos'th 8377 character of the line. Kind is the kind of mark to create, one 8378 of <code class="code">:temporary</code>, <code class="code">:left-inserting</code>, or <code class="code">:right-inserting</code>. The default is 8379 :temporary. 8380 </p> 8381 </div> 8382 </div> 8383 </p> 8384 <p> 8385 <div class="refentrytitle"> 8386 <a id="f_copy-mark"></a> 8387 <strong>[Function]</strong> 8388 <br></br> 8389 <code> 8390 copy-mark mark <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> kind 8391 </code> 8392 </div> 8393 <div class="refentrytitle"></div> 8394 </p> 8395 <p> 8396 <div> 8397 <div class="refsect1" lang="en" xml:lang="en"> 8398 <a xmlns="http://www.w3.org/1999/xhtml" id="id661077"></a> 8399 <div class="header">Description:</div> 8400 <p xmlns="http://www.w3.org/1999/xhtml"> 8401 This function returns a new mark pointing to the same position and of 8402 the same kind, or of kind kind if it is supplied. 8403 </p> 8404 </div> 8405 </div> 8406 </p> 8407 <p> 8408 <div class="refentrytitle"> 8409 <a id="f_delete-mark"></a> 8410 <strong>[Function]</strong> 8411 <br></br> 8412 <code> 8413 delete-mark mark 8414 </code> 8415 </div> 8416 <div class="refentrytitle"></div> 8417 </p> 8418 <p> 8419 <div> 8420 <div class="refsect1" lang="en" xml:lang="en"> 8421 <a xmlns="http://www.w3.org/1999/xhtml" id="id661132"></a> 8422 <div class="header">Description:</div> 8423 <p xmlns="http://www.w3.org/1999/xhtml"> 8424 This function deletes mark. Delete any permanent marks when you are 8425 finished using it. 8426 </p> 8427 </div> 8428 </div> 8429 </p> 8430 <p> 8431 <div class="refentrytitle"> 8432 <a id="m_with-mark"></a> 8433 <strong>[Macro]</strong> 8434 <br></br> 8435 <code> 8436 with-mark ({(mark pos [kind])}*) {form}* 8437 </code> 8438 </div> 8439 <div class="refentrytitle"></div> 8440 </p> 8441 <p> 8442 <div> 8443 <div class="refsect1" lang="en" xml:lang="en"> 8444 <a xmlns="http://www.w3.org/1999/xhtml" id="id661187"></a> 8445 <div class="header">Description:</div> 8446 <p xmlns="http://www.w3.org/1999/xhtml"> 8447 This macro binds to each variable mark a mark of kind kind, which 8448 defaults to <code class="code">:temporary</code>, pointing to the same position as the 8449 markpos. On exit from the scope the mark is deleted. The value of the 8450 last form is the value returned. 8451 </p> 8452 </div> 8453 </div> 8454 </p> 8455 </div> 8456 <div class="sect3" lang="en" xml:lang="en"> 8457 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 8458 <div> 8459 <div> 8460 <h4 class="title"><a id="MarksMovingMarks"></a>6.2.2.4. Moving Marks</h4> 8461 </div> 8462 </div> 8463 </div> 8464 <p xmlns="http://www.w3.org/1999/xhtml"> 8465 These functions destructively modify marks to point to new positions. 8466 Other sections of this document describe mark moving routines specific 8467 to higher level text forms than characters and lines, such as words, 8468 sentences, paragraphs, Lisp forms, etc. 8469 </p> 8470 <p> 8471 <div class="refentrytitle"> 8472 <a id="f_move-to-position"></a> 8473 <strong>[Function]</strong> 8474 <br></br> 8475 <code> 8476 move-to-position mark charpos <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> line 8477 </code> 8478 </div> 8479 <div class="refentrytitle"></div> 8480 </p> 8481 <p> 8482 <div> 8483 <div class="refsect1" lang="en" xml:lang="en"> 8484 <a xmlns="http://www.w3.org/1999/xhtml" id="id661266"></a> 8485 <div class="header">Description:</div> 8486 <p xmlns="http://www.w3.org/1999/xhtml"> 8487 This function changes the mark to point to the given character 8488 position on the line line. Line defaults to mark's line. 8489 </p> 8490 </div> 8491 </div> 8492 </p> 8493 <p> 8494 <div class="refentrytitle"> 8495 <a id="f_move-to-absolute-position"></a> 8496 <strong>[Function]</strong> 8497 <br></br> 8498 <code> 8499 move-to-absolute-position mark position 8500 </code> 8501 </div> 8502 <div class="refentrytitle"></div> 8503 </p> 8504 <p> 8505 <div> 8506 <div class="refsect1" lang="en" xml:lang="en"> 8507 <a xmlns="http://www.w3.org/1999/xhtml" id="id661322"></a> 8508 <div class="header">Description:</div> 8509 <p xmlns="http://www.w3.org/1999/xhtml"> 8510 This function changes the mark to point to the given character 8511 position in the buffer. 8512 </p> 8513 </div> 8514 </div> 8515 </p> 8516 <p> 8517 <div class="refentrytitle"> 8518 <a id="f_move-mark"></a> 8519 <strong>[Function]</strong> 8520 <br></br> 8521 <code> 8522 move-mark mark new-position 8523 </code> 8524 </div> 8525 <div class="refentrytitle"></div> 8526 </p> 8527 <p> 8528 <div> 8529 <div class="refsect1" lang="en" xml:lang="en"> 8530 <a xmlns="http://www.w3.org/1999/xhtml" id="id661376"></a> 8531 <div class="header">Description:</div> 8532 <p xmlns="http://www.w3.org/1999/xhtml"> 8533 This function moves mark to the same position as the 8534 mark new-position and returns it. 8535 </p> 8536 </div> 8537 </div> 8538 </p> 8539 <p> 8540 <div class="refentrytitle"> 8541 <a id="f_line-start"></a> 8542 <strong>[Function]</strong> 8543 <br></br> 8544 <code> 8545 line-start mark <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> line 8546 </code> 8547 </div> 8548 <div class="refentrytitle"></div> 8549 </p> 8550 <p> 8551 <div> 8552 <div class="refsect1" lang="en" xml:lang="en"> 8553 <a xmlns="http://www.w3.org/1999/xhtml" id="id661434"></a> 8554 <div class="header">Description:</div> 8555 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 8556 </div> 8557 </div> 8558 </p> 8559 <p> 8560 <div class="refentrytitle"> 8561 <a id="f_line-end"></a> 8562 <strong>[Function]</strong> 8563 <br></br> 8564 <code> 8565 line-end mark <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> line 8566 </code> 8567 </div> 8568 <div class="refentrytitle"></div> 8569 </p> 8570 <p> 8571 <div> 8572 <div class="refsect1" lang="en" xml:lang="en"> 8573 <a xmlns="http://www.w3.org/1999/xhtml" id="id661492"></a> 8574 <div class="header">Description:</div> 8575 <p xmlns="http://www.w3.org/1999/xhtml"> 8576 This function changes mark to point to the beginning or the end of 8577 line and returns it. Line defaults to mark's line. 8578 </p> 8579 </div> 8580 </div> 8581 </p> 8582 <p> 8583 <div class="refentrytitle"> 8584 <a id="f_buffer-start"></a> 8585 <strong>[Function]</strong> 8586 <br></br> 8587 <code> 8588 buffer-start mark <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> buffer 8589 </code> 8590 </div> 8591 <div class="refentrytitle"></div> 8592 </p> 8593 <p> 8594 <div> 8595 <div class="refsect1" lang="en" xml:lang="en"> 8596 <a xmlns="http://www.w3.org/1999/xhtml" id="id661550"></a> 8597 <div class="header">Description:</div> 8598 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 8599 </div> 8600 </div> 8601 </p> 8602 <p> 8603 <div class="refentrytitle"> 8604 <a id="f_buffer-end"></a> 8605 <strong>[Function]</strong> 8606 <br></br> 8607 <code> 8608 buffer-end mark <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> buffer 8609 </code> 8610 </div> 8611 <div class="refentrytitle"></div> 8612 </p> 8613 <p> 8614 <div> 8615 <div class="refsect1" lang="en" xml:lang="en"> 8616 <a xmlns="http://www.w3.org/1999/xhtml" id="id661607"></a> 8617 <div class="header">Description:</div> 8618 <p xmlns="http://www.w3.org/1999/xhtml"> 8619 These functions change mark to point to the beginning or end of 8620 buffer, which defaults to the buffer mark currently points into. If 8621 buffer is unsupplied, then it is an error for mark to be disassociated 8622 from any buffer. 8623 </p> 8624 </div> 8625 </div> 8626 </p> 8627 <p> 8628 <div class="refentrytitle"> 8629 <a id="f_mark-before"></a> 8630 <strong>[Function]</strong> 8631 <br></br> 8632 <code> 8633 mark-before mark 8634 </code> 8635 </div> 8636 <div class="refentrytitle"></div> 8637 </p> 8638 <p> 8639 <div> 8640 <div class="refsect1" lang="en" xml:lang="en"> 8641 <a xmlns="http://www.w3.org/1999/xhtml" id="id661663"></a> 8642 <div class="header">Description:</div> 8643 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 8644 </div> 8645 </div> 8646 </p> 8647 <p> 8648 <div class="refentrytitle"> 8649 <a id="f_mark-after"></a> 8650 <strong>[Function]</strong> 8651 <br></br> 8652 <code> 8653 mark-after mark 8654 </code> 8655 </div> 8656 <div class="refentrytitle"></div> 8657 </p> 8658 <p> 8659 <div> 8660 <div class="refsect1" lang="en" xml:lang="en"> 8661 <a xmlns="http://www.w3.org/1999/xhtml" id="id661718"></a> 8662 <div class="header">Description:</div> 8663 <p xmlns="http://www.w3.org/1999/xhtml"> 8664 These functions change mark to point one character before or after the 8665 current position. If there is no character before/after the current 8666 position, then they return nil and leave mark unmodified. 8667 </p> 8668 </div> 8669 </div> 8670 </p> 8671 <p> 8672 <div class="refentrytitle"> 8673 <a id="f_character-offset"></a> 8674 <strong>[Function]</strong> 8675 <br></br> 8676 <code> 8677 character-offset mark n 8678 </code> 8679 </div> 8680 <div class="refentrytitle"></div> 8681 </p> 8682 <p> 8683 <div> 8684 <div class="refsect1" lang="en" xml:lang="en"> 8685 <a xmlns="http://www.w3.org/1999/xhtml" id="id661773"></a> 8686 <div class="header">Description:</div> 8687 <p xmlns="http://www.w3.org/1999/xhtml"> 8688 This function changes mark to point n characters after (n before if n 8689 is negative) the current position. If there are less than n 8690 characters after (before) the mark, then this returns nil and mark is 8691 unmodified. 8692 </p> 8693 </div> 8694 </div> 8695 </p> 8696 <p> 8697 <div class="refentrytitle"> 8698 <a id="f_line-offset"></a> 8699 <strong>[Function]</strong> 8700 <br></br> 8701 <code> 8702 line-offset mark n <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> charpos 8703 </code> 8704 </div> 8705 <div class="refentrytitle"></div> 8706 </p> 8707 <p> 8708 <div> 8709 <div class="refsect1" lang="en" xml:lang="en"> 8710 <a xmlns="http://www.w3.org/1999/xhtml" id="id661832"></a> 8711 <div class="header">Description:</div> 8712 <p xmlns="http://www.w3.org/1999/xhtml"> 8713 This function changes mark to point n lines after (n before if n is 8714 negative) the current position. The character position of the 8715 resulting mark is (min (line-length resulting-line) (mark-charpos 8716 mark)) if charpos is unspecified, or (min (line-length resulting-line) 8717 charpos) if it is. As with character-offset, if there are not n lines 8718 then nil is returned and mark is not modified. 8719 </p> 8720 </div> 8721 </div> 8722 </p> 8723 </div> 8724 </div> 8725 <div class="sect2" lang="en" xml:lang="en"> 8726 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 8727 <div> 8728 <div> 8729 <h3 class="title"><a id="Regions"></a>6.2.3. Regions</h3> 8730 </div> 8731 </div> 8732 </div> 8733 <p xmlns="http://www.w3.org/1999/xhtml"> 8734 A <code class="code">region</code> is simply a pair of marks: a starting mark and an ending 8735 mark. The text in a region consists of the characters following the 8736 starting mark and preceding the ending mark (keep in mind that a mark 8737 points between characters on a line, not at them). By modifying the 8738 starting or ending mark in a region it is possible to produce regions 8739 with a start and end which are out of order or even in different 8740 buffers. The use of such regions is undefined and may result in 8741 arbitrarily bad behavior. 8742 </p> 8743 <div class="sect3" lang="en" xml:lang="en"> 8744 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 8745 <div> 8746 <div> 8747 <h4 class="title"><a id="RegionsRegionFunctions"></a>6.2.3.1. Region Functions</h4> 8748 </div> 8749 </div> 8750 </div> 8751 <p> 8752 <div class="refentrytitle"> 8753 <a id="f_region"></a> 8754 <strong>[Function]</strong> 8755 <br></br> 8756 <code> 8757 region start end 8758 </code> 8759 </div> 8760 <div class="refentrytitle"></div> 8761 </p> 8762 <p> 8763 <div> 8764 <div class="refsect1" lang="en" xml:lang="en"> 8765 <a xmlns="http://www.w3.org/1999/xhtml" id="id661921"></a> 8766 <div class="header">Description:</div> 8767 <p xmlns="http://www.w3.org/1999/xhtml"> 8768 This function returns a region constructed from the marks start and 8769 end. It is an error for the marks to point to non-contiguous lines or 8770 for start to come after end. 8771 </p> 8772 </div> 8773 </div> 8774 </p> 8775 <p> 8776 <div class="refentrytitle"> 8777 <a id="f_regionp"></a> 8778 <strong>[Function]</strong> 8779 <br></br> 8780 <code> 8781 regionp region 8782 </code> 8783 </div> 8784 <div class="refentrytitle"></div> 8785 </p> 8786 <p> 8787 <div> 8788 <div class="refsect1" lang="en" xml:lang="en"> 8789 <a xmlns="http://www.w3.org/1999/xhtml" id="id661977"></a> 8790 <div class="header">Description:</div> 8791 <p xmlns="http://www.w3.org/1999/xhtml"> 8792 This function returns t if region is a region object, otherwise nil. 8793 </p> 8794 </div> 8795 </div> 8796 </p> 8797 <p> 8798 <div class="refentrytitle"> 8799 <a id="f_make-empty-region"></a> 8800 <strong>[Function]</strong> 8801 <br></br> 8802 <code> 8803 make-empty-region 8804 </code> 8805 </div> 8806 <div class="refentrytitle"></div> 8807 </p> 8808 <p> 8809 <div> 8810 <div class="refsect1" lang="en" xml:lang="en"> 8811 <a xmlns="http://www.w3.org/1999/xhtml" id="id662032"></a> 8812 <div class="header">Description:</div> 8813 <p xmlns="http://www.w3.org/1999/xhtml"> 8814 This function returns a region with start and end marks pointing to 8815 the start of one empty line. The start mark is a <code class="code">:right-inserting</code> 8816 mark, and the end is a <code class="code">:left-inserting</code> mark. 8817 </p> 8818 </div> 8819 </div> 8820 </p> 8821 <p> 8822 <div class="refentrytitle"> 8823 <a id="f_copy-region"></a> 8824 <strong>[Function]</strong> 8825 <br></br> 8826 <code> 8827 copy-region region 8828 </code> 8829 </div> 8830 <div class="refentrytitle"></div> 8831 </p> 8832 <p> 8833 <div> 8834 <div class="refsect1" lang="en" xml:lang="en"> 8835 <a xmlns="http://www.w3.org/1999/xhtml" id="id662094"></a> 8836 <div class="header">Description:</div> 8837 <p xmlns="http://www.w3.org/1999/xhtml"> 8838 This function returns a region containing a copy of the text in the 8839 specified region. The resulting region is completely disjoint 8840 from region with respect to data references --- marks, lines, text, etc. 8841 </p> 8842 </div> 8843 </div> 8844 </p> 8845 <p> 8846 <div class="refentrytitle"> 8847 <a id="f_region-to-string"></a> 8848 <strong>[Function]</strong> 8849 <br></br> 8850 <code> 8851 region-to-string region 8852 </code> 8853 </div> 8854 <div class="refentrytitle"></div> 8855 </p> 8856 <p> 8857 <div> 8858 <div class="refsect1" lang="en" xml:lang="en"> 8859 <a xmlns="http://www.w3.org/1999/xhtml" id="id662150"></a> 8860 <div class="header">Description:</div> 8861 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 8862 </div> 8863 </div> 8864 </p> 8865 <p> 8866 <div class="refentrytitle"> 8867 <a id="f_string-to-region"></a> 8868 <strong>[Function]</strong> 8869 <br></br> 8870 <code> 8871 string-to-region string 8872 </code> 8873 </div> 8874 <div class="refentrytitle"></div> 8875 </p> 8876 <p> 8877 <div> 8878 <div class="refsect1" lang="en" xml:lang="en"> 8879 <a xmlns="http://www.w3.org/1999/xhtml" id="id662205"></a> 8880 <div class="header">Description:</div> 8881 <p xmlns="http://www.w3.org/1999/xhtml"> 8882 These functions coerce regions to Lisp strings and vice versa. Within 8883 the string, lines are delimited by newline characters. 8884 </p> 8885 </div> 8886 </div> 8887 </p> 8888 <p> 8889 <div class="refentrytitle"> 8890 <a id="f_line-to-region"></a> 8891 <strong>[Function]</strong> 8892 <br></br> 8893 <code> 8894 line-to-region line 8895 </code> 8896 </div> 8897 <div class="refentrytitle"></div> 8898 </p> 8899 <p> 8900 <div> 8901 <div class="refsect1" lang="en" xml:lang="en"> 8902 <a xmlns="http://www.w3.org/1999/xhtml" id="id662260"></a> 8903 <div class="header">Description:</div> 8904 <p xmlns="http://www.w3.org/1999/xhtml"> 8905 This function returns a region containing all the characters on 8906 line. The first mark is <code class="code">:right-inserting</code> and the last is 8907 <code class="code">:left-inserting</code>. 8908 </p> 8909 </div> 8910 </div> 8911 </p> 8912 <p> 8913 <div class="refentrytitle"> 8914 <a id="f_region-start"></a> 8915 <strong>[Function]</strong> 8916 <br></br> 8917 <code> 8918 region-start region 8919 </code> 8920 </div> 8921 <div class="refentrytitle"></div> 8922 </p> 8923 <p> 8924 <div> 8925 <div class="refsect1" lang="en" xml:lang="en"> 8926 <a xmlns="http://www.w3.org/1999/xhtml" id="id662322"></a> 8927 <div class="header">Description:</div> 8928 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 8929 </div> 8930 </div> 8931 </p> 8932 <p> 8933 <div class="refentrytitle"> 8934 <a id="f_region-end"></a> 8935 <strong>[Function]</strong> 8936 <br></br> 8937 <code> 8938 region-end region 8939 </code> 8940 </div> 8941 <div class="refentrytitle"></div> 8942 </p> 8943 <p> 8944 <div> 8945 <div class="refsect1" lang="en" xml:lang="en"> 8946 <a xmlns="http://www.w3.org/1999/xhtml" id="id662376"></a> 8947 <div class="header">Description:</div> 8948 <p xmlns="http://www.w3.org/1999/xhtml"> 8949 This function returns the start or end mark of region. 8950 </p> 8951 </div> 8952 </div> 8953 </p> 8954 <p> 8955 <div class="refentrytitle"> 8956 <a id="f_region-bounds"></a> 8957 <strong>[Function]</strong> 8958 <br></br> 8959 <code> 8960 region-bounds region 8961 </code> 8962 </div> 8963 <div class="refentrytitle"></div> 8964 </p> 8965 <p> 8966 <div> 8967 <div class="refsect1" lang="en" xml:lang="en"> 8968 <a xmlns="http://www.w3.org/1999/xhtml" id="id684753"></a> 8969 <div class="header">Description:</div> 8970 <p xmlns="http://www.w3.org/1999/xhtml"> 8971 This function returns as multiple-values the starting and ending marks 8972 of region. 8973 </p> 8974 </div> 8975 </div> 8976 </p> 8977 <p> 8978 <div class="refentrytitle"> 8979 <a id="f_set-region-bounds"></a> 8980 <strong>[Function]</strong> 8981 <br></br> 8982 <code> 8983 set-region-bounds region start end 8984 </code> 8985 </div> 8986 <div class="refentrytitle"></div> 8987 </p> 8988 <p> 8989 <div> 8990 <div class="refsect1" lang="en" xml:lang="en"> 8991 <a xmlns="http://www.w3.org/1999/xhtml" id="id684800"></a> 8992 <div class="header">Description:</div> 8993 <p xmlns="http://www.w3.org/1999/xhtml"> 8994 This function sets the start and end of region to start and end. It is 8995 an error for start to be after or in a different buffer from end. 8996 </p> 8997 </div> 8998 </div> 8999 </p> 9000 <p> 9001 <div class="refentrytitle"> 9002 <a id="f_count-lines"></a> 9003 <strong>[Function]</strong> 9004 <br></br> 9005 <code> 9006 count-lines region 9007 </code> 9008 </div> 9009 <div class="refentrytitle"></div> 9010 </p> 9011 <p> 9012 <div> 9013 <div class="refsect1" lang="en" xml:lang="en"> 9014 <a xmlns="http://www.w3.org/1999/xhtml" id="id684848"></a> 9015 <div class="header">Description:</div> 9016 <p xmlns="http://www.w3.org/1999/xhtml"> 9017 This function returns the number of lines in the region, first and 9018 last lines inclusive. A newline is associated with the line it 9019 follows, thus a region containing some number of non-newline 9020 characters followed by one newline is one line, but if a newline were 9021 added at the beginning, it would be two lines. 9022 </p> 9023 </div> 9024 </div> 9025 </p> 9026 <p> 9027 <div class="refentrytitle"> 9028 <a id="f_count-characters"></a> 9029 <strong>[Function]</strong> 9030 <br></br> 9031 <code> 9032 count-characters region 9033 </code> 9034 </div> 9035 <div class="refentrytitle"></div> 9036 </p> 9037 <p> 9038 <div> 9039 <div class="refsect1" lang="en" xml:lang="en"> 9040 <a xmlns="http://www.w3.org/1999/xhtml" id="id684897"></a> 9041 <div class="header">Description:</div> 9042 <p xmlns="http://www.w3.org/1999/xhtml"> 9043 This function returns the number of characters in a given region. This 9044 counts line breaks as one character. 9045 </p> 9046 </div> 9047 </div> 9048 </p> 9049 </div> 9050 </div> 9051 </div> 9052 <div class="sect1" lang="en" xml:lang="en"> 9053 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 9054 <div> 9055 <div> 9056 <h2 class="title" style="clear: both"><a id="HemlockProgrammingBuffers"></a>6.3. Buffers</h2> 9057 </div> 9058 </div> 9059 </div> 9060 <p xmlns="http://www.w3.org/1999/xhtml"> 9061 A buffer is an object consisting of: 9062 </p> 9063 <div xmlns="http://www.w3.org/1999/xhtml" class="orderedlist"> 9064 <ol class="orderedlist" type="1"> 9065 <li class="listitem"> 9066 <p> 9067 A name. 9068 </p> 9069 </li> 9070 <li class="listitem"> 9071 <p> 9072 A piece of text. 9073 </p> 9074 </li> 9075 <li class="listitem"> 9076 <p> 9077 The insertion point. 9078 </p> 9079 </li> 9080 <li class="listitem"> 9081 <p> 9082 An associated file (optional). 9083 </p> 9084 </li> 9085 <li class="listitem"> 9086 <p> 9087 A write protect flag. 9088 </p> 9089 </li> 9090 <li class="listitem"> 9091 <p> 9092 Some <a class="ulink" href="HemlockProgrammer/HemlockVariables" target="_top">variables</a>. 9093 </p> 9094 </li> 9095 <li class="listitem"> 9096 <p> 9097 Some <a class="ulink" href="HemlockProgrammer/Commands" target="_top">key bindings</a>. 9098 </p> 9099 </li> 9100 <li class="listitem"> 9101 <p> 9102 A collection of <a class="ulink" href="HemlockProgrammer/Modes" target="_top">modes</a>. 9103 10. A list of modeline fields (optional). 9104 </p> 9105 </li> 9106 </ol> 9107 </div> 9108 <p xmlns="http://www.w3.org/1999/xhtml">Because of the way Hemlock is currently integrated in Cocoa, all modifications 9109 to buffer contents must take place in the GUI thread. Hemlock commands always 9110 run in the GUI thread, so most of the time you do not need to worry about it. 9111 If you are running code in another thread that needs to modify a buffer, you 9112 should perform that action using <code class="code">gui::execute-in-gui</code> or <code class="code">gui::queue-for-gui</code>. 9113 </p> 9114 <p xmlns="http://www.w3.org/1999/xhtml"> 9115 There are no intrinsic limitations on examining buffers from any thread, 9116 however, Hemlock currently does no locking, so you risk seeing the buffer 9117 in an inconsistent state if you look at it outside the GUI thread. 9118 </p> 9119 <div class="sect2" lang="en" xml:lang="en"> 9120 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 9121 <div> 9122 <div> 9123 <h3 class="title"><a id="CurrentBuffer"></a>6.3.1. The Current Buffer</h3> 9124 </div> 9125 </div> 9126 </div> 9127 <p xmlns="http://www.w3.org/1999/xhtml"> 9128 Hemlock has the concept of the "current buffer". The current buffer 9129 is defined during Hemlock commands as the buffer of the hemlock view 9130 that received the key events that invoked the command. Many hemlock 9131 function operate on the current buffer rather than taking an explicit 9132 buffer argument. In effect, the current buffer is an implicit argument 9133 to many text manipulation functions. 9134 </p> 9135 <p> 9136 <div class="refentrytitle"> 9137 <a id="f_current-buffer"></a> 9138 <strong>[Function]</strong> 9139 <br></br> 9140 <code> 9141 current-buffer 9142 </code> 9143 </div> 9144 <div class="refentrytitle"></div> 9145 </p> 9146 <p> 9147 <div> 9148 <div class="refsect1" lang="en" xml:lang="en"> 9149 <a xmlns="http://www.w3.org/1999/xhtml" id="id685061"></a> 9150 <div class="header">Description:</div> 9151 <p xmlns="http://www.w3.org/1999/xhtml"> 9152 Returns the current buffer, which, during command execution, is the 9153 buffer that is the target of the command. 9154 </p> 9155 </div> 9156 </div> 9157 </p> 9158 <p> 9159 <div class="refentrytitle"> 9160 <a id="f_current-point"></a> 9161 <strong>[Function]</strong> 9162 <br></br> 9163 <code> 9164 current-point 9165 </code> 9166 </div> 9167 <div class="refentrytitle"></div> 9168 </p> 9169 <p> 9170 <div> 9171 <div class="refsect1" lang="en" xml:lang="en"> 9172 <a xmlns="http://www.w3.org/1999/xhtml" id="id685108"></a> 9173 <div class="header">Description:</div> 9174 <p xmlns="http://www.w3.org/1999/xhtml"> 9175 This function returns the buffer-point of the current buffer . This is 9176 such a common idiom in commands that it is defined despite its trivial 9177 implementation. 9178 </p> 9179 </div> 9180 </div> 9181 </p> 9182 <p> 9183 <div class="refentrytitle"> 9184 <a id="f_current-point-collapsing-selection"></a> 9185 <strong>[Function]</strong> 9186 <br></br> 9187 <code> 9188 current-point-collapsing-selection 9189 </code> 9190 </div> 9191 <div class="refentrytitle"></div> 9192 </p> 9193 <p> 9194 <div> 9195 <div class="refsect1" lang="en" xml:lang="en"> 9196 <a xmlns="http://www.w3.org/1999/xhtml" id="id685156"></a> 9197 <div class="header">Description:</div> 9198 <p xmlns="http://www.w3.org/1999/xhtml"> 9199 This function returns the buffer-point of the current buffer, after first 9200 deactivating any active region. 9201 </p> 9202 </div> 9203 </div> 9204 </p> 9205 <p> 9206 <div class="refentrytitle"> 9207 <a id="f_current-point-extending-selection"></a> 9208 <strong>[Function]</strong> 9209 <br></br> 9210 <code> 9211 current-point-extending-selection 9212 </code> 9213 </div> 9214 <div class="refentrytitle"></div> 9215 </p> 9216 <p> 9217 <div> 9218 <div class="refsect1" lang="en" xml:lang="en"> 9219 <a xmlns="http://www.w3.org/1999/xhtml" id="id685203"></a> 9220 <div class="header">Description:</div> 9221 <p xmlns="http://www.w3.org/1999/xhtml"> 9222 This function returns the buffer-point of the current buffer, after first 9223 making sure there is an active region - if the region is already active, 9224 keeps it active, otherwise it establishes a new (empty) region at point. 9225 </p> 9226 </div> 9227 </div> 9228 </p> 9229 <p> 9230 <div class="refentrytitle"> 9231 <a id="f_current-point-for-insertion"></a> 9232 <strong>[Function]</strong> 9233 <br></br> 9234 <code> 9235 current-point-for-insertion 9236 </code> 9237 </div> 9238 <div class="refentrytitle"></div> 9239 </p> 9240 <p> 9241 <div> 9242 <div class="refsect1" lang="en" xml:lang="en"> 9243 <a xmlns="http://www.w3.org/1999/xhtml" id="id685251"></a> 9244 <div class="header">Description:</div> 9245 <p xmlns="http://www.w3.org/1999/xhtml"> 9246 This function checks to see if the current buffer can be modified at its 9247 current point, and errors if not. Otherwise, it deletes the current 9248 selection if any, and returns the current point. 9249 </p> 9250 </div> 9251 </div> 9252 </p> 9253 <p> 9254 <div class="refentrytitle"> 9255 <a id="f_current-point-for-deletion"></a> 9256 <strong>[Function]</strong> 9257 <br></br> 9258 <code> 9259 current-point-for-deletion 9260 </code> 9261 </div> 9262 <div class="refentrytitle"></div> 9263 </p> 9264 <p> 9265 <div> 9266 <div class="refsect1" lang="en" xml:lang="en"> 9267 <a xmlns="http://www.w3.org/1999/xhtml" id="id685306"></a> 9268 <div class="header">Description:</div> 9269 <p xmlns="http://www.w3.org/1999/xhtml"> 9270 This function checks to see if the current buffer can be modified at its 9271 current point and errors if not. Otherwise, if there is a section 9272 in the current buffer, it deletes it and returns NIL. If there is no 9273 selection, it returns the current point. 9274 </p> 9275 </div> 9276 </div> 9277 </p> 9278 <p> 9279 <div class="refentrytitle"> 9280 <a id="f_current-point-unless-selection"></a> 9281 <strong>[Function]</strong> 9282 <br></br> 9283 <code> 9284 current-point-unless-selection 9285 </code> 9286 </div> 9287 <div class="refentrytitle"></div> 9288 </p> 9289 <p> 9290 <div> 9291 <div class="refsect1" lang="en" xml:lang="en"> 9292 <a xmlns="http://www.w3.org/1999/xhtml" id="id685362"></a> 9293 <div class="header">Description:</div> 9294 <p xmlns="http://www.w3.org/1999/xhtml"> 9295 This function checks to see if the current buffer can be modified at its 9296 current point and errors if not. Otherwise, if there's a selection in the 9297 current buffer, returns NIL. If there is no selection, it returns the 9298 current point. 9299 </p> 9300 </div> 9301 </div> 9302 </p> 9303 <p> 9304 <div class="refentrytitle"> 9305 <a id="f_current-mark"></a> 9306 <strong>[Function]</strong> 9307 <br></br> 9308 <code> 9309 current-mark 9310 </code> 9311 </div> 9312 <div class="refentrytitle"></div> 9313 </p> 9314 <p> 9315 <div> 9316 <div class="refsect1" lang="en" xml:lang="en"> 9317 <a xmlns="http://www.w3.org/1999/xhtml" id="id685418"></a> 9318 <div class="header">Description:</div> 9319 <p xmlns="http://www.w3.org/1999/xhtml"> 9320 This function returns the top of the current buffer's mark stack. 9321 There always is at least one mark at the beginning of the buffer's 9322 region, and all marks returned are right-inserting. 9323 </p> 9324 </div> 9325 </div> 9326 </p> 9327 <p> 9328 <div class="refentrytitle"> 9329 <a id="f_pop-buffer-mark"></a> 9330 <strong>[Function]</strong> 9331 <br></br> 9332 <code> 9333 pop-buffer-mark 9334 </code> 9335 </div> 9336 <div class="refentrytitle"></div> 9337 </p> 9338 <p> 9339 <div> 9340 <div class="refsect1" lang="en" xml:lang="en"> 9341 <a xmlns="http://www.w3.org/1999/xhtml" id="id685474"></a> 9342 <div class="header">Description:</div> 9343 <p xmlns="http://www.w3.org/1999/xhtml"> 9344 This function pops the current buffer's mark stack, returning the 9345 mark. If the stack becomes empty, this pushes a new mark on the stack 9346 pointing to the buffer's start. This always deactivates the current 9347 region (see <a class="ulink" href="HemlockProgrammer/AlteringAndSearchingText#ActiveRegions" target="_top">Active Regions</a>). 9348 </p> 9349 </div> 9350 </div> 9351 </p> 9352 <p> 9353 <div class="refentrytitle"> 9354 <a id="f_push-buffer-mark"></a> 9355 <strong>[Function]</strong> 9356 <br></br> 9357 <code> 9358 push-buffer-mark mark <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> activate-region 9359 </code> 9360 </div> 9361 <div class="refentrytitle"></div> 9362 </p> 9363 <p> 9364 <div> 9365 <div class="refsect1" lang="en" xml:lang="en"> 9366 <a xmlns="http://www.w3.org/1999/xhtml" id="id685540"></a> 9367 <div class="header">Description:</div> 9368 <p xmlns="http://www.w3.org/1999/xhtml"> 9369 This function pushes mark into the current buffer's mark stack, 9370 ensuring that the mark is right-inserting. If mark does not point into 9371 the current buffer, this signals an error. Optionally, the current 9372 region is made active, but this never deactivates the current region 9373 (see <a class="ulink" href="HemlockProgrammer/AlteringAndSearchingText#ActiveRegions" target="_top">Active Regions</a>). 9374 Mark is returned. 9375 </p> 9376 </div> 9377 </div> 9378 </p> 9379 <p> 9380 <div class="refentrytitle"> 9381 <a id="f_push-new-buffer-mark"></a> 9382 <strong>[Function]</strong> 9383 <br></br> 9384 <code> 9385 push-new-buffer-mark mark <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> activate-region 9386 </code> 9387 </div> 9388 <div class="refentrytitle"></div> 9389 </p> 9390 <p> 9391 <div> 9392 <div class="refsect1" lang="en" xml:lang="en"> 9393 <a xmlns="http://www.w3.org/1999/xhtml" id="id685606"></a> 9394 <div class="header">Description:</div> 9395 <p xmlns="http://www.w3.org/1999/xhtml"> 9396 This function pushes a new mark onto the mark stack, at the position of <code class="code">mark</code>. 9397 It's equivalent to calling <code class="code">push-buffer-mark</code> on <code class="code">(copy-mark mark)</code>. 9398 </p> 9399 </div> 9400 </div> 9401 </p> 9402 <p> 9403 <div class="refentrytitle"> 9404 <a id="f_all-buffers"></a> 9405 <strong>[Function]</strong> 9406 <br></br> 9407 <code> 9408 all-buffers 9409 </code> 9410 </div> 9411 <div class="refentrytitle"></div> 9412 </p> 9413 <p> 9414 <div> 9415 <div class="refsect1" lang="en" xml:lang="en"> 9416 <a xmlns="http://www.w3.org/1999/xhtml" id="id685672"></a> 9417 <div class="header">Description:</div> 9418 <p xmlns="http://www.w3.org/1999/xhtml"> 9419 This function returns a list of all the buffer objects made with make-buffer. 9420 </p> 9421 </div> 9422 </div> 9423 </p> 9424 <p> 9425 <div class="refentrytitle"> 9426 <a id="v_buffer-names"></a> 9427 <strong>[Variable]</strong> 9428 <br></br> 9429 <code> 9430 *buffer-names* 9431 </code> 9432 </div> 9433 <div class="refentrytitle"></div> 9434 </p> 9435 <p> 9436 <div> 9437 <div class="refsect1" lang="en" xml:lang="en"> 9438 <a xmlns="http://www.w3.org/1999/xhtml" id="id685727"></a> 9439 <div class="header">Description:</div> 9440 <p xmlns="http://www.w3.org/1999/xhtml"> 9441 This variable holds a <a class="ulink" href="HemlockProgrammer/Utilities#StringTables" target="_top">string-table</a> 9442 mapping the name of a buffer to the corresponding buffer object. 9443 </p> 9444 </div> 9445 </div> 9446 </p> 9447 </div> 9448 <div class="sect2" lang="en" xml:lang="en"> 9449 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 9450 <div> 9451 <div> 9452 <h3 class="title"><a id="BufferFunctions"></a>6.3.2. Buffer Functions</h3> 9453 </div> 9454 </div> 9455 </div> 9456 <p> 9457 <div class="refentrytitle"> 9458 <a id="f_make-buffer"></a> 9459 <strong>[Function]</strong> 9460 <br></br> 9461 <code> 9462 make-buffer name <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> :modes :modeline-fields :delete-hook 9463 </code> 9464 </div> 9465 <div class="refentrytitle"></div> 9466 </p> 9467 <p> 9468 <div> 9469 <div class="refsect1" lang="en" xml:lang="en"> 9470 <a xmlns="http://www.w3.org/1999/xhtml" id="id685804"></a> 9471 <div class="header">Description:</div> 9472 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 9473 </div> 9474 </div> 9475 </p> 9476 <p> 9477 <div class="refentrytitle"> 9478 <a id="hv_default_modeline_fields"></a> 9479 <strong>[Hemlock Variable]</strong> 9480 <br></br> 9481 <code> 9482 Default Modeline Fields 9483 </code> 9484 </div> 9485 <div class="refentrytitle"></div> 9486 </p> 9487 <p> 9488 <div> 9489 <div class="refsect1" lang="en" xml:lang="en"> 9490 <a xmlns="http://www.w3.org/1999/xhtml" id="id685858"></a> 9491 <div class="header">Description:</div> 9492 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 9493 </div> 9494 </div> 9495 </p> 9496 <p> 9497 <div class="refentrytitle"> 9498 <a id="hv_make_buffer_hook"></a> 9499 <strong>[Hemlock Variable]</strong> 9500 <br></br> 9501 <code> 9502 Make Buffer Hook 9503 </code> 9504 </div> 9505 <div class="refentrytitle"></div> 9506 </p> 9507 <p> 9508 <div> 9509 <div class="refsect1" lang="en" xml:lang="en"> 9510 <a xmlns="http://www.w3.org/1999/xhtml" id="id685912"></a> 9511 <div class="header">Description:</div> 9512 <p xmlns="http://www.w3.org/1999/xhtml"> 9513 make-buffer creates and returns a buffer with the given name. If a 9514 buffer named name already exists, nil is returned. Modes is a list of 9515 modes which should be in effect in the buffer, major mode first, 9516 followed by any minor modes. If this is omitted then the buffer is 9517 created with the list of modes contained in Default Modes (page 9518 35). Modeline-fields is a list of modeline-field objects (see section 9519 3.3) which may be nil. delete-hook is a list of delete hooks specific 9520 to this buffer, and delete-buffer invokes these along with Delete 9521 Buffer Hook. 9522 </p> 9523 <p xmlns="http://www.w3.org/1999/xhtml"> 9524 Buffers created with make-buffer are entered into the list 9525 (all-buffers), and their names are inserted into the string-table 9526 *buffer-names*. When a buffer is created the hook Make Buffer Hook is 9527 invoked with the new buffer. 9528 </p> 9529 </div> 9530 </div> 9531 </p> 9532 <p> 9533 <div class="refentrytitle"> 9534 <a id="f_bufferp"></a> 9535 <strong>[Function]</strong> 9536 <br></br> 9537 <code> 9538 bufferp buffer 9539 </code> 9540 </div> 9541 <div class="refentrytitle"></div> 9542 </p> 9543 <p> 9544 <div> 9545 <div class="refsect1" lang="en" xml:lang="en"> 9546 <a xmlns="http://www.w3.org/1999/xhtml" id="id685976"></a> 9547 <div class="header">Description:</div> 9548 <p xmlns="http://www.w3.org/1999/xhtml"> 9549 Returns t if buffer is a buffer object, otherwise nil. 9550 </p> 9551 </div> 9552 </div> 9553 </p> 9554 <p> 9555 <div class="refentrytitle"> 9556 <a id="f_buffer-name"></a> 9557 <strong>[Function]</strong> 9558 <br></br> 9559 <code> 9560 buffer-name buffer 9561 </code> 9562 </div> 9563 <div class="refentrytitle"></div> 9564 </p> 9565 <p> 9566 <div> 9567 <div class="refsect1" lang="en" xml:lang="en"> 9568 <a xmlns="http://www.w3.org/1999/xhtml" id="id686031"></a> 9569 <div class="header">Description:</div> 9570 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 9571 </div> 9572 </div> 9573 </p> 9574 <p> 9575 <div class="refentrytitle"> 9576 <a id="hv_buffer_name_hook"></a> 9577 <strong>[Hemlock Variable]</strong> 9578 <br></br> 9579 <code> 9580 Buffer Name Hook 9581 </code> 9582 </div> 9583 <div class="refentrytitle"></div> 9584 </p> 9585 <p> 9586 <div> 9587 <div class="refsect1" lang="en" xml:lang="en"> 9588 <a xmlns="http://www.w3.org/1999/xhtml" id="id686084"></a> 9589 <div class="header">Description:</div> 9590 <p xmlns="http://www.w3.org/1999/xhtml"> 9591 buffer-name returns the name, which is a string, of the given buffer. 9592 The corresponding setf method invokes Buffer Name Hook with buffer 9593 and the new name and then sets the buffer's name. When the user 9594 supplies a name for which a buffer already exists, the setf method 9595 signals an error. 9596 </p> 9597 </div> 9598 </div> 9599 </p> 9600 <p> 9601 <div class="refentrytitle"> 9602 <a id="f_buffer-region"></a> 9603 <strong>[Function]</strong> 9604 <br></br> 9605 <code> 9606 buffer-region buffer 9607 </code> 9608 </div> 9609 <div class="refentrytitle"></div> 9610 </p> 9611 <p> 9612 <div> 9613 <div class="refsect1" lang="en" xml:lang="en"> 9614 <a xmlns="http://www.w3.org/1999/xhtml" id="id686141"></a> 9615 <div class="header">Description:</div> 9616 <p xmlns="http://www.w3.org/1999/xhtml"> 9617 Returns the buffer's region. Note this is the region that contains all 9618 the text in a buffer, not the current-region (page 19). 9619 </p> 9620 <p xmlns="http://www.w3.org/1999/xhtml"> 9621 This can be set with setf to replace the buffer's text. 9622 </p> 9623 </div> 9624 </div> 9625 </p> 9626 <p> 9627 <div class="refentrytitle"> 9628 <a id="f_buffer-pathname"></a> 9629 <strong>[Function]</strong> 9630 <br></br> 9631 <code> 9632 buffer-pathname buffer 9633 </code> 9634 </div> 9635 <div class="refentrytitle"></div> 9636 </p> 9637 <p> 9638 <div> 9639 <div class="refsect1" lang="en" xml:lang="en"> 9640 <a xmlns="http://www.w3.org/1999/xhtml" id="id686200"></a> 9641 <div class="header">Description:</div> 9642 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 9643 </div> 9644 </div> 9645 </p> 9646 <p> 9647 <div class="refentrytitle"> 9648 <a id="hv_buffer_pathname_hook"></a> 9649 <strong>[Hemlock Variable]</strong> 9650 <br></br> 9651 <code> 9652 Buffer Pathname Hook 9653 </code> 9654 </div> 9655 <div class="refentrytitle"></div> 9656 </p> 9657 <p> 9658 <div> 9659 <div class="refsect1" lang="en" xml:lang="en"> 9660 <a xmlns="http://www.w3.org/1999/xhtml" id="id686254"></a> 9661 <div class="header">Description:</div> 9662 <p xmlns="http://www.w3.org/1999/xhtml"> 9663 buffer-pathname returns the pathname of the file associated with the 9664 given buffer, or nil if it has no associated file. This is the 9665 truename of the file as of the most recent time it was read or 9666 written. There is a setf form to change the pathname. When the 9667 pathname is changed the hook Buffer Pathname Hook is invoked with the 9668 buffer and new value. 9669 </p> 9670 </div> 9671 </div> 9672 </p> 9673 <p> 9674 <div class="refentrytitle"> 9675 <a id="f_buffer-write-date"></a> 9676 <strong>[Function]</strong> 9677 <br></br> 9678 <code> 9679 buffer-write-date buffer 9680 </code> 9681 </div> 9682 <div class="refentrytitle"></div> 9683 </p> 9684 <p> 9685 <div> 9686 <div class="refsect1" lang="en" xml:lang="en"> 9687 <a xmlns="http://www.w3.org/1999/xhtml" id="id686311"></a> 9688 <div class="header">Description:</div> 9689 <p xmlns="http://www.w3.org/1999/xhtml"> 9690 Returns the write date for the file associated with the buffer in 9691 universal time format. When this the buffer-pathname is set, use setf 9692 to set this to the corresponding write date, or to nil if the date is 9693 unknown or there is no file. 9694 </p> 9695 </div> 9696 </div> 9697 </p> 9698 <p> 9699 <div class="refentrytitle"> 9700 <a id="f_buffer-point"></a> 9701 <strong>[Function]</strong> 9702 <br></br> 9703 <code> 9704 buffer-point buffer 9705 </code> 9706 </div> 9707 <div class="refentrytitle"></div> 9708 </p> 9709 <p> 9710 <div> 9711 <div class="refsect1" lang="en" xml:lang="en"> 9712 <a xmlns="http://www.w3.org/1999/xhtml" id="id686368"></a> 9713 <div class="header">Description:</div> 9714 <p xmlns="http://www.w3.org/1999/xhtml"> 9715 Returns the mark which is the current location within buffer. To move 9716 the point, use move-mark or move-to-position (page 5). 9717 </p> 9718 </div> 9719 </div> 9720 </p> 9721 <p> 9722 <div class="refentrytitle"> 9723 <a id="f_buffer-mark"></a> 9724 <strong>[Function]</strong> 9725 <br></br> 9726 <code> 9727 buffer-mark buffer 9728 </code> 9729 </div> 9730 <div class="refentrytitle"></div> 9731 </p> 9732 <p> 9733 <div> 9734 <div class="refsect1" lang="en" xml:lang="en"> 9735 <a xmlns="http://www.w3.org/1999/xhtml" id="id686423"></a> 9736 <div class="header">Description:</div> 9737 <p xmlns="http://www.w3.org/1999/xhtml"> 9738 This function returns the top of buffer's mark stack. There always is 9739 at least one mark at the beginning of buffer's region, and all marks 9740 returned are right-inserting. 9741 </p> 9742 </div> 9743 </div> 9744 </p> 9745 <p> 9746 <div class="refentrytitle"> 9747 <a id="f_buffer-start-mark"></a> 9748 <strong>[Function]</strong> 9749 <br></br> 9750 <code> 9751 buffer-start-mark buffer 9752 </code> 9753 </div> 9754 <div class="refentrytitle"></div> 9755 </p> 9756 <p> 9757 <div> 9758 <div class="refsect1" lang="en" xml:lang="en"> 9759 <a xmlns="http://www.w3.org/1999/xhtml" id="id686479"></a> 9760 <div class="header">Description:</div> 9761 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 9762 </div> 9763 </div> 9764 </p> 9765 <p> 9766 <div class="refentrytitle"> 9767 <a id="f_buffer-end-mark"></a> 9768 <strong>[Function]</strong> 9769 <br></br> 9770 <code> 9771 buffer-end-mark buffer 9772 </code> 9773 </div> 9774 <div class="refentrytitle"></div> 9775 </p> 9776 <p> 9777 <div> 9778 <div class="refsect1" lang="en" xml:lang="en"> 9779 <a xmlns="http://www.w3.org/1999/xhtml" id="id686532"></a> 9780 <div class="header">Description:</div> 9781 <p xmlns="http://www.w3.org/1999/xhtml"> 9782 These functions return the start and end marks of buffer's region: 9783 </p> 9784 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> 9785 9786 (buffer-start-mark buffer ) &lt;==&gt; (region-start (buffer-region buffer)) 9787 9788 </pre> 9789 <p xmlns="http://www.w3.org/1999/xhtml">and 9790 </p> 9791 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> 9792 9793 (buffer-end-mark buffer ) &lt;==&gt; (region-end (buffer-region buffer)) 9794 9795 </pre> 9796 <p xmlns="http://www.w3.org/1999/xhtml"> 9797 </p> 9798 </div> 9799 </div> 9800 </p> 9801 <p> 9802 <div class="refentrytitle"> 9803 <a id="f_buffer-writable"></a> 9804 <strong>[Function]</strong> 9805 <br></br> 9806 <code> 9807 buffer-writable buffer 9808 </code> 9809 </div> 9810 <div class="refentrytitle"></div> 9811 </p> 9812 <p> 9813 <div> 9814 <div class="refsect1" lang="en" xml:lang="en"> 9815 <a xmlns="http://www.w3.org/1999/xhtml" id="id686600"></a> 9816 <div class="header">Description:</div> 9817 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 9818 </div> 9819 </div> 9820 </p> 9821 <p> 9822 <div class="refentrytitle"> 9823 <a id="hv_buffer_writable_hook"></a> 9824 <strong>[Hemlock Variable]</strong> 9825 <br></br> 9826 <code> 9827 Buffer Writable Hook 9828 </code> 9829 </div> 9830 <div class="refentrytitle"></div> 9831 </p> 9832 <p> 9833 <div> 9834 <div class="refsect1" lang="en" xml:lang="en"> 9835 <a xmlns="http://www.w3.org/1999/xhtml" id="id686654"></a> 9836 <div class="header">Description:</div> 9837 <p xmlns="http://www.w3.org/1999/xhtml"> 9838 This function returns t if you can modify the buffer, nil if you 9839 cannot. If a buffer is not writable, then any attempt to alter text 9840 in the buffer results in an error. There is a setf method to change 9841 this value. The setf method invokes the functions in Buffer Writable 9842 Hook on the buffer and new value before storing the new value. 9843 </p> 9844 </div> 9845 </div> 9846 </p> 9847 <p> 9848 <div class="refentrytitle"> 9849 <a id="f_buffer-modified"></a> 9850 <strong>[Function]</strong> 9851 <br></br> 9852 <code> 9853 buffer-modified buffer 9854 </code> 9855 </div> 9856 <div class="refentrytitle"></div> 9857 </p> 9858 <p> 9859 <div> 9860 <div class="refsect1" lang="en" xml:lang="en"> 9861 <a xmlns="http://www.w3.org/1999/xhtml" id="id686711"></a> 9862 <div class="header">Description:</div> 9863 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 9864 </div> 9865 </div> 9866 </p> 9867 <p> 9868 <div class="refentrytitle"> 9869 <a id="hv_buffer_modified_hook"></a> 9870 <strong>[Hemlock Variable]</strong> 9871 <br></br> 9872 <code> 9873 Buffer Modified Hook 9874 </code> 9875 </div> 9876 <div class="refentrytitle"></div> 9877 </p> 9878 <p> 9879 <div> 9880 <div class="refsect1" lang="en" xml:lang="en"> 9881 <a xmlns="http://www.w3.org/1999/xhtml" id="id686765"></a> 9882 <div class="header">Description:</div> 9883 <p xmlns="http://www.w3.org/1999/xhtml"> 9884 buffer-modified returns t if the buffer has been modified, nil if it 9885 hasn't. This attribute is set whenever a text-altering operation is 9886 performed on a buffer. There is a setf method to change this value. 9887 The setf method invokes the functions in Buffer Modified Hook with the 9888 buffer whenever the value of the modified flag changes. 9889 </p> 9890 </div> 9891 </div> 9892 </p> 9893 <p> 9894 <div class="refentrytitle"> 9895 <a id="m_with-writable-buffer"></a> 9896 <strong>[Macro]</strong> 9897 <br></br> 9898 <code> 9899 with-writable-buffer (buffer) <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&body</em> body 9900 </code> 9901 </div> 9902 <div class="refentrytitle"></div> 9903 </p> 9904 <p> 9905 <div> 9906 <div class="refsect1" lang="en" xml:lang="en"> 9907 <a xmlns="http://www.w3.org/1999/xhtml" id="id686825"></a> 9908 <div class="header">Description:</div> 9909 <p xmlns="http://www.w3.org/1999/xhtml"> 9910 This macro executes forms with buffer's writable status set. After 9911 forms execute, this resets the buffer's writable and modified status. 9912 </p> 9913 </div> 9914 </div> 9915 </p> 9916 <p> 9917 <div class="refentrytitle"> 9918 <a id="f_buffer-signature"></a> 9919 <strong>[Function]</strong> 9920 <br></br> 9921 <code> 9922 buffer-signature buffer 9923 </code> 9924 </div> 9925 <div class="refentrytitle"></div> 9926 </p> 9927 <p> 9928 <div> 9929 <div class="refsect1" lang="en" xml:lang="en"> 9930 <a xmlns="http://www.w3.org/1999/xhtml" id="id686880"></a> 9931 <div class="header">Description:</div> 9932 <p xmlns="http://www.w3.org/1999/xhtml"> 9933 This function returns an arbitrary number which reflects the buffer's 9934 current signature. The result is eql to a previous result if and only if 9935 the buffer has not been modified between the calls. 9936 </p> 9937 </div> 9938 </div> 9939 </p> 9940 <p> 9941 <div class="refentrytitle"> 9942 <a id="f_buffer-variables"></a> 9943 <strong>[Function]</strong> 9944 <br></br> 9945 <code> 9946 buffer-variables buffer 9947 </code> 9948 </div> 9949 <div class="refentrytitle"></div> 9950 </p> 9951 <p> 9952 <div> 9953 <div class="refsect1" lang="en" xml:lang="en"> 9954 <a xmlns="http://www.w3.org/1999/xhtml" id="id686936"></a> 9955 <div class="header">Description:</div> 9956 <p xmlns="http://www.w3.org/1999/xhtml"> 9957 This function returns a string-table (page 69) containing the names of 9958 the buffer's local variables. See chapter 6. 9959 </p> 9960 </div> 9961 </div> 9962 </p> 9963 <p> 9964 <div class="refentrytitle"> 9965 <a id="f_buffer-modes"></a> 9966 <strong>[Function]</strong> 9967 <br></br> 9968 <code> 9969 buffer-modes buffer 9970 </code> 9971 </div> 9972 <div class="refentrytitle"></div> 9973 </p> 9974 <p> 9975 <div> 9976 <div class="refsect1" lang="en" xml:lang="en"> 9977 <a xmlns="http://www.w3.org/1999/xhtml" id="id686991"></a> 9978 <div class="header">Description:</div> 9979 <p xmlns="http://www.w3.org/1999/xhtml"> 9980 This function returns the list of the names of the modes active in 9981 buffer. The major mode is first, followed by any minor modes. See 9982 chapter 8. 9983 </p> 9984 </div> 9985 </div> 9986 </p> 9987 <p> 9988 <div class="refentrytitle"> 9989 <a id="f_buffer-delete-hook"></a> 9990 <strong>[Function]</strong> 9991 <br></br> 9992 <code> 9993 buffer-delete-hook buffer 9994 </code> 9995 </div> 9996 <div class="refentrytitle"></div> 9997 </p> 9998 <p> 9999 <div> 10000 <div class="refsect1" lang="en" xml:lang="en"> 10001 <a xmlns="http://www.w3.org/1999/xhtml" id="id687047"></a> 10002 <div class="header">Description:</div> 10003 <p xmlns="http://www.w3.org/1999/xhtml"> 10004 This function returns the list of buffer specific functions 10005 delete-buffer invokes when deleting a buffer . This is setf-able. 10006 </p> 10007 </div> 10008 </div> 10009 </p> 10010 <p> 10011 <div class="refentrytitle"> 10012 <a id="f_delete-buffer"></a> 10013 <strong>[Function]</strong> 10014 <br></br> 10015 <code> 10016 delete-buffer buffer 10017 </code> 10018 </div> 10019 <div class="refentrytitle"></div> 10020 </p> 10021 <p> 10022 <div> 10023 <div class="refsect1" lang="en" xml:lang="en"> 10024 <a xmlns="http://www.w3.org/1999/xhtml" id="id687102"></a> 10025 <div class="header">Description:</div> 10026 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 10027 </div> 10028 </div> 10029 </p> 10030 <p> 10031 <div class="refentrytitle"> 10032 <a id="hv_delete_buffer_hook"></a> 10033 <strong>[Hemlock Variable]</strong> 10034 <br></br> 10035 <code> 10036 Delete Buffer Hook 10037 </code> 10038 </div> 10039 <div class="refentrytitle"></div> 10040 </p> 10041 <p> 10042 <div> 10043 <div class="refsect1" lang="en" xml:lang="en"> 10044 <a xmlns="http://www.w3.org/1999/xhtml" id="id687156"></a> 10045 <div class="header">Description:</div> 10046 <p xmlns="http://www.w3.org/1999/xhtml"> 10047 delete-buffer removes buffer from (all-buffers) (page 10) and its name 10048 from *buffer-names* (page 10). Before buffer is deleted, this invokes 10049 the functions on buffer returned by buffer-delete-hook and those found 10050 in Delete Buffer Hook. If buffer is the current-buffer, or if it is 10051 displayed in any view, then this function signals an error. 10052 </p> 10053 </div> 10054 </div> 10055 </p> 10056 </div> 10057 <div class="sect2" lang="en" xml:lang="en"> 10058 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 10059 <div> 10060 <div> 10061 <h3 class="title"><a id="Modelines"></a>6.3.3. Modelines</h3> 10062 </div> 10063 </div> 10064 </div> 10065 <p xmlns="http://www.w3.org/1999/xhtml"> 10066 A Buffer may specify a modeline, a line of text which is displayed 10067 across the bottom of a view to indicate status information. 10068 Modelines are described by a list of modeline-field objects which have 10069 individual update functions and are optionally fixed-width. These have 10070 an eql name for convenience in referencing and updating, but the name 10071 must be unique for all created modeline-field objects. All modeline-field 10072 functions must take a buffer as an 10073 argument and return a string. When displaying 10074 a modeline-field with a specified width, the result of the update 10075 function is either truncated or padded on the right to meet the 10076 constraint. 10077 </p> 10078 <p xmlns="http://www.w3.org/1999/xhtml"> 10079 Whenever one of the following changes occurs, all of a buffer's 10080 modeline fields are updated: 10081 </p> 10082 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 10083 <ul class="itemizedlist" type="disc"> 10084 <li class="listitem"> 10085 <p> 10086 A buffer's major mode is set. 10087 </p> 10088 </li> 10089 <li class="listitem"> 10090 <p> 10091 One of a buffer's minor modes is turned on or off. 10092 </p> 10093 </li> 10094 <li class="listitem"> 10095 <p> 10096 A buffer is renamed. 10097 </p> 10098 </li> 10099 <li class="listitem"> 10100 <p> 10101 A buffer's pathname changes. 10102 </p> 10103 </li> 10104 <li class="listitem"> 10105 <p> 10106 A buffer's modified status changes. 10107 </p> 10108 </li> 10109 </ul> 10110 </div> 10111 <p xmlns="http://www.w3.org/1999/xhtml"> 10112 The policy is that whenever one of these changes occurs, it is 10113 guaranteed that the modeline will be updated before the next trip 10114 through redisplay. Furthermore, since the system cannot know what 10115 modeline-field objects the user has added whose update functions rely 10116 on these values, or how he has changed Default Modeline Fields, we must 10117 update all the fields. 10118 </p> 10119 <p xmlns="http://www.w3.org/1999/xhtml"> 10120 The user should note that modelines can be updated at any time, so 10121 update functions should be careful to avoid needless delays (for 10122 example, waiting for a local area network to determine information). 10123 </p> 10124 <p> 10125 <div class="refentrytitle"> 10126 <a id="f_make-modeline-field"></a> 10127 <strong>[Function]</strong> 10128 <br></br> 10129 <code> 10130 make-modeline-field <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> :name :width :function 10131 </code> 10132 </div> 10133 <div class="refentrytitle"></div> 10134 </p> 10135 <p> 10136 <div> 10137 <div class="refsect1" lang="en" xml:lang="en"> 10138 <a xmlns="http://www.w3.org/1999/xhtml" id="id687297"></a> 10139 <div class="header">Description:</div> 10140 <p xmlns="http://www.w3.org/1999/xhtml"> 10141 This function returns a modeline-field object with name, width, 10142 and function. Width defaults to nil meaning that the field is variable 10143 width; otherwise, the programmer must supply this as a positive 10144 integer. Function must take a buffer as an arguments and 10145 return a string. If name already names a modeline-field object, 10146 then this signals an error. 10147 </p> 10148 </div> 10149 </div> 10150 </p> 10151 <p> 10152 <div class="refentrytitle"> 10153 <a id="f_modeline-field-name"></a> 10154 <strong>[Function]</strong> 10155 <br></br> 10156 <code> 10157 modeline-field-name modeline-field 10158 </code> 10159 </div> 10160 <div class="refentrytitle"></div> 10161 </p> 10162 <p> 10163 <div> 10164 <div class="refsect1" lang="en" xml:lang="en"> 10165 <a xmlns="http://www.w3.org/1999/xhtml" id="id687354"></a> 10166 <div class="header">Description:</div> 10167 <p xmlns="http://www.w3.org/1999/xhtml"> 10168 This function returns the name field of a modeline-field object. 10169 If this is set with setf, and the new name already names a 10170 modeline-field, then the setf method signals an error. 10171 </p> 10172 </div> 10173 </div> 10174 </p> 10175 <p> 10176 <div class="refentrytitle"> 10177 <a id="f_modeline-field-p"></a> 10178 <strong>[Function]</strong> 10179 <br></br> 10180 <code> 10181 modeline-field-p modeline-field 10182 </code> 10183 </div> 10184 <div class="refentrytitle"></div> 10185 </p> 10186 <p> 10187 <div> 10188 <div class="refsect1" lang="en" xml:lang="en"> 10189 <a xmlns="http://www.w3.org/1999/xhtml" id="id687410"></a> 10190 <div class="header">Description:</div> 10191 <p xmlns="http://www.w3.org/1999/xhtml"> 10192 This function returns t if its argument is a modeline-field object, nil 10193 otherwise. 10194 </p> 10195 </div> 10196 </div> 10197 </p> 10198 <p> 10199 <div class="refentrytitle"> 10200 <a id="f_modeline-field"></a> 10201 <strong>[Function]</strong> 10202 <br></br> 10203 <code> 10204 modeline-field name 10205 </code> 10206 </div> 10207 <div class="refentrytitle"></div> 10208 </p> 10209 <p> 10210 <div> 10211 <div class="refsect1" lang="en" xml:lang="en"> 10212 <a xmlns="http://www.w3.org/1999/xhtml" id="id687465"></a> 10213 <div class="header">Description:</div> 10214 <p xmlns="http://www.w3.org/1999/xhtml"> 10215 This returns the modeline-field object named name. If none exists, this 10216 returns nil. 10217 </p> 10218 </div> 10219 </div> 10220 </p> 10221 <p> 10222 <div class="refentrytitle"> 10223 <a id="f_modeline-field-function"></a> 10224 <strong>[Function]</strong> 10225 <br></br> 10226 <code> 10227 modeline-field-function modeline-field 10228 </code> 10229 </div> 10230 <div class="refentrytitle"></div> 10231 </p> 10232 <p> 10233 <div> 10234 <div class="refsect1" lang="en" xml:lang="en"> 10235 <a xmlns="http://www.w3.org/1999/xhtml" id="id687520"></a> 10236 <div class="header">Description:</div> 10237 <p xmlns="http://www.w3.org/1999/xhtml"> 10238 Returns the function called when updating the modeline-field. When this 10239 is set with setf, the setf method updates modeline-field for all views 10240 on all buffers that contain the given field, so the next trip through 10241 redisplay will reflect the change. All modeline-field functions must 10242 take a buffer as an argument and return a string. 10243 </p> 10244 </div> 10245 </div> 10246 </p> 10247 <p> 10248 <div class="refentrytitle"> 10249 <a id="f_modeline-field-width"></a> 10250 <strong>[Function]</strong> 10251 <br></br> 10252 <code> 10253 modeline-field-width modeline-field 10254 </code> 10255 </div> 10256 <div class="refentrytitle"></div> 10257 </p> 10258 <p> 10259 <div> 10260 <div class="refsect1" lang="en" xml:lang="en"> 10261 <a xmlns="http://www.w3.org/1999/xhtml" id="id687577"></a> 10262 <div class="header">Description:</div> 10263 <p xmlns="http://www.w3.org/1999/xhtml"> 10264 Returns the width to which modeline-field is constrained, or nil 10265 indicating that it is variable width. When this is set with setf, the 10266 setf method updates all modeline-fields for all views on all buffers 10267 that contain the given field, so the next trip through redisplay will 10268 reflect the change. 10269 </p> 10270 </div> 10271 </div> 10272 </p> 10273 <p> 10274 <div class="refentrytitle"> 10275 <a id="f_buffer-modeline-fields"></a> 10276 <strong>[Function]</strong> 10277 <br></br> 10278 <code> 10279 buffer-modeline-fields buffer 10280 </code> 10281 </div> 10282 <div class="refentrytitle"></div> 10283 </p> 10284 <p> 10285 <div> 10286 <div class="refsect1" lang="en" xml:lang="en"> 10287 <a xmlns="http://www.w3.org/1999/xhtml" id="id687634"></a> 10288 <div class="header">Description:</div> 10289 <p xmlns="http://www.w3.org/1999/xhtml"> 10290 Returns a copy of the list of buffer's modeline-field objects. This 10291 list can be destructively modified without affecting display of 10292 buffer's modeline, but modifying any particular field's components 10293 (for example, width or function) causes the changes to be reflected 10294 the next trip through redisplay in every modeline display that uses 10295 the modified modeline-field. When this is set with setf, the setf 10296 method method updates all modeline-fields on all views on the buffer, 10297 so next trip through the redisplay will reflect the change. 10298 </p> 10299 </div> 10300 </div> 10301 </p> 10302 <p> 10303 <div class="refentrytitle"> 10304 <a id="f_buffer-modeline-field-p"></a> 10305 <strong>[Function]</strong> 10306 <br></br> 10307 <code> 10308 buffer-modeline-field-p buffer field 10309 </code> 10310 </div> 10311 <div class="refentrytitle"></div> 10312 </p> 10313 <p> 10314 <div> 10315 <div class="refsect1" lang="en" xml:lang="en"> 10316 <a xmlns="http://www.w3.org/1999/xhtml" id="id687693"></a> 10317 <div class="header">Description:</div> 10318 <p xmlns="http://www.w3.org/1999/xhtml"> 10319 If field, a modeline-field or the name of one, is in buffer's list of 10320 modeline-field objects, it is returned; otherwise, this returns nil. 10321 </p> 10322 </div> 10323 </div> 10324 </p> 10325 <p> 10326 <div class="refentrytitle"> 10327 <a id="f_update-modeline-fields"></a> 10328 <strong>[Function]</strong> 10329 <br></br> 10330 <code> 10331 update-modeline-fields buffer 10332 </code> 10333 </div> 10334 <div class="refentrytitle"></div> 10335 </p> 10336 <p> 10337 <div> 10338 <div class="refsect1" lang="en" xml:lang="en"> 10339 <a xmlns="http://www.w3.org/1999/xhtml" id="id687749"></a> 10340 <div class="header">Description:</div> 10341 <p xmlns="http://www.w3.org/1999/xhtml"> 10342 Arranges so that the modeline display is updated with the latest values 10343 at the end of current command. 10344 </p> 10345 </div> 10346 </div> 10347 </p> 10348 </div> 10349 </div> 10350 <div class="sect1" lang="en" xml:lang="en"> 10351 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 10352 <div> 10353 <div> 10354 <h2 class="title" style="clear: both"><a id="HemlockProgrammingAlteringAndSearchingText"></a>6.4. Altering and Searching Text</h2> 10355 </div> 10356 </div> 10357 </div> 10358 <p xmlns="http://www.w3.org/1999/xhtml"> 10359 A note on marks and text alteration: :temporary marks are invalid 10360 after any change has been made to the buffer the mark points to; it is 10361 an error to use a temporary mark after such a change has been made. 10362 </p> 10363 <p xmlns="http://www.w3.org/1999/xhtml"> 10364 If text is deleted which has permanent marks pointing into it then 10365 they are left pointing to the position where the text was. 10366 </p> 10367 <div class="sect2" lang="en" xml:lang="en"> 10368 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 10369 <div> 10370 <div> 10371 <h3 class="title"><a id="AlteringText"></a>6.4.1. Altering Text</h3> 10372 </div> 10373 </div> 10374 </div> 10375 <p> 10376 <div class="refentrytitle"> 10377 <a id="f_insert-character"></a> 10378 <strong>[Function]</strong> 10379 <br></br> 10380 <code> 10381 insert-character mark character 10382 </code> 10383 </div> 10384 <div class="refentrytitle"></div> 10385 </p> 10386 <p> 10387 <div> 10388 <div class="refsect1" lang="en" xml:lang="en"> 10389 <a xmlns="http://www.w3.org/1999/xhtml" id="id687837"></a> 10390 <div class="header">Description:</div> 10391 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 10392 </div> 10393 </div> 10394 </p> 10395 <p> 10396 <div class="refentrytitle"> 10397 <a id="f_insert-string"></a> 10398 <strong>[Function]</strong> 10399 <br></br> 10400 <code> 10401 insert-string mark string 10402 </code> 10403 </div> 10404 <div class="refentrytitle"></div> 10405 </p> 10406 <p> 10407 <div> 10408 <div class="refsect1" lang="en" xml:lang="en"> 10409 <a xmlns="http://www.w3.org/1999/xhtml" id="id687891"></a> 10410 <div class="header">Description:</div> 10411 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 10412 </div> 10413 </div> 10414 </p> 10415 <p> 10416 <div class="refentrytitle"> 10417 <a id="f_insert-region"></a> 10418 <strong>[Function]</strong> 10419 <br></br> 10420 <code> 10421 insert-region mark region 10422 </code> 10423 </div> 10424 <div class="refentrytitle"></div> 10425 </p> 10426 <p> 10427 <div> 10428 <div class="refsect1" lang="en" xml:lang="en"> 10429 <a xmlns="http://www.w3.org/1999/xhtml" id="id687945"></a> 10430 <div class="header">Description:</div> 10431 <p xmlns="http://www.w3.org/1999/xhtml"> 10432 Inserts character, string or region at mark. <code class="code">insert-character</code> signals 10433 an error if character is not <code class="code">string-char-p</code>. If string or region is 10434 empty, and mark is in some buffer, then Hemlock leaves buffer-modified of 10435 mark's buffer unaffected. 10436 </p> 10437 </div> 10438 </div> 10439 </p> 10440 <p> 10441 <div class="refentrytitle"> 10442 <a id="f_ninsert-region"></a> 10443 <strong>[Function]</strong> 10444 <br></br> 10445 <code> 10446 ninsert-region mark region 10447 </code> 10448 </div> 10449 <div class="refentrytitle"></div> 10450 </p> 10451 <p> 10452 <div> 10453 <div class="refsect1" lang="en" xml:lang="en"> 10454 <a xmlns="http://www.w3.org/1999/xhtml" id="id688009"></a> 10455 <div class="header">Description:</div> 10456 <p xmlns="http://www.w3.org/1999/xhtml"> 10457 Like <code class="code">insert-region</code>, inserts the region at the mark's position, 10458 destroying the source region. This must be used with caution, since 10459 if anyone else can refer to the source region bad things will 10460 happen. In particular, one should make sure the region is not linked 10461 into any existing buffer. If region is empty, and mark is in some 10462 buffer, then Hemlock leaves buffer-modified of mark's buffer unaffected. 10463 </p> 10464 </div> 10465 </div> 10466 </p> 10467 <p> 10468 <div class="refentrytitle"> 10469 <a id="f_delete-characters"></a> 10470 <strong>[Function]</strong> 10471 <br></br> 10472 <code> 10473 delete-characters mark n 10474 </code> 10475 </div> 10476 <div class="refentrytitle"></div> 10477 </p> 10478 <p> 10479 <div> 10480 <div class="refsect1" lang="en" xml:lang="en"> 10481 <a xmlns="http://www.w3.org/1999/xhtml" id="id688070"></a> 10482 <div class="header">Description:</div> 10483 <p xmlns="http://www.w3.org/1999/xhtml"> 10484 This deletes n characters after the mark (or -n before if n is 10485 negative). If n characters after (or -n before) the mark do not 10486 exist, then this returns nil; otherwise, it returns t. If n is zero, 10487 and mark is in some buffer, then Hemlock leaves buffer-modified of 10488 mark's buffer unaffected. 10489 </p> 10490 </div> 10491 </div> 10492 </p> 10493 <p> 10494 <div class="refentrytitle"> 10495 <a id="f_delete-region"></a> 10496 <strong>[Function]</strong> 10497 <br></br> 10498 <code> 10499 delete-region region 10500 </code> 10501 </div> 10502 <div class="refentrytitle"></div> 10503 </p> 10504 <p> 10505 <div> 10506 <div class="refsect1" lang="en" xml:lang="en"> 10507 <a xmlns="http://www.w3.org/1999/xhtml" id="id688126"></a> 10508 <div class="header">Description:</div> 10509 <p xmlns="http://www.w3.org/1999/xhtml"> 10510 This deletes region. This is faster than delete-and-save-region 10511 (below) because no lines are copied. If region is empty and contained 10512 in some buffer's buffer-region, then Hemlock leaves buffer-modified of 10513 the buffer unaffected. 10514 </p> 10515 </div> 10516 </div> 10517 </p> 10518 <p> 10519 <div class="refentrytitle"> 10520 <a id="f_delete-and-save-region"></a> 10521 <strong>[Function]</strong> 10522 <br></br> 10523 <code> 10524 delete-and-save-region region 10525 </code> 10526 </div> 10527 <div class="refentrytitle"></div> 10528 </p> 10529 <p> 10530 <div> 10531 <div class="refsect1" lang="en" xml:lang="en"> 10532 <a xmlns="http://www.w3.org/1999/xhtml" id="id688183"></a> 10533 <div class="header">Description:</div> 10534 <p xmlns="http://www.w3.org/1999/xhtml"> 10535 This deletes region and returns a region containing the original 10536 region's text. If region is empty and contained in some buffer's 10537 buffer-region, then Hemlock leaves buffer-modified of the buffer 10538 unaffected. In this case, this returns a distinct empty region. 10539 </p> 10540 </div> 10541 </div> 10542 </p> 10543 <p> 10544 <div class="refentrytitle"> 10545 <a id="f_filter-region"></a> 10546 <strong>[Function]</strong> 10547 <br></br> 10548 <code> 10549 filter-region function region 10550 </code> 10551 </div> 10552 <div class="refentrytitle"></div> 10553 </p> 10554 <p> 10555 <div> 10556 <div class="refsect1" lang="en" xml:lang="en"> 10557 <a xmlns="http://www.w3.org/1999/xhtml" id="id688240"></a> 10558 <div class="header">Description:</div> 10559 <p xmlns="http://www.w3.org/1999/xhtml"> 10560 Destructively modifies region by replacing the text of each line with 10561 the result of the application of function to a string containing that 10562 text. Function must obey the following restrictions: 10563 </p> 10564 <div xmlns="http://www.w3.org/1999/xhtml" class="orderedlist"> 10565 <ol class="orderedlist" type="1"> 10566 <li class="listitem"> 10567 <p> 10568 The argument may not be destructively modified. 10569 </p> 10570 </li> 10571 <li class="listitem"> 10572 <p> 10573 The return value may not contain newline characters. 10574 </p> 10575 </li> 10576 <li class="listitem"> 10577 <p> 10578 The return value may not be destructively modified after it is returned from function. 10579 </p> 10580 </li> 10581 </ol> 10582 </div> 10583 <p xmlns="http://www.w3.org/1999/xhtml"> 10584 The strings are passed in order. 10585 </p> 10586 <p xmlns="http://www.w3.org/1999/xhtml"> 10587 Using this function, a region could be uppercased by doing: 10588 <code class="code">(filter-region #'string-upcase region)</code> 10589 </p> 10590 </div> 10591 </div> 10592 </p> 10593 </div> 10594 <div class="sect2" lang="en" xml:lang="en"> 10595 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 10596 <div> 10597 <div> 10598 <h3 class="title"><a id="TextPredicates"></a>6.4.2. Text Predicates</h3> 10599 </div> 10600 </div> 10601 </div> 10602 <p> 10603 <div class="refentrytitle"> 10604 <a id="f_start-line-p"></a> 10605 <strong>[Function]</strong> 10606 <br></br> 10607 <code> 10608 start-line-p mark 10609 </code> 10610 </div> 10611 <div class="refentrytitle"></div> 10612 </p> 10613 <p> 10614 <div> 10615 <div class="refsect1" lang="en" xml:lang="en"> 10616 <a xmlns="http://www.w3.org/1999/xhtml" id="id688352"></a> 10617 <div class="header">Description:</div> 10618 <p xmlns="http://www.w3.org/1999/xhtml"> 10619 Returns t if the mark points before the first character in a line, nil 10620 otherwise. 10621 </p> 10622 </div> 10623 </div> 10624 </p> 10625 <p> 10626 <div class="refentrytitle"> 10627 <a id="f_end-line-p"></a> 10628 <strong>[Function]</strong> 10629 <br></br> 10630 <code> 10631 end-line-p mark 10632 </code> 10633 </div> 10634 <div class="refentrytitle"></div> 10635 </p> 10636 <p> 10637 <div> 10638 <div class="refsect1" lang="en" xml:lang="en"> 10639 <a xmlns="http://www.w3.org/1999/xhtml" id="id688407"></a> 10640 <div class="header">Description:</div> 10641 <p xmlns="http://www.w3.org/1999/xhtml"> 10642 Returns t if the mark points after the last character in a line and 10643 before the newline, nil otherwise. 10644 </p> 10645 <p xmlns="http://www.w3.org/1999/xhtml"> 10646 <code class="code">empty-line-p</code> mark [Function] 10647 Return t if the line which mark points to contains no characters. 10648 </p> 10649 </div> 10650 </div> 10651 </p> 10652 <p> 10653 <div class="refentrytitle"> 10654 <a id="f_blank-line-p"></a> 10655 <strong>[Function]</strong> 10656 <br></br> 10657 <code> 10658 blank-line-p line 10659 </code> 10660 </div> 10661 <div class="refentrytitle"></div> 10662 </p> 10663 <p> 10664 <div> 10665 <div class="refsect1" lang="en" xml:lang="en"> 10666 <a xmlns="http://www.w3.org/1999/xhtml" id="id688470"></a> 10667 <div class="header">Description:</div> 10668 <p xmlns="http://www.w3.org/1999/xhtml"> 10669 Returns t if line contains only characters with a Whitespace attribute 10670 of 1. See chapter 9 for discussion of character attributes. 10671 </p> 10672 </div> 10673 </div> 10674 </p> 10675 <p> 10676 <div class="refentrytitle"> 10677 <a id="f_blank-before-p"></a> 10678 <strong>[Function]</strong> 10679 <br></br> 10680 <code> 10681 blank-before-p mark 10682 </code> 10683 </div> 10684 <div class="refentrytitle"></div> 10685 </p> 10686 <p> 10687 <div> 10688 <div class="refsect1" lang="en" xml:lang="en"> 10689 <a xmlns="http://www.w3.org/1999/xhtml" id="id688525"></a> 10690 <div class="header">Description:</div> 10691 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 10692 </div> 10693 </div> 10694 </p> 10695 <p> 10696 <div class="refentrytitle"> 10697 <a id="f_blank-after-p"></a> 10698 <strong>[Function]</strong> 10699 <br></br> 10700 <code> 10701 blank-after-p mark 10702 </code> 10703 </div> 10704 <div class="refentrytitle"></div> 10705 </p> 10706 <p> 10707 <div> 10708 <div class="refsect1" lang="en" xml:lang="en"> 10709 <a xmlns="http://www.w3.org/1999/xhtml" id="id688579"></a> 10710 <div class="header">Description:</div> 10711 <p xmlns="http://www.w3.org/1999/xhtml"> 10712 These functions test if all the characters preceding or following mark 10713 on the line it is on have a Whitespace attribute of 1. 10714 </p> 10715 </div> 10716 </div> 10717 </p> 10718 <p> 10719 <div class="refentrytitle"> 10720 <a id="f_same-line-p"></a> 10721 <strong>[Function]</strong> 10722 <br></br> 10723 <code> 10724 same-line-p mark1 mark2 10725 </code> 10726 </div> 10727 <div class="refentrytitle"></div> 10728 </p> 10729 <p> 10730 <div> 10731 <div class="refsect1" lang="en" xml:lang="en"> 10732 <a xmlns="http://www.w3.org/1999/xhtml" id="id688634"></a> 10733 <div class="header">Description:</div> 10734 <p xmlns="http://www.w3.org/1999/xhtml"> 10735 Returns t if mark1 and mark2 point to the same line, or nil otherwise; That is, 10736 </p> 10737 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> 10738 10739 (same-line-p a b) &lt;==&gt; (eq (mark-line a) (mark-line b)) 10740 10741 </pre> 10742 <p xmlns="http://www.w3.org/1999/xhtml"> 10743 </p> 10744 </div> 10745 </div> 10746 </p> 10747 <p> 10748 <div class="refentrytitle"> 10749 <a id="f_mark_lt"></a> 10750 <strong>[Function]</strong> 10751 <br></br> 10752 <code> 10753 mark< mark1 mark2 10754 </code> 10755 </div> 10756 <div class="refentrytitle"></div> 10757 </p> 10758 <p> 10759 <div> 10760 <div class="refsect1" lang="en" xml:lang="en"> 10761 <a xmlns="http://www.w3.org/1999/xhtml" id="id688695"></a> 10762 <div class="header">Description:</div> 10763 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 10764 </div> 10765 </div> 10766 </p> 10767 <p> 10768 <div class="refentrytitle"> 10769 <a id="f_mark_lt__eq"></a> 10770 <strong>[Function]</strong> 10771 <br></br> 10772 <code> 10773 mark<= mark1 mark2 10774 </code> 10775 </div> 10776 <div class="refentrytitle"></div> 10777 </p> 10778 <p> 10779 <div> 10780 <div class="refsect1" lang="en" xml:lang="en"> 10781 <a xmlns="http://www.w3.org/1999/xhtml" id="id688749"></a> 10782 <div class="header">Description:</div> 10783 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 10784 </div> 10785 </div> 10786 </p> 10787 <p> 10788 <div class="refentrytitle"> 10789 <a id="f_mark_eq"></a> 10790 <strong>[Function]</strong> 10791 <br></br> 10792 <code> 10793 mark= mark1 mark2 10794 </code> 10795 </div> 10796 <div class="refentrytitle"></div> 10797 </p> 10798 <p> 10799 <div> 10800 <div class="refsect1" lang="en" xml:lang="en"> 10801 <a xmlns="http://www.w3.org/1999/xhtml" id="id688803"></a> 10802 <div class="header">Description:</div> 10803 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 10804 </div> 10805 </div> 10806 </p> 10807 <p> 10808 <div class="refentrytitle"> 10809 <a id="f_mark__eq"></a> 10810 <strong>[Function]</strong> 10811 <br></br> 10812 <code> 10813 mark/= mark1 mark2 10814 </code> 10815 </div> 10816 <div class="refentrytitle"></div> 10817 </p> 10818 <p> 10819 <div> 10820 <div class="refsect1" lang="en" xml:lang="en"> 10821 <a xmlns="http://www.w3.org/1999/xhtml" id="id688858"></a> 10822 <div class="header">Description:</div> 10823 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 10824 </div> 10825 </div> 10826 </p> 10827 <p> 10828 <div class="refentrytitle"> 10829 <a id="f_mark_gt__eq"></a> 10830 <strong>[Function]</strong> 10831 <br></br> 10832 <code> 10833 mark>= mark1 mark2 10834 </code> 10835 </div> 10836 <div class="refentrytitle"></div> 10837 </p> 10838 <p> 10839 <div> 10840 <div class="refsect1" lang="en" xml:lang="en"> 10841 <a xmlns="http://www.w3.org/1999/xhtml" id="id688911"></a> 10842 <div class="header">Description:</div> 10843 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 10844 </div> 10845 </div> 10846 </p> 10847 <p> 10848 <div class="refentrytitle"> 10849 <a id="f_mark_gt"></a> 10850 <strong>[Function]</strong> 10851 <br></br> 10852 <code> 10853 mark> mark1 mark2 10854 </code> 10855 </div> 10856 <div class="refentrytitle"></div> 10857 </p> 10858 <p> 10859 <div> 10860 <div class="refsect1" lang="en" xml:lang="en"> 10861 <a xmlns="http://www.w3.org/1999/xhtml" id="id688966"></a> 10862 <div class="header">Description:</div> 10863 <p xmlns="http://www.w3.org/1999/xhtml"> 10864 These predicates test the relative ordering of two marks in a piece of 10865 text, that is a mark is mark> another if it points to a position after 10866 it. An error is signalled if the marks do not point into the same buffer, 10867 except that for such marks mark= is always false and mark/= is always true. 10868 </p> 10869 </div> 10870 </div> 10871 </p> 10872 <p> 10873 <div class="refentrytitle"> 10874 <a id="f_line_lt"></a> 10875 <strong>[Function]</strong> 10876 <br></br> 10877 <code> 10878 line< line1 line2 10879 </code> 10880 </div> 10881 <div class="refentrytitle"></div> 10882 </p> 10883 <p> 10884 <div> 10885 <div class="refsect1" lang="en" xml:lang="en"> 10886 <a xmlns="http://www.w3.org/1999/xhtml" id="id689022"></a> 10887 <div class="header">Description:</div> 10888 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 10889 </div> 10890 </div> 10891 </p> 10892 <p> 10893 <div class="refentrytitle"> 10894 <a id="f_line_lt__eq"></a> 10895 <strong>[Function]</strong> 10896 <br></br> 10897 <code> 10898 line<= line1 line2 10899 </code> 10900 </div> 10901 <div class="refentrytitle"></div> 10902 </p> 10903 <p> 10904 <div> 10905 <div class="refsect1" lang="en" xml:lang="en"> 10906 <a xmlns="http://www.w3.org/1999/xhtml" id="id689077"></a> 10907 <div class="header">Description:</div> 10908 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 10909 </div> 10910 </div> 10911 </p> 10912 <p> 10913 <div class="refentrytitle"> 10914 <a id="f_line_gt__eq"></a> 10915 <strong>[Function]</strong> 10916 <br></br> 10917 <code> 10918 line>= line1 line2 10919 </code> 10920 </div> 10921 <div class="refentrytitle"></div> 10922 </p> 10923 <p> 10924 <div> 10925 <div class="refsect1" lang="en" xml:lang="en"> 10926 <a xmlns="http://www.w3.org/1999/xhtml" id="id689131"></a> 10927 <div class="header">Description:</div> 10928 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 10929 </div> 10930 </div> 10931 </p> 10932 <p> 10933 <div class="refentrytitle"> 10934 <a id="f_line_gt"></a> 10935 <strong>[Function]</strong> 10936 <br></br> 10937 <code> 10938 line> line1 line2 10939 </code> 10940 </div> 10941 <div class="refentrytitle"></div> 10942 </p> 10943 <p> 10944 <div> 10945 <div class="refsect1" lang="en" xml:lang="en"> 10946 <a xmlns="http://www.w3.org/1999/xhtml" id="id689185"></a> 10947 <div class="header">Description:</div> 10948 <p xmlns="http://www.w3.org/1999/xhtml"> 10949 These predicates test the ordering of line1 and line2. An error is signalled 10950 if the lines are not in the same buffer. 10951 </p> 10952 </div> 10953 </div> 10954 </p> 10955 <p> 10956 <div class="refentrytitle"> 10957 <a id="f_lines-related"></a> 10958 <strong>[Function]</strong> 10959 <br></br> 10960 <code> 10961 lines-related line1 line2 10962 </code> 10963 </div> 10964 <div class="refentrytitle"></div> 10965 </p> 10966 <p> 10967 <div> 10968 <div class="refsect1" lang="en" xml:lang="en"> 10969 <a xmlns="http://www.w3.org/1999/xhtml" id="id689241"></a> 10970 <div class="header">Description:</div> 10971 <p xmlns="http://www.w3.org/1999/xhtml"> 10972 This function returns t if line1 and line2 are in the same buffer, nil 10973 nil otherwise. 10974 </p> 10975 </div> 10976 </div> 10977 </p> 10978 <p> 10979 <div class="refentrytitle"> 10980 <a id="f_first-line-p"></a> 10981 <strong>[Function]</strong> 10982 <br></br> 10983 <code> 10984 first-line-p mark 10985 </code> 10986 </div> 10987 <div class="refentrytitle"></div> 10988 </p> 10989 <p> 10990 <div> 10991 <div class="refsect1" lang="en" xml:lang="en"> 10992 <a xmlns="http://www.w3.org/1999/xhtml" id="id689296"></a> 10993 <div class="header">Description:</div> 10994 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 10995 </div> 10996 </div> 10997 </p> 10998 <p> 10999 <div class="refentrytitle"> 11000 <a id="f_last-line-p"></a> 11001 <strong>[Function]</strong> 11002 <br></br> 11003 <code> 11004 last-line-p mark 11005 </code> 11006 </div> 11007 <div class="refentrytitle"></div> 11008 </p> 11009 <p> 11010 <div> 11011 <div class="refsect1" lang="en" xml:lang="en"> 11012 <a xmlns="http://www.w3.org/1999/xhtml" id="id689350"></a> 11013 <div class="header">Description:</div> 11014 <p xmlns="http://www.w3.org/1999/xhtml"> 11015 <code class="code">first-line-p</code> returns t if there is no line before the line mark is on, 11016 and nil otherwise. <code class="code">Last-line-p</code> similarly tests tests whether there is 11017 no line after mark. 11018 </p> 11019 </div> 11020 </div> 11021 </p> 11022 </div> 11023 <div class="sect2" lang="en" xml:lang="en"> 11024 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 11025 <div> 11026 <div> 11027 <h3 class="title"><a id="KillRing"></a>6.4.3. Kill Ring</h3> 11028 </div> 11029 </div> 11030 </div> 11031 <p xmlns="http://www.w3.org/1999/xhtml"> 11032 There is a global ring (see section 16.2) of regions deleted from buffers. 11033 Some commands save affected regions on the kill ring before performing 11034 modifications. You should consider making the command undoable (see 11035 section 16.3), but this is a simple way of achieving a less 11036 satisfactory means for the user to recover. 11037 </p> 11038 <p> 11039 <div class="refentrytitle"> 11040 <a id="f_kill-region"></a> 11041 <strong>[Function]</strong> 11042 <br></br> 11043 <code> 11044 kill-region region current-type 11045 </code> 11046 </div> 11047 <div class="refentrytitle"></div> 11048 </p> 11049 <p> 11050 <div> 11051 <div class="refsect1" lang="en" xml:lang="en"> 11052 <a xmlns="http://www.w3.org/1999/xhtml" id="id689430"></a> 11053 <div class="header">Description:</div> 11054 <p xmlns="http://www.w3.org/1999/xhtml"> 11055 This kills region saving it in the kill ring. Current-type is either 11056 :kill-forward or :kill-backward. When the last-command-type (page 31) 11057 is one of these, this adds region to the beginning or end, 11058 respectively, of the top of the kill ring. The result of calling this is 11059 undoable using the command Undo (see the Hemlock User's Manual). This 11060 sets last-command-type to current-type, and it interacts with 11061 kill-characters. 11062 </p> 11063 </div> 11064 </div> 11065 </p> 11066 <p> 11067 <div class="refentrytitle"> 11068 <a id="f_kill-characters"></a> 11069 <strong>[Function]</strong> 11070 <br></br> 11071 <code> 11072 kill-characters mark count 11073 </code> 11074 </div> 11075 <div class="refentrytitle"></div> 11076 </p> 11077 <p> 11078 <div> 11079 <div class="refsect1" lang="en" xml:lang="en"> 11080 <a xmlns="http://www.w3.org/1999/xhtml" id="id689488"></a> 11081 <div class="header">Description:</div> 11082 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 11083 </div> 11084 </div> 11085 </p> 11086 <p> 11087 <div class="refentrytitle"> 11088 <a id="hv_character_deletion_threshold"></a> 11089 <strong>[Hemlock Variable]</strong> 11090 <br></br> 11091 <code> 11092 Character Deletion Threshold (initial value 5) 11093 </code> 11094 </div> 11095 <div class="refentrytitle"></div> 11096 </p> 11097 <p> 11098 <div> 11099 <div class="refsect1" lang="en" xml:lang="en"> 11100 <a xmlns="http://www.w3.org/1999/xhtml" id="id689543"></a> 11101 <div class="header">Description:</div> 11102 <p xmlns="http://www.w3.org/1999/xhtml"> 11103 kill-characters kills count characters after mark if count is 11104 positive, otherwise before mark if count is negative. When count is 11105 greater than or equal to Character Deletion Threshold, the killed 11106 characters are saved on the kill ring. This may be called multiple times 11107 contiguously (that is, without last-command-type (page 31) being set) 11108 to accumulate an effective count for purposes of comparison with the 11109 threshold. 11110 </p> 11111 <p xmlns="http://www.w3.org/1999/xhtml"> 11112 This sets last-command-type, and it interacts with kill-region. When 11113 this adds a new region to the kill ring, it sets last-command-type to 11114 :kill-forward (if count is positive) or :kill-backward (if count is 11115 negative). When last-command-type is :kill-forward or :kill-backward, 11116 this adds the killed characters to the beginning (if count is 11117 negative) or the end (if count is positive) of the top of the kill ring, 11118 and it sets last-command-type as if it added a new region to the 11119 kill ring. When the kill ring is unaffected, this sets 11120 last-command-type to :char-kill-forward or :char-kill-backward 11121 depending on whether count is positive or negative, respectively. 11122 </p> 11123 <p xmlns="http://www.w3.org/1999/xhtml"> 11124 This returns mark if it deletes characters. If there are not count 11125 characters in the appropriate direction, this returns nil. 11126 </p> 11127 </div> 11128 </div> 11129 </p> 11130 </div> 11131 <div class="sect2" lang="en" xml:lang="en"> 11132 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 11133 <div> 11134 <div> 11135 <h3 class="title"><a id="ActiveRegions"></a>6.4.4. Active Regions</h3> 11136 </div> 11137 </div> 11138 </div> 11139 <p xmlns="http://www.w3.org/1999/xhtml"> 11140 Every buffer has a mark stack (page 9) and a mark known as the point 11141 where most text altering nominally occurs. Between the top of the 11142 mark stack, the current-mark, and the current-buffer's point, the 11143 current-point, is what is known as the current-region . Certain 11144 commands signal errors when the user tries to operate on the 11145 current-region without its having been activated. If the user turns 11146 off this feature, then the current-region is effectively always 11147 active. 11148 </p> 11149 <p xmlns="http://www.w3.org/1999/xhtml"> 11150 When writing a command that marks a region of text, the programmer 11151 should make sure to activate the region. This typically occurs 11152 naturally from the primitives that you use to mark regions, but 11153 sometimes you must explicitly activate the region. These commands 11154 should be written this way, so they do not require the user to 11155 separately mark an area and then activate it. Commands that modify 11156 regions do not have to worry about deactivating the region since 11157 modifying a buffer automatically deactivates the region. Commands 11158 that insert text often activate the region ephemerally; that is, the 11159 region is active for the immediately following command, allowing the 11160 user wants to delete the region inserted, fill it, or whatever. 11161 </p> 11162 <p xmlns="http://www.w3.org/1999/xhtml"> 11163 Once a marking command makes the region active, it remains active until: 11164 </p> 11165 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 11166 <ul class="itemizedlist" type="disc"> 11167 <li class="listitem"> 11168 <p> 11169 a command uses the region, 11170 </p> 11171 </li> 11172 <li class="listitem"> 11173 <p> 11174 a command modifies the buffer, 11175 </p> 11176 </li> 11177 <li class="listitem"> 11178 <p> 11179 a command changes the current window or buffer, 11180 </p> 11181 </li> 11182 <li class="listitem"> 11183 <p> 11184 a command signals an editor-error, 11185 </p> 11186 </li> 11187 <li class="listitem"> 11188 <p> 11189 or the user types C-g. 11190 </p> 11191 </li> 11192 </ul> 11193 </div> 11194 <p> 11195 <div class="refentrytitle"> 11196 <a id="hv_active_regions_enabled"></a> 11197 <strong>[Hemlock Variable]</strong> 11198 <br></br> 11199 <code> 11200 Active Regions Enabled (initial value t) 11201 </code> 11202 </div> 11203 <div class="refentrytitle"></div> 11204 </p> 11205 <p> 11206 <div> 11207 <div class="refsect1" lang="en" xml:lang="en"> 11208 <a xmlns="http://www.w3.org/1999/xhtml" id="id689690"></a> 11209 <div class="header">Description:</div> 11210 <p xmlns="http://www.w3.org/1999/xhtml"> 11211 When this variable is non-nil, some primitives signal an editor-error 11212 if the region is not active. This may be set to nil for more 11213 traditional Emacs region semantics. 11214 </p> 11215 </div> 11216 </div> 11217 </p> 11218 <p> 11219 <div class="refentrytitle"> 11220 <a id="v_ephemerally-active-command-types"></a> 11221 <strong>[Variable]</strong> 11222 <br></br> 11223 <code> 11224 *ephemerally-active-command-types* 11225 </code> 11226 </div> 11227 <div class="refentrytitle"></div> 11228 </p> 11229 <p> 11230 <div> 11231 <div class="refsect1" lang="en" xml:lang="en"> 11232 <a xmlns="http://www.w3.org/1999/xhtml" id="id689746"></a> 11233 <div class="header">Description:</div> 11234 <p xmlns="http://www.w3.org/1999/xhtml"> 11235 This is a list of command types (see section 7.3), and its initial 11236 value is the list of :ephemerally-active and :unkill. When the 11237 previous command's type is one of these, the current-region is active 11238 for the currently executing command only, regardless of whether it 11239 does something to deactivate the region. However, the current command 11240 may activate the region for future commands. :ephemerally-active is a 11241 default command type that may be used to ephemerally activate the 11242 region, and:unkill is the type used by two commands, Un-kill and 11243 Rotate Kill Ring (what users typically think of as C-y and M-y). 11244 </p> 11245 </div> 11246 </div> 11247 </p> 11248 <p> 11249 <div class="refentrytitle"> 11250 <a id="f_activate-region"></a> 11251 <strong>[Function]</strong> 11252 <br></br> 11253 <code> 11254 activate-region 11255 </code> 11256 </div> 11257 <div class="refentrytitle"></div> 11258 </p> 11259 <p> 11260 <div> 11261 <div class="refsect1" lang="en" xml:lang="en"> 11262 <a xmlns="http://www.w3.org/1999/xhtml" id="id689806"></a> 11263 <div class="header">Description:</div> 11264 <p xmlns="http://www.w3.org/1999/xhtml"> 11265 This makes the current-region active. 11266 </p> 11267 </div> 11268 </div> 11269 </p> 11270 <p> 11271 <div class="refentrytitle"> 11272 <a id="f_deactivate-region"></a> 11273 <strong>[Function]</strong> 11274 <br></br> 11275 <code> 11276 deactivate-region 11277 </code> 11278 </div> 11279 <div class="refentrytitle"></div> 11280 </p> 11281 <p> 11282 <div> 11283 <div class="refsect1" lang="en" xml:lang="en"> 11284 <a xmlns="http://www.w3.org/1999/xhtml" id="id689860"></a> 11285 <div class="header">Description:</div> 11286 <p xmlns="http://www.w3.org/1999/xhtml"> 11287 After invoking this the current-region is no longer active. 11288 </p> 11289 </div> 11290 </div> 11291 </p> 11292 <p> 11293 <div class="refentrytitle"> 11294 <a id="f_region-active-p"></a> 11295 <strong>[Function]</strong> 11296 <br></br> 11297 <code> 11298 region-active-p 11299 </code> 11300 </div> 11301 <div class="refentrytitle"></div> 11302 </p> 11303 <p> 11304 <div> 11305 <div class="refsect1" lang="en" xml:lang="en"> 11306 <a xmlns="http://www.w3.org/1999/xhtml" id="id689915"></a> 11307 <div class="header">Description:</div> 11308 <p xmlns="http://www.w3.org/1999/xhtml"> 11309 Returns whether the current-region is active, including 11310 ephemerally. This ignores Active Regions Enabled. 11311 </p> 11312 </div> 11313 </div> 11314 </p> 11315 <p> 11316 <div class="refentrytitle"> 11317 <a id="f_check-region-active"></a> 11318 <strong>[Function]</strong> 11319 <br></br> 11320 <code> 11321 check-region-active 11322 </code> 11323 </div> 11324 <div class="refentrytitle"></div> 11325 </p> 11326 <p> 11327 <div> 11328 <div class="refsect1" lang="en" xml:lang="en"> 11329 <a xmlns="http://www.w3.org/1999/xhtml" id="id689970"></a> 11330 <div class="header">Description:</div> 11331 <p xmlns="http://www.w3.org/1999/xhtml"> 11332 This signals an editor-error when active regions are enabled, and the 11333 current-region is not active. 11334 </p> 11335 </div> 11336 </div> 11337 </p> 11338 <p> 11339 <div class="refentrytitle"> 11340 <a id="f_current-region"></a> 11341 <strong>[Function]</strong> 11342 <br></br> 11343 <code> 11344 current-region <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> error-if-not-active deactivate-region 11345 </code> 11346 </div> 11347 <div class="refentrytitle"></div> 11348 </p> 11349 <p> 11350 <div> 11351 <div class="refsect1" lang="en" xml:lang="en"> 11352 <a xmlns="http://www.w3.org/1999/xhtml" id="id690029"></a> 11353 <div class="header">Description:</div> 11354 <p xmlns="http://www.w3.org/1999/xhtml"> 11355 This returns a region formed with current-mark and current-point, 11356 optionally signaling an editor-error if the current region is not 11357 active. Error-if-not-active defaults to t. Each call returns a 11358 distinct region object. Depending on deactivate-region (defaults to 11359 t), fetching the current region deactivates it. Hemlock primitives 11360 are free to modify text regardless of whether the region is active, so 11361 a command that checks for this can deactivate the region whenever it 11362 is convenient. 11363 </p> 11364 </div> 11365 </div> 11366 </p> 11367 </div> 11368 <div class="sect2" lang="en" xml:lang="en"> 11369 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 11370 <div> 11371 <div> 11372 <h3 class="title"><a id="SearchingAndReplacing"></a>6.4.5. Searching and Replacing</h3> 11373 </div> 11374 </div> 11375 </div> 11376 <p xmlns="http://www.w3.org/1999/xhtml"> 11377 Before using any of these functions to do a character search, look at 11378 character attributes (page 37). They provide a facility similar to 11379 the syntax table in real Emacs. Syntax tables are a powerful, 11380 general, and efficient mechanism for assigning meanings to characters 11381 in various modes. 11382 </p> 11383 <p> 11384 <div class="refentrytitle"> 11385 <a id="f_new-search-pattern"></a> 11386 <strong>[Function]</strong> 11387 <br></br> 11388 <code> 11389 new-search-pattern kind direction pattern <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> result-search-pattern 11390 </code> 11391 </div> 11392 <div class="refentrytitle"></div> 11393 </p> 11394 <p> 11395 <div> 11396 <div class="refsect1" lang="en" xml:lang="en"> 11397 <a xmlns="http://www.w3.org/1999/xhtml" id="id690108"></a> 11398 <div class="header">Description:</div> 11399 <p xmlns="http://www.w3.org/1999/xhtml"> 11400 Returns a search-pattern object which can be given to the find-pattern 11401 and replace-pattern functions. A search-pattern is a specification of 11402 a particular sort of search to do. direction is either :forward or 11403 :backward, indicating the direction to search in. kind specifies the 11404 kind of search pattern to make, and pattern is a thing which specifies 11405 what to search for. The interpretation of pattern depends on the kind 11406 of pattern being made. Currently defined kinds of search pattern are: 11407 </p> 11408 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:string-insensitive</span></i>--- 11409 Does a case-insensitive string search for pattern 11410 </p> 11411 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:string-sensitive</span></i>--- 11412 Does a case-sensitive string search for pattern. 11413 </p> 11414 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:character</span></i>--- 11415 Finds an occurrence of the character pattern. This is case sensitive. 11416 </p> 11417 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:not-character</span></i>--- 11418 Find a character which is not the character pattern. 11419 </p> 11420 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:test</span></i>--- 11421 Finds a character which satisfies the function pattern. This function may not be applied an any particular fashion, so it should depend only on what its argument is, and should have no side-effects. 11422 </p> 11423 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:test-not</span></i>--- 11424 Similar to :test, except it finds a character that fails the test. 11425 </p> 11426 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:any</span></i>--- 11427 Finds a character that is in the string pattern. 11428 </p> 11429 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:not-any</span></i>--- 11430 Finds a character that is not in the string pattern. 11431 </p> 11432 <p xmlns="http://www.w3.org/1999/xhtml"> 11433 result-search-pattern, if supplied, is a search-pattern to 11434 destructively modify to produce the new pattern. Where reasonable 11435 this should be supplied, since some kinds of search patterns may 11436 involve large data structures. 11437 </p> 11438 </div> 11439 </div> 11440 </p> 11441 <p> 11442 <div class="refentrytitle"> 11443 <a id="f_search-pattern-p"></a> 11444 <strong>[Function]</strong> 11445 <br></br> 11446 <code> 11447 search-pattern-p search-pattern 11448 </code> 11449 </div> 11450 <div class="refentrytitle"></div> 11451 </p> 11452 <p> 11453 <div> 11454 <div class="refsect1" lang="en" xml:lang="en"> 11455 <a xmlns="http://www.w3.org/1999/xhtml" id="id690308"></a> 11456 <div class="header">Description:</div> 11457 <p xmlns="http://www.w3.org/1999/xhtml"> 11458 Returns t if search-pattern is a search-pattern object, otherwise nil. 11459 </p> 11460 </div> 11461 </div> 11462 </p> 11463 <p> 11464 <div class="refentrytitle"> 11465 <a id="f_get-search-pattern"></a> 11466 <strong>[Function]</strong> 11467 <br></br> 11468 <code> 11469 get-search-pattern string direction 11470 </code> 11471 </div> 11472 <div class="refentrytitle"></div> 11473 </p> 11474 <p> 11475 <div> 11476 <div class="refsect1" lang="en" xml:lang="en"> 11477 <a xmlns="http://www.w3.org/1999/xhtml" id="id690363"></a> 11478 <div class="header">Description:</div> 11479 <p xmlns="http://www.w3.org/1999/xhtml"> 11480 get-search-pattern interfaces to a default search string and pattern 11481 that search and replacing commands can use. These commands then share 11482 a default when prompting for what to search or replace, and save on 11483 consing a search pattern each time they execute. This uses Default 11484 Search Kind (see the Hemlock User's Manual) when updating the pattern 11485 object. 11486 </p> 11487 </div> 11488 </div> 11489 </p> 11490 <p> 11491 <div class="refentrytitle"> 11492 <a id="v_last-search-string"></a> 11493 <strong>[Variable]</strong> 11494 <br></br> 11495 <code> 11496 *last-search-string* 11497 </code> 11498 </div> 11499 <div class="refentrytitle"></div> 11500 </p> 11501 <p> 11502 <div> 11503 <div class="refsect1" lang="en" xml:lang="en"> 11504 <a xmlns="http://www.w3.org/1999/xhtml" id="id690420"></a> 11505 <div class="header">Description:</div> 11506 <p xmlns="http://www.w3.org/1999/xhtml"> 11507 Returns the last string searched for, useful when prompting. 11508 </p> 11509 </div> 11510 </div> 11511 </p> 11512 <p> 11513 <div class="refentrytitle"> 11514 <a id="f_find-pattern"></a> 11515 <strong>[Function]</strong> 11516 <br></br> 11517 <code> 11518 find-pattern mark search-pattern 11519 </code> 11520 </div> 11521 <div class="refentrytitle"></div> 11522 </p> 11523 <p> 11524 <div> 11525 <div class="refsect1" lang="en" xml:lang="en"> 11526 <a xmlns="http://www.w3.org/1999/xhtml" id="id690475"></a> 11527 <div class="header">Description:</div> 11528 <p xmlns="http://www.w3.org/1999/xhtml"> 11529 Find the next match of search-pattern starting at mark. If a match is 11530 found then mark is altered to point before the matched text and the 11531 number of characters matched is returned. If no match is found then 11532 nil is returned and mark is not modified. 11533 </p> 11534 </div> 11535 </div> 11536 </p> 11537 <p> 11538 <div class="refentrytitle"> 11539 <a id="f_replace-pattern"></a> 11540 <strong>[Function]</strong> 11541 <br></br> 11542 <code> 11543 replace-pattern mark search-pattern replacement <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> n 11544 </code> 11545 </div> 11546 <div class="refentrytitle"></div> 11547 </p> 11548 <p> 11549 <div> 11550 <div class="refsect1" lang="en" xml:lang="en"> 11551 <a xmlns="http://www.w3.org/1999/xhtml" id="id690535"></a> 11552 <div class="header">Description:</div> 11553 <p xmlns="http://www.w3.org/1999/xhtml"> 11554 Replace n matches of search-pattern with the string replacement 11555 starting at mark. If n is nil (the default) then replace all matches. 11556 A mark pointing before the last replacement done is returned. 11557 </p> 11558 </div> 11559 </div> 11560 </p> 11561 </div> 11562 </div> 11563 <div class="sect1" lang="en" xml:lang="en"> 11564 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 11565 <div> 11566 <div> 11567 <h2 class="title" style="clear: both"><a id="HemlockProgrammingTheCurrentEnvironment"></a>6.5. The Current Environment</h2> 11568 </div> 11569 </div> 11570 </div> 11571 <div class="sect2" lang="en" xml:lang="en"> 11572 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 11573 <div> 11574 <div> 11575 <h3 class="title"><a id="DifferentScopes"></a>6.5.1. Different Scopes</h3> 11576 </div> 11577 </div> 11578 </div> 11579 <p xmlns="http://www.w3.org/1999/xhtml"> 11580 In Hemlock the "current" values of <a class="ulink" href="HemlockProgrammer/HemlockVariables" target="_top">variables</a>, 11581 <a class="ulink" href="HemlockProgrammer/Commands" target="_top">key bindings</a> and 11582 <a class="ulink" href="HemlockProgrammer/CharacterAttributes" target="_top">character-attributes</a> 11583 depend on the <a class="ulink" href="HemlockProgrammer/Buffers#CurrentBuffer" target="_top">current buffer</a> 11584 and the modes active in it. There are three possible scopes for 11585 Hemlock values: 11586 </p> 11587 <div xmlns="http://www.w3.org/1999/xhtml" class="variablelist"> 11588 <dl> 11589 <dt> 11590 <span class="term">buffer local</span> 11591 </dt> 11592 <dd> 11593 <p> 11594 The value is present only if the buffer it is local to is the current buffer. 11595 </p> 11596 </dd> 11597 <dt> 11598 <span class="term">mode local</span> 11599 </dt> 11600 <dd> 11601 <p> 11602 The value is present only when the mode it is local to is active in the current buffer. 11603 </p> 11604 </dd> 11605 <dt> 11606 <span class="term">global</span> 11607 </dt> 11608 <dd> 11609 <p> 11610 The value is always present unless shadowed by a buffer or mode local value. 11611 </p> 11612 </dd> 11613 </dl> 11614 </div> 11615 </div> 11616 <div class="sect2" lang="en" xml:lang="en"> 11617 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 11618 <div> 11619 <div> 11620 <h3 class="title"><a id="Shadowing"></a>6.5.2. Shadowing</h3> 11621 </div> 11622 </div> 11623 </div> 11624 <p xmlns="http://www.w3.org/1999/xhtml"> 11625 It is possible that there are different values for the same thing in 11626 in different scopes. For example, there be might a global binding for a given 11627 variable and also a local binding in the current buffer. Whenever there is a 11628 conflict, shadowing occurs, permitting only one of the values to be visible in 11629 the current environment. 11630 </p> 11631 <p xmlns="http://www.w3.org/1999/xhtml"> 11632 The process of resolving such a conflict can be described as a search 11633 down a list of places where the value might be defined, returning the 11634 first value found. The order for the search is as follows: 11635 </p> 11636 <div xmlns="http://www.w3.org/1999/xhtml" class="orderedlist"> 11637 <ol class="orderedlist" type="1"> 11638 <li class="listitem"> 11639 <p> 11640 Local values in the current buffer. 11641 </p> 11642 </li> 11643 <li class="listitem"> 11644 <p> 11645 Mode local values in the minor modes of the current buffer, in order from the highest precedence mode to the lowest precedence mode. The order of minor modes with equal precedences is undefined. 11646 </p> 11647 </li> 11648 <li class="listitem"> 11649 <p> 11650 Mode local values in the current buffer's major mode. 11651 </p> 11652 </li> 11653 <li class="listitem"> 11654 <p> 11655 Global values. 11656 </p> 11657 </li> 11658 </ol> 11659 </div> 11660 </div> 11661 </div> 11662 <div class="sect1" lang="en" xml:lang="en"> 11663 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 11664 <div> 11665 <div> 11666 <h2 class="title" style="clear: both"><a id="HemlockProgrammingHemlockVariables"></a>6.6. Hemlock Variables</h2> 11667 </div> 11668 </div> 11669 </div> 11670 <p xmlns="http://www.w3.org/1999/xhtml"> 11671 Hemlock implements a system of variables separate from normal Lisp 11672 variables for the following reasons: 11673 </p> 11674 <div xmlns="http://www.w3.org/1999/xhtml" class="orderedlist"> 11675 <ol class="orderedlist" type="1"> 11676 <li class="listitem"> 11677 <p> 11678 Hemlock has different scoping rules which are useful in an editor. Hemlock variables can be local to a buffer (page 9) or a mode (page 35). 11679 </p> 11680 </li> 11681 <li class="listitem"> 11682 <p> 11683 Hemlock variables have hooks (page 25), lists of functions called when someone sets the variable. See variable-value for the arguments Hemlock passes to these hook functions. 11684 </p> 11685 </li> 11686 <li class="listitem"> 11687 <p> 11688 There is a database of variable names and documentation which makes it easier to find out what variables exist and what their values mean. 11689 </p> 11690 </li> 11691 </ol> 11692 </div> 11693 <div class="sect2" lang="en" xml:lang="en"> 11694 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 11695 <div> 11696 <div> 11697 <h3 class="title"><a id="VariableNames"></a>6.6.1. Variable Names</h3> 11698 </div> 11699 </div> 11700 </div> 11701 <p xmlns="http://www.w3.org/1999/xhtml"> 11702 To the user, a variable name is a case insensitive string. This 11703 string is referred to as the string name of the variable. A string 11704 name is conventionally composed of words separated by spaces. 11705 </p> 11706 <p xmlns="http://www.w3.org/1999/xhtml"> 11707 In Lisp code a variable name is a symbol. The name of this symbol is 11708 created by replacing any spaces in the string name with hyphens. This 11709 symbol name is always interned in the Hemlock package. 11710 </p> 11711 <p> 11712 <div class="refentrytitle"> 11713 <a id="v_global-variable-names"></a> 11714 <strong>[Variable]</strong> 11715 <br></br> 11716 <code> 11717 *global-variable-names* 11718 </code> 11719 </div> 11720 <div class="refentrytitle"></div> 11721 </p> 11722 <p> 11723 <div> 11724 <div class="refsect1" lang="en" xml:lang="en"> 11725 <a xmlns="http://www.w3.org/1999/xhtml" id="id690829"></a> 11726 <div class="header">Description:</div> 11727 <p xmlns="http://www.w3.org/1999/xhtml"> 11728 This variable holds a string-table of the names of all the global 11729 Hemlock variables. The value of each entry is the symbol name of the 11730 variable. 11731 </p> 11732 </div> 11733 </div> 11734 </p> 11735 <p> 11736 <div class="refentrytitle"> 11737 <a id="f_current-variable-tables"></a> 11738 <strong>[Function]</strong> 11739 <br></br> 11740 <code> 11741 current-variable-tables 11742 </code> 11743 </div> 11744 <div class="refentrytitle"></div> 11745 </p> 11746 <p> 11747 <div> 11748 <div class="refsect1" lang="en" xml:lang="en"> 11749 <a xmlns="http://www.w3.org/1999/xhtml" id="id690884"></a> 11750 <div class="header">Description:</div> 11751 <p xmlns="http://www.w3.org/1999/xhtml"> 11752 This function returns a list of variable tables currently established, 11753 globally, in the current buffer, and by the modes of the 11754 current-buffer. This list is suitable for use with 11755 prompt-for-variable. 11756 </p> 11757 </div> 11758 </div> 11759 </p> 11760 </div> 11761 <div class="sect2" lang="en" xml:lang="en"> 11762 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 11763 <div> 11764 <div> 11765 <h3 class="title"><a id="VariableFunctions"></a>6.6.2. Variable Functions</h3> 11766 </div> 11767 </div> 11768 </div> 11769 <p xmlns="http://www.w3.org/1999/xhtml"> 11770 In the following descriptions name is the symbol name of the variable. 11771 </p> 11772 <p> 11773 <div class="refentrytitle"> 11774 <a id="f_defhvar"></a> 11775 <strong>[Function]</strong> 11776 <br></br> 11777 <code> 11778 defhvar string-name documentation <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> :mode :buffer :hooks :value 11779 </code> 11780 </div> 11781 <div class="refentrytitle"></div> 11782 </p> 11783 <p> 11784 <div> 11785 <div class="refsect1" lang="en" xml:lang="en"> 11786 <a xmlns="http://www.w3.org/1999/xhtml" id="id690959"></a> 11787 <div class="header">Description:</div> 11788 <p xmlns="http://www.w3.org/1999/xhtml"> 11789 This function defines a Hemlock variable. Functions that take a 11790 variable name signal an error when the variable is undefined. 11791 </p> 11792 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">string-name</span></i>--- 11793 The string name of the variable to define. 11794 </p> 11795 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">documentation</span></i>--- 11796 The documentation string for the variable. 11797 </p> 11798 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:mode, :buffer</span></i>--- 11799 If buffer is supplied, the variable is local to that buffer. If mode is supplied, it is local to that mode. If neither is supplied, it is global. 11800 </p> 11801 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:value</span></i>--- 11802 This is the initial value for the variable, which defaults to nil. 11803 </p> 11804 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:hooks</span></i>--- 11805 This is the initial list of functions to call when someone sets the variable's value. These functions execute before Hemlock establishes the new value. See variable-value for the arguments passed to the hook functions. 11806 </p> 11807 <p xmlns="http://www.w3.org/1999/xhtml"> 11808 If a variable with the same name already exists in the same place, 11809 then defhvar sets its hooks and value from hooks and value if the user 11810 supplies these keywords. 11811 </p> 11812 </div> 11813 </div> 11814 </p> 11815 <p> 11816 <div class="refentrytitle"> 11817 <a id="f_variable-value"></a> 11818 <strong>[Function]</strong> 11819 <br></br> 11820 <code> 11821 variable-value name <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> kind where 11822 </code> 11823 </div> 11824 <div class="refentrytitle"></div> 11825 </p> 11826 <p> 11827 <div> 11828 <div class="refsect1" lang="en" xml:lang="en"> 11829 <a xmlns="http://www.w3.org/1999/xhtml" id="id691110"></a> 11830 <div class="header">Description:</div> 11831 <p xmlns="http://www.w3.org/1999/xhtml"> 11832 This function returns the value of a Hemlock variable in some place. The following values for kind are defined: 11833 </p> 11834 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:current</span></i>--- 11835 Return the value present in the current environment, taking into consideration any mode or buffer local variables. This is the default. 11836 </p> 11837 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:global</span></i>--- 11838 Return the global value. 11839 </p> 11840 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:mode</span></i>--- 11841 Return the value in the mode named where. 11842 </p> 11843 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:buffer</span></i>--- 11844 Return the value in the buffer where. 11845 </p> 11846 <p xmlns="http://www.w3.org/1999/xhtml"> 11847 When set with setf, Hemlock sets the value of the specified variable 11848 and invokes the functions in its hook list with name, kind, where, and 11849 the new value. 11850 </p> 11851 </div> 11852 </div> 11853 </p> 11854 <p> 11855 <div class="refentrytitle"> 11856 <a id="f_variable-documentation"></a> 11857 <strong>[Function]</strong> 11858 <br></br> 11859 <code> 11860 variable-documentation name <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> kind where 11861 </code> 11862 </div> 11863 <div class="refentrytitle"></div> 11864 </p> 11865 <p> 11866 <div> 11867 <div class="refsect1" lang="en" xml:lang="en"> 11868 <a xmlns="http://www.w3.org/1999/xhtml" id="id691244"></a> 11869 <div class="header">Description:</div> 11870 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 11871 </div> 11872 </div> 11873 </p> 11874 <p> 11875 <div class="refentrytitle"> 11876 <a id="f_variable-hooks"></a> 11877 <strong>[Function]</strong> 11878 <br></br> 11879 <code> 11880 variable-hooks name <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> kind where 11881 </code> 11882 </div> 11883 <div class="refentrytitle"></div> 11884 </p> 11885 <p> 11886 <div> 11887 <div class="refsect1" lang="en" xml:lang="en"> 11888 <a xmlns="http://www.w3.org/1999/xhtml" id="id691302"></a> 11889 <div class="header">Description:</div> 11890 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 11891 </div> 11892 </div> 11893 </p> 11894 <p> 11895 <div class="refentrytitle"> 11896 <a id="f_variable-name"></a> 11897 <strong>[Function]</strong> 11898 <br></br> 11899 <code> 11900 variable-name name <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> kind where 11901 </code> 11902 </div> 11903 <div class="refentrytitle"></div> 11904 </p> 11905 <p> 11906 <div> 11907 <div class="refsect1" lang="en" xml:lang="en"> 11908 <a xmlns="http://www.w3.org/1999/xhtml" id="id691360"></a> 11909 <div class="header">Description:</div> 11910 <p xmlns="http://www.w3.org/1999/xhtml"> 11911 These function return the documentation, hooks and string name of a 11912 Hemlock variable. The kind and where arguments are the same as for 11913 variable-value. The documentation and hook list may be set using setf. 11914 </p> 11915 </div> 11916 </div> 11917 </p> 11918 <p> 11919 <div class="refentrytitle"> 11920 <a id="f_string-to-variable"></a> 11921 <strong>[Function]</strong> 11922 <br></br> 11923 <code> 11924 string-to-variable string 11925 </code> 11926 </div> 11927 <div class="refentrytitle"></div> 11928 </p> 11929 <p> 11930 <div> 11931 <div class="refsect1" lang="en" xml:lang="en"> 11932 <a xmlns="http://www.w3.org/1999/xhtml" id="id691416"></a> 11933 <div class="header">Description:</div> 11934 <p xmlns="http://www.w3.org/1999/xhtml"> 11935 This function converts a string into the corresponding variable symbol 11936 name. String need not be the name of an actual Hemlock variable. 11937 </p> 11938 </div> 11939 </div> 11940 </p> 11941 <p> 11942 <div class="refentrytitle"> 11943 <a id="m_value"></a> 11944 <strong>[Macro]</strong> 11945 <br></br> 11946 <code> 11947 value name 11948 </code> 11949 </div> 11950 <div class="refentrytitle"></div> 11951 </p> 11952 <p> 11953 <div> 11954 <div class="refsect1" lang="en" xml:lang="en"> 11955 <a xmlns="http://www.w3.org/1999/xhtml" id="id691471"></a> 11956 <div class="header">Description:</div> 11957 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 11958 </div> 11959 </div> 11960 </p> 11961 <p> 11962 <div class="refentrytitle"> 11963 <a id="m_setv"></a> 11964 <strong>[Macro]</strong> 11965 <br></br> 11966 <code> 11967 setv name new-value 11968 </code> 11969 </div> 11970 <div class="refentrytitle"></div> 11971 </p> 11972 <p> 11973 <div> 11974 <div class="refsect1" lang="en" xml:lang="en"> 11975 <a xmlns="http://www.w3.org/1999/xhtml" id="id691525"></a> 11976 <div class="header">Description:</div> 11977 <p xmlns="http://www.w3.org/1999/xhtml"> 11978 These macros get and set the current value of the Hemlock variable 11979 name. Name is not evaluated. There is a setf form for <code class="code">value</code>. 11980 </p> 11981 </div> 11982 </div> 11983 </p> 11984 <p> 11985 <div class="refentrytitle"> 11986 <a id="m_hlet"></a> 11987 <strong>[Macro]</strong> 11988 <br></br> 11989 <code> 11990 hlet ({(var value)}*){form}* 11991 </code> 11992 </div> 11993 <div class="refentrytitle"></div> 11994 </p> 11995 <p> 11996 <div> 11997 <div class="refsect1" lang="en" xml:lang="en"> 11998 <a xmlns="http://www.w3.org/1999/xhtml" id="id691584"></a> 11999 <div class="header">Description:</div> 12000 <p xmlns="http://www.w3.org/1999/xhtml"> 12001 This macro is very similar to let in effect; within its scope each of 12002 the Hemlock variables var have the respective values, but after the 12003 scope is exited by any means the binding is removed. This does not 12004 cause any hooks to be invoked. The value of the last form is 12005 returned. 12006 </p> 12007 </div> 12008 </div> 12009 </p> 12010 <p> 12011 <div class="refentrytitle"> 12012 <a id="f_hemlock-bound-p"></a> 12013 <strong>[Function]</strong> 12014 <br></br> 12015 <code> 12016 hemlock-bound-p name <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> kind where 12017 </code> 12018 </div> 12019 <div class="refentrytitle"></div> 12020 </p> 12021 <p> 12022 <div> 12023 <div class="refsect1" lang="en" xml:lang="en"> 12024 <a xmlns="http://www.w3.org/1999/xhtml" id="id691644"></a> 12025 <div class="header">Description:</div> 12026 <p xmlns="http://www.w3.org/1999/xhtml"> 12027 Returns t if name is defined as a Hemlock variable in the place 12028 specified by kind and where, or nil otherwise. 12029 </p> 12030 </div> 12031 </div> 12032 </p> 12033 <p> 12034 <div class="refentrytitle"> 12035 <a id="f_delete-variable"></a> 12036 <strong>[Function]</strong> 12037 <br></br> 12038 <code> 12039 delete-variable name <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> kind where 12040 </code> 12041 </div> 12042 <div class="refentrytitle"></div> 12043 </p> 12044 <p> 12045 <div> 12046 <div class="refsect1" lang="en" xml:lang="en"> 12047 <a xmlns="http://www.w3.org/1999/xhtml" id="id691703"></a> 12048 <div class="header">Description:</div> 12049 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 12050 </div> 12051 </div> 12052 </p> 12053 <p> 12054 <div class="refentrytitle"> 12055 <a id="hv_delete_variable_hook"></a> 12056 <strong>[Hemlock Variable]</strong> 12057 <br></br> 12058 <code> 12059 Delete Variable Hook 12060 </code> 12061 </div> 12062 <div class="refentrytitle"></div> 12063 </p> 12064 <p> 12065 <div> 12066 <div class="refsect1" lang="en" xml:lang="en"> 12067 <a xmlns="http://www.w3.org/1999/xhtml" id="id691757"></a> 12068 <div class="header">Description:</div> 12069 <p xmlns="http://www.w3.org/1999/xhtml"> 12070 delete-variable makes the Hemlock variable name no longer defined in 12071 the specified place. Kind and where have the same meanings as they do 12072 for variable-value, except that :current is not available, and the 12073 default for kind is :global 12074 </p> 12075 <p xmlns="http://www.w3.org/1999/xhtml"> 12076 An error will be signaled if no such variable exists. The hook, 12077 Delete Variable Hook is invoked with the same arguments before the 12078 variable is deleted. 12079 </p> 12080 </div> 12081 </div> 12082 </p> 12083 </div> 12084 <div class="sect2" lang="en" xml:lang="en"> 12085 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 12086 <div> 12087 <div> 12088 <h3 class="title"><a id="Hooks"></a>6.6.3. Hooks</h3> 12089 </div> 12090 </div> 12091 </div> 12092 <p xmlns="http://www.w3.org/1999/xhtml"> 12093 Hemlock actions such as setting variables, changing buffers, changing 12094 windows, turning modes on and off, etc., often have hooks associated 12095 with them. A hook is a list of functions called before the system 12096 performs the action. The manual describes the object specific hooks 12097 with the rest of the operations defined on these objects. 12098 </p> 12099 <p xmlns="http://www.w3.org/1999/xhtml"> 12100 Often hooks are stored in Hemlock variables, Delete Buffer Hook and 12101 Set Window Hook for example. This leads to a minor point of confusion 12102 because these variables have hooks that the system executes when 12103 someone changes their values. These hook functions Hemlock invokes 12104 when someone sets a variable are an example of a hook stored in an 12105 object instead of a Hemlock variable. These are all hooks for editor 12106 activity, but Hemlock keeps them in different kinds of locations. 12107 This is why some of the routines in this section have a special 12108 interpretation of the hook place argument. 12109 </p> 12110 <p> 12111 <div class="refentrytitle"> 12112 <a id="m_add-hook"></a> 12113 <strong>[Macro]</strong> 12114 <br></br> 12115 <code> 12116 add-hook place hook-fun 12117 </code> 12118 </div> 12119 <div class="refentrytitle"></div> 12120 </p> 12121 <p> 12122 <div> 12123 <div class="refsect1" lang="en" xml:lang="en"> 12124 <a xmlns="http://www.w3.org/1999/xhtml" id="id691844"></a> 12125 <div class="header">Description:</div> 12126 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 12127 </div> 12128 </div> 12129 </p> 12130 <p> 12131 <div class="refentrytitle"> 12132 <a id="m_remove-hook"></a> 12133 <strong>[Macro]</strong> 12134 <br></br> 12135 <code> 12136 remove-hook place hook-fun 12137 </code> 12138 </div> 12139 <div class="refentrytitle"></div> 12140 </p> 12141 <p> 12142 <div> 12143 <div class="refsect1" lang="en" xml:lang="en"> 12144 <a xmlns="http://www.w3.org/1999/xhtml" id="id691898"></a> 12145 <div class="header">Description:</div> 12146 <p xmlns="http://www.w3.org/1999/xhtml"> 12147 These macros add or remove a hook function in some place. If hook-fun 12148 already exists in place, this call has no effect. If place is a 12149 symbol, then it is a Hemlock variable; otherwise, it is a generalized 12150 variable or storage location. Here are two examples: 12151 </p> 12152 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> 12153 12154 (add-hook delete-buffer-hook 'remove-buffer-from-menu) 12155 (add-hook (variable-hooks 'check-mail-interval) 12156 'reschedule-mail-check) 12157 12158 </pre> 12159 </div> 12160 </div> 12161 </p> 12162 <p> 12163 <div class="refentrytitle"> 12164 <a id="m_invoke-hook"></a> 12165 <strong>[Macro]</strong> 12166 <br></br> 12167 <code> 12168 invoke-hook place <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&rest</em> args 12169 </code> 12170 </div> 12171 <div class="refentrytitle"></div> 12172 </p> 12173 <p> 12174 <div> 12175 <div class="refsect1" lang="en" xml:lang="en"> 12176 <a xmlns="http://www.w3.org/1999/xhtml" id="id691964"></a> 12177 <div class="header">Description:</div> 12178 <p xmlns="http://www.w3.org/1999/xhtml"> 12179 This macro calls all the functions in place. If place is a symbol, 12180 then it is a Hemlock variable; otherwise, it is a generalized 12181 variable. 12182 </p> 12183 </div> 12184 </div> 12185 </p> 12186 </div> 12187 </div> 12188 <div class="sect1" lang="en" xml:lang="en"> 12189 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 12190 <div> 12191 <div> 12192 <h2 class="title" style="clear: both"><a id="HemlockProgrammingCommands"></a>6.7. Commands</h2> 12193 </div> 12194 </div> 12195 </div> 12196 <div class="sect2" lang="en" xml:lang="en"> 12197 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 12198 <div> 12199 <div> 12200 <h3 class="title"><a id="HemlockProgrammingCommandsIntroduction"></a>6.7.1. Introduction</h3> 12201 </div> 12202 </div> 12203 </div> 12204 <p xmlns="http://www.w3.org/1999/xhtml"> 12205 The way that the user tells Hemlock to do something is by invoking a 12206 command. Commands have three attributes: 12207 </p> 12208 <div xmlns="http://www.w3.org/1999/xhtml" class="variablelist"> 12209 <dl> 12210 <dt> 12211 <span class="term">name</span> 12212 </dt> 12213 <dd> 12214 <p> 12215 A command's name provides a way to refer to it. Command names are 12216 usually capitalized words separated by spaces, such as Forward Word. 12217 </p> 12218 </dd> 12219 <dt> 12220 <span class="term">documentation</span> 12221 </dt> 12222 <dd> 12223 <p> 12224 The documentation for a command is used by on-line help facilities. 12225 </p> 12226 </dd> 12227 <dt> 12228 <span class="term">function</span> 12229 </dt> 12230 <dd> 12231 <p> 12232 A command is implemented by a Lisp function, which is callable from Lisp. 12233 </p> 12234 </dd> 12235 </dl> 12236 </div> 12237 <p> 12238 <div class="refentrytitle"> 12239 <a id="v_command-names"></a> 12240 <strong>[Variable]</strong> 12241 <br></br> 12242 <code> 12243 *command-names* 12244 </code> 12245 </div> 12246 <div class="refentrytitle"></div> 12247 </p> 12248 <p> 12249 <div> 12250 <div class="refsect1" lang="en" xml:lang="en"> 12251 <a xmlns="http://www.w3.org/1999/xhtml" id="id692098"></a> 12252 <div class="header">Description:</div> 12253 <p xmlns="http://www.w3.org/1999/xhtml"> 12254 Holds a string-table (page 69) associating command names to command 12255 objects. Whenever a new command is defined it is entered in this 12256 table. 12257 </p> 12258 </div> 12259 </div> 12260 </p> 12261 </div> 12262 <div class="sect2" lang="en" xml:lang="en"> 12263 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 12264 <div> 12265 <div> 12266 <h3 class="title"><a id="CommandInterpreter"></a>6.7.2. The Command Interpreter</h3> 12267 </div> 12268 </div> 12269 </div> 12270 <p xmlns="http://www.w3.org/1999/xhtml"> 12271 The command interpreter is the functionality invoked by the event 12272 handler to process key-events from the keyboard and dispatch to 12273 different commands on the basis of what the user types. When the 12274 command interpreter executes a command, we say it invokes the command. The 12275 command interpreter also provides facilities for communication between 12276 contiguously running commands, such as a last command type register. 12277 It also takes care of resetting communication mechanisms, clearing the 12278 echo area, displaying partial keys typed slowly by the user, etc. 12279 </p> 12280 <p> 12281 <div class="refentrytitle"> 12282 <a id="hv_command_abort_hook"></a> 12283 <strong>[Hemlock Variable]</strong> 12284 <br></br> 12285 <code> 12286 Command Abort Hook 12287 </code> 12288 </div> 12289 <div class="refentrytitle"></div> 12290 </p> 12291 <p> 12292 <div> 12293 <div class="refsect1" lang="en" xml:lang="en"> 12294 <a xmlns="http://www.w3.org/1999/xhtml" id="id692582"></a> 12295 <div class="header">Description:</div> 12296 <p xmlns="http://www.w3.org/1999/xhtml"> 12297 The command interpreter invokes the function in this variable whenever 12298 someone aborts a command (for example, if someone called 12299 editor-error). 12300 </p> 12301 </div> 12302 </div> 12303 </p> 12304 </div> 12305 <div class="sect2" lang="en" xml:lang="en"> 12306 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 12307 <div> 12308 <div> 12309 <h3 class="title"><a id="CommandTypes"></a>6.7.3. Command Types</h3> 12310 </div> 12311 </div> 12312 </div> 12313 <p xmlns="http://www.w3.org/1999/xhtml"> 12314 In many editors the behavior of a command depends on the kind of 12315 command invoked before it. Hemlock provides a mechanism to support 12316 this known as <code class="code">command type</code>. 12317 </p> 12318 <p> 12319 <div class="refentrytitle"> 12320 <a id="f_last-command-type"></a> 12321 <strong>[Function]</strong> 12322 <br></br> 12323 <code> 12324 last-command-type 12325 </code> 12326 </div> 12327 <div class="refentrytitle"></div> 12328 </p> 12329 <p> 12330 <div> 12331 <div class="refsect1" lang="en" xml:lang="en"> 12332 <a xmlns="http://www.w3.org/1999/xhtml" id="id693322"></a> 12333 <div class="header">Description:</div> 12334 <p xmlns="http://www.w3.org/1999/xhtml"> 12335 This returns the command type of the last command invoked. If this is 12336 set with setf, the supplied value becomes the value of 12337 last-command-type until the next command completes. If the previous 12338 command did not set last-command-type, then its value is nil. Normally 12339 a command type is a keyword. The command type is not cleared after a 12340 command is invoked due to a transparent key binding. 12341 </p> 12342 </div> 12343 </div> 12344 </p> 12345 </div> 12346 <div class="sect2" lang="en" xml:lang="en"> 12347 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 12348 <div> 12349 <div> 12350 <h3 class="title"><a id="CommandArguments"></a>6.7.4. Command Arguments</h3> 12351 </div> 12352 </div> 12353 </div> 12354 <p xmlns="http://www.w3.org/1999/xhtml"> 12355 There are three ways in which a command may be invoked: It may be 12356 bound to a key which has been typed, it may be invoked as an extended 12357 command, or it may be called as a Lisp function. Ideally commands 12358 should be written in such a way that they will behave sensibly no 12359 matter which way they are invoked. The functions which implement 12360 commands must obey certain conventions about argument passing if the 12361 command is to function properly. 12362 </p> 12363 <div class="sect3" lang="en" xml:lang="en"> 12364 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 12365 <div> 12366 <div> 12367 <h4 class="title"><a id="PrefixArgument"></a>6.7.4.1. The Prefix Argument</h4> 12368 </div> 12369 </div> 12370 </div> 12371 <p xmlns="http://www.w3.org/1999/xhtml"> 12372 Whenever a command is invoked it is passed as its first argument what 12373 is known as the prefix argument. The prefix argument is always either 12374 an integer or nil. When a command uses this value it is usually as a 12375 repeat count, or some conceptually similar function. 12376 </p> 12377 <p> 12378 <div class="refentrytitle"> 12379 <a id="f_prefix-argument"></a> 12380 <strong>[Function]</strong> 12381 <br></br> 12382 <code> 12383 prefix-argument 12384 </code> 12385 </div> 12386 <div class="refentrytitle"></div> 12387 </p> 12388 <p> 12389 <div> 12390 <div class="refsect1" lang="en" xml:lang="en"> 12391 <a xmlns="http://www.w3.org/1999/xhtml" id="id693414"></a> 12392 <div class="header">Description:</div> 12393 <p xmlns="http://www.w3.org/1999/xhtml"> 12394 This function returns the current value of the prefix argument. When 12395 set with setf, the new value becomes the prefix argument for the next 12396 command. If the prefix argument is not set by the previous command 12397 then the prefix argument for a command is nil. The prefix argument is 12398 not cleared after a command is invoked due to a transparent key 12399 binding. 12400 </p> 12401 </div> 12402 </div> 12403 </p> 12404 </div> 12405 <div class="sect3" lang="en" xml:lang="en"> 12406 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 12407 <div> 12408 <div> 12409 <h4 class="title"><a id="LispArguments"></a>6.7.4.2. Lisp Arguments</h4> 12410 </div> 12411 </div> 12412 </div> 12413 <p xmlns="http://www.w3.org/1999/xhtml"> 12414 It is often desirable to call commands from Lisp code, in which case 12415 arguments which would otherwise be prompted for are passed as optional 12416 arguments following the prefix argument. A command should prompt for 12417 any arguments not supplied. 12418 </p> 12419 </div> 12420 </div> 12421 </div> 12422 <div class="sect1" lang="en" xml:lang="en"> 12423 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 12424 <div> 12425 <div> 12426 <h2 class="title" style="clear: both"><a id="HemlockProgrammingModes"></a>6.8. Modes</h2> 12427 </div> 12428 </div> 12429 </div> 12430 <p xmlns="http://www.w3.org/1999/xhtml"> 12431 A mode is a collection of Hemlock values which may be present in the 12432 current environment (page 21) depending on the editing task at hand. 12433 An example of a typical mode is Lisp, for editing Lisp code. 12434 </p> 12435 <div class="sect2" lang="en" xml:lang="en"> 12436 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 12437 <div> 12438 <div> 12439 <h3 class="title"><a id="ModeHooks"></a>6.8.1. Mode Hooks</h3> 12440 </div> 12441 </div> 12442 </div> 12443 <p xmlns="http://www.w3.org/1999/xhtml"> 12444 When a mode is added to or removed from a buffer, its mode hook is 12445 invoked. The hook functions take two arguments, the buffer involved 12446 and t if the mode is being added or nil if it is being removed. Mode 12447 hooks are typically used to make a mode do something additional to 12448 what it usually does. One might, for example, make a Text mode hook 12449 that turned on auto-fill mode when you entered. 12450 </p> 12451 </div> 12452 <div class="sect2" lang="en" xml:lang="en"> 12453 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 12454 <div> 12455 <div> 12456 <h3 class="title"><a id="MajorAndMinorModes"></a>6.8.2. Major and Minor Modes</h3> 12457 </div> 12458 </div> 12459 </div> 12460 <p xmlns="http://www.w3.org/1999/xhtml"> 12461 There are two kinds of modes, major modes and minor modes. A buffer 12462 always has exactly one major mode, but it may have any number of minor 12463 modes. Major modes may have mode character attributes while minor 12464 modes may not. 12465 </p> 12466 <p xmlns="http://www.w3.org/1999/xhtml"> 12467 A major mode is usually used to change the environment in some major 12468 way, such as to install special commands for editing some language. 12469 Minor modes generally change some small attribute of the environment, 12470 such as whether lines are automatically broken when they get too long. 12471 A minor mode should work regardless of what major mode and minor modes 12472 are in effect. 12473 </p> 12474 <p> 12475 <div class="refentrytitle"> 12476 <a id="hv_default_modes"></a> 12477 <strong>[Hemlock Variable]</strong> 12478 <br></br> 12479 <code> 12480 Default Modes (initial value '("Fundamental" "Save")) 12481 </code> 12482 </div> 12483 <div class="refentrytitle"></div> 12484 </p> 12485 <p> 12486 <div> 12487 <div class="refsect1" lang="en" xml:lang="en"> 12488 <a xmlns="http://www.w3.org/1999/xhtml" id="id693547"></a> 12489 <div class="header">Description:</div> 12490 <p xmlns="http://www.w3.org/1999/xhtml"> 12491 This variable contains a list of mode names which are instantiated in 12492 a buffer when no other information is available. 12493 </p> 12494 </div> 12495 </div> 12496 </p> 12497 <p> 12498 <div class="refentrytitle"> 12499 <a id="v_mode-names"></a> 12500 <strong>[Variable]</strong> 12501 <br></br> 12502 <code> 12503 *mode-names* 12504 </code> 12505 </div> 12506 <div class="refentrytitle"></div> 12507 </p> 12508 <p> 12509 <div> 12510 <div class="refsect1" lang="en" xml:lang="en"> 12511 <a xmlns="http://www.w3.org/1999/xhtml" id="id693602"></a> 12512 <div class="header">Description:</div> 12513 <p xmlns="http://www.w3.org/1999/xhtml"> 12514 Holds a string-table of the names of all the modes. 12515 </p> 12516 </div> 12517 </div> 12518 </p> 12519 <p> 12520 <div class="refentrytitle"> 12521 <a id="c_illegal"></a> 12522 <strong>[Command]</strong> 12523 <br></br> 12524 <code> 12525 Illegal 12526 </code> 12527 </div> 12528 <div class="refentrytitle"></div> 12529 </p> 12530 <p> 12531 <div> 12532 <div class="refsect1" lang="en" xml:lang="en"> 12533 <a xmlns="http://www.w3.org/1999/xhtml" id="id693656"></a> 12534 <div class="header">Description:</div> 12535 <p xmlns="http://www.w3.org/1999/xhtml"> 12536 This is a useful command to bind in modes that wish to shadow global 12537 bindings by making them effectively illegal. Also, although less 12538 likely, minor modes may shadow major mode bindings with this. This 12539 command calls editor-error. 12540 </p> 12541 </div> 12542 </div> 12543 </p> 12544 </div> 12545 <div class="sect2" lang="en" xml:lang="en"> 12546 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 12547 <div> 12548 <div> 12549 <h3 class="title"><a id="ModeFunctions"></a>6.8.3. Mode Functions</h3> 12550 </div> 12551 </div> 12552 </div> 12553 <p> 12554 <div class="refentrytitle"> 12555 <a id="f_defmode"></a> 12556 <strong>[Function]</strong> 12557 <br></br> 12558 <code> 12559 defmode name <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> :setup-function :cleanup-function :major-p :precedence :transparent-p :documentation 12560 </code> 12561 </div> 12562 <div class="refentrytitle"></div> 12563 </p> 12564 <p> 12565 <div> 12566 <div class="refsect1" lang="en" xml:lang="en"> 12567 <a xmlns="http://www.w3.org/1999/xhtml" id="id693726"></a> 12568 <div class="header">Description:</div> 12569 <p xmlns="http://www.w3.org/1999/xhtml"> 12570 This function defines a new mode named name, and enters it in 12571 *mode-names* (page 35). If major-p is supplied and is not nil then 12572 the mode is a major mode; otherwise it is a minor mode. 12573 </p> 12574 <p xmlns="http://www.w3.org/1999/xhtml"> 12575 Setup-function and cleanup-function are functions which are invoked 12576 with the buffer affected, after the mode is turned on, and before it 12577 is turned off, respectively. These functions typically are used to 12578 make buffer-local key or variable bindings and to remove them when the 12579 mode is turned off. 12580 </p> 12581 <p xmlns="http://www.w3.org/1999/xhtml"> 12582 Precedence is only meaningful for a minor mode. The precedence of a 12583 minor mode determines the order in which it in a buffer's list of 12584 modes. When searching for values in the current environment, minor 12585 modes are searched in order, so the precedence of a minor mode 12586 determines which value is found when there are several definitions. 12587 </p> 12588 <p xmlns="http://www.w3.org/1999/xhtml"> 12589 Transparent-p determines whether key bindings local to the defined mode 12590 are transparent. Transparent key bindings are invoked in addition to 12591 the first normal key binding found rather than shadowing less local 12592 key bindings. 12593 </p> 12594 <p xmlns="http://www.w3.org/1999/xhtml"> 12595 Documentation is some introductory text about the mode. Commands such 12596 as Describe Mode use this. 12597 </p> 12598 </div> 12599 </div> 12600 </p> 12601 <p> 12602 <div class="refentrytitle"> 12603 <a id="f_mode-documentation"></a> 12604 <strong>[Function]</strong> 12605 <br></br> 12606 <code> 12607 mode-documentation name 12608 </code> 12609 </div> 12610 <div class="refentrytitle"></div> 12611 </p> 12612 <p> 12613 <div> 12614 <div class="refsect1" lang="en" xml:lang="en"> 12615 <a xmlns="http://www.w3.org/1999/xhtml" id="id693805"></a> 12616 <div class="header">Description:</div> 12617 <p xmlns="http://www.w3.org/1999/xhtml"> 12618 This function returns the documentation for the mode named name. 12619 </p> 12620 </div> 12621 </div> 12622 </p> 12623 <p> 12624 <div class="refentrytitle"> 12625 <a id="f_buffer-major-mode"></a> 12626 <strong>[Function]</strong> 12627 <br></br> 12628 <code> 12629 buffer-major-mode buffer 12630 </code> 12631 </div> 12632 <div class="refentrytitle"></div> 12633 </p> 12634 <p> 12635 <div> 12636 <div class="refsect1" lang="en" xml:lang="en"> 12637 <a xmlns="http://www.w3.org/1999/xhtml" id="id693860"></a> 12638 <div class="header">Description:</div> 12639 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 12640 </div> 12641 </div> 12642 </p> 12643 <p> 12644 <div class="refentrytitle"> 12645 <a id="hv_buffer_major_mode_hook"></a> 12646 <strong>[Hemlock Variable]</strong> 12647 <br></br> 12648 <code> 12649 Buffer Major Mode Hook 12650 </code> 12651 </div> 12652 <div class="refentrytitle"></div> 12653 </p> 12654 <p> 12655 <div> 12656 <div class="refsect1" lang="en" xml:lang="en"> 12657 <a xmlns="http://www.w3.org/1999/xhtml" id="id693915"></a> 12658 <div class="header">Description:</div> 12659 <p xmlns="http://www.w3.org/1999/xhtml"> 12660 buffer-major-mode returns the name of buffer's major mode. The major 12661 mode may be changed with setf; then Buffer Major Mode Hook is invoked 12662 with buffer and the new mode. 12663 </p> 12664 </div> 12665 </div> 12666 </p> 12667 <p> 12668 <div class="refentrytitle"> 12669 <a id="f_buffer-minor-mode"></a> 12670 <strong>[Function]</strong> 12671 <br></br> 12672 <code> 12673 buffer-minor-mode buffer name 12674 </code> 12675 </div> 12676 <div class="refentrytitle"></div> 12677 </p> 12678 <p> 12679 <div> 12680 <div class="refsect1" lang="en" xml:lang="en"> 12681 <a xmlns="http://www.w3.org/1999/xhtml" id="id693970"></a> 12682 <div class="header">Description:</div> 12683 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 12684 </div> 12685 </div> 12686 </p> 12687 <p> 12688 <div class="refentrytitle"> 12689 <a id="hv_buffer_minor_mode_hook"></a> 12690 <strong>[Hemlock Variable]</strong> 12691 <br></br> 12692 <code> 12693 Buffer Minor Mode Hook 12694 </code> 12695 </div> 12696 <div class="refentrytitle"></div> 12697 </p> 12698 <p> 12699 <div> 12700 <div class="refsect1" lang="en" xml:lang="en"> 12701 <a xmlns="http://www.w3.org/1999/xhtml" id="id694025"></a> 12702 <div class="header">Description:</div> 12703 <p xmlns="http://www.w3.org/1999/xhtml"> 12704 buffer-minor-mode returns t if the minor mode name is active in 12705 buffer, nil otherwise. A minor mode may be turned on or off by using 12706 setf; then Buffer Minor Mode Hook is invoked with buffer, name and the 12707 new value. 12708 </p> 12709 </div> 12710 </div> 12711 </p> 12712 <p> 12713 <div class="refentrytitle"> 12714 <a id="f_mode-variables"></a> 12715 <strong>[Function]</strong> 12716 <br></br> 12717 <code> 12718 mode-variables name 12719 </code> 12720 </div> 12721 <div class="refentrytitle"></div> 12722 </p> 12723 <p> 12724 <div> 12725 <div class="refsect1" lang="en" xml:lang="en"> 12726 <a xmlns="http://www.w3.org/1999/xhtml" id="id694080"></a> 12727 <div class="header">Description:</div> 12728 <p xmlns="http://www.w3.org/1999/xhtml"> 12729 Returns the string-table of mode local variables. 12730 </p> 12731 </div> 12732 </div> 12733 </p> 12734 <p> 12735 <div class="refentrytitle"> 12736 <a id="f_mode-major-p"></a> 12737 <strong>[Function]</strong> 12738 <br></br> 12739 <code> 12740 mode-major-p name 12741 </code> 12742 </div> 12743 <div class="refentrytitle"></div> 12744 </p> 12745 <p> 12746 <div> 12747 <div class="refsect1" lang="en" xml:lang="en"> 12748 <a xmlns="http://www.w3.org/1999/xhtml" id="id694134"></a> 12749 <div class="header">Description:</div> 12750 <p xmlns="http://www.w3.org/1999/xhtml"> 12751 Returns t if name is the name of a major mode, or nil if it is the 12752 name of a minor mode. It is an error for name not to be the name of a 12753 mode. 12754 </p> 12755 </div> 12756 </div> 12757 </p> 12758 </div> 12759 </div> 12760 <div class="sect1" lang="en" xml:lang="en"> 12761 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 12762 <div> 12763 <div> 12764 <h2 class="title" style="clear: both"><a id="HemlockProgrammingCharacterAttributes"></a>6.9. Character Attributes</h2> 12765 </div> 12766 </div> 12767 </div> 12768 <div class="sect2" lang="en" xml:lang="en"> 12769 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 12770 <div> 12771 <div> 12772 <h3 class="title"><a id="HemlockProgrammingCharacterAttributesIntroduction"></a>6.9.1. Introduction</h3> 12773 </div> 12774 </div> 12775 </div> 12776 <p xmlns="http://www.w3.org/1999/xhtml"> 12777 Character attributes provide a global database of information about 12778 characters. This facility is similar to, but more general than, the 12779 syntax tables of other editors such as Emacs. For example, you should 12780 use character attributes for commands that need information regarding 12781 whether a character is whitespace or not. Use character attributes 12782 for these reasons: 12783 </p> 12784 <div xmlns="http://www.w3.org/1999/xhtml" class="orderedlist"> 12785 <ol class="orderedlist" type="1"> 12786 <li class="listitem"> 12787 <p> 12788 If this information is all in one place, then it is easy the 12789 change the behavior of the editor by changing the syntax table, 12790 much easier than it would be if character constants were wired 12791 into commands. 12792 </p> 12793 </li> 12794 </ol> 12795 </div> 12796 <div xmlns="http://www.w3.org/1999/xhtml" class="orderedlist"> 12797 <ol class="orderedlist" type="1"> 12798 <li class="listitem"> 12799 <p> 12800 This centralization of information avoids needless duplication of effort. 12801 </p> 12802 </li> 12803 </ol> 12804 </div> 12805 <div xmlns="http://www.w3.org/1999/xhtml" class="orderedlist"> 12806 <ol class="orderedlist" type="1"> 12807 <li class="listitem"> 12808 <p> 12809 The syntax table primitives are probably faster than anything that 12810 can be written above the primitive level. 12811 </p> 12812 </li> 12813 </ol> 12814 </div> 12815 <p xmlns="http://www.w3.org/1999/xhtml"> 12816 Note that an essential part of the character attribute scheme is that 12817 character attributes are global and are there for the user to 12818 change. Information about characters which is internal to some set of 12819 commands (and which the user should not know about) should not be 12820 maintained as a character attribute. For such uses various character 12821 searching abilities are provided by the function find-pattern (page 12822 20). 12823 </p> 12824 </div> 12825 <div class="sect2" lang="en" xml:lang="en"> 12826 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 12827 <div> 12828 <div> 12829 <h3 class="title"><a id="CharacterAttributeNames"></a>6.9.2. Character Attribute Names</h3> 12830 </div> 12831 </div> 12832 </div> 12833 <p xmlns="http://www.w3.org/1999/xhtml"> 12834 As for Hemlock variables, character attributes have a user visible 12835 string name, but are referred to in Lisp code as a symbol. The string 12836 name, which is typically composed of capitalized words separated by 12837 spaces, is translated into a keyword by replacing all spaces with 12838 hyphens and interning this string in the keyword package. The 12839 attribute named "Ada Syntax" would thus become :ada-syntax. 12840 </p> 12841 <p> 12842 <div class="refentrytitle"> 12843 <a id="v_character-attribute-names"></a> 12844 <strong>[Variable]</strong> 12845 <br></br> 12846 <code> 12847 *character-attribute-names* 12848 </code> 12849 </div> 12850 <div class="refentrytitle"></div> 12851 </p> 12852 <p> 12853 <div> 12854 <div class="refsect1" lang="en" xml:lang="en"> 12855 <a xmlns="http://www.w3.org/1999/xhtml" id="id694296"></a> 12856 <div class="header">Description:</div> 12857 <p xmlns="http://www.w3.org/1999/xhtml"> 12858 Whenever a character attribute is defined, its name is entered in this 12859 string table (page 69), with the corresponding keyword as the value. 12860 </p> 12861 </div> 12862 </div> 12863 </p> 12864 </div> 12865 <div class="sect2" lang="en" xml:lang="en"> 12866 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 12867 <div> 12868 <div> 12869 <h3 class="title"><a id="CharacterAttributeFunctions"></a>6.9.3. Character Attribute Functions</h3> 12870 </div> 12871 </div> 12872 </div> 12873 <p> 12874 <div class="refentrytitle"> 12875 <a id="f_defattribute"></a> 12876 <strong>[Function]</strong> 12877 <br></br> 12878 <code> 12879 defattribute name documentation <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> type initial-value 12880 </code> 12881 </div> 12882 <div class="refentrytitle"></div> 12883 </p> 12884 <p> 12885 <div> 12886 <div class="refsect1" lang="en" xml:lang="en"> 12887 <a xmlns="http://www.w3.org/1999/xhtml" id="id694366"></a> 12888 <div class="header">Description:</div> 12889 <p xmlns="http://www.w3.org/1999/xhtml"> 12890 This function defines a new character attribute with name, a 12891 string. Character attribute operations take attribute 12892 arguments as a keyword whose name is name uppercased with spaces 12893 replaced by hyphens. 12894 </p> 12895 <p xmlns="http://www.w3.org/1999/xhtml"> 12896 Documentation describes the uses of the character attribute. 12897 </p> 12898 <p xmlns="http://www.w3.org/1999/xhtml"> 12899 Type, which defaults to (mod 2), specifies what type the values of the 12900 character attribute are. Values of a character attribute may be of 12901 any type which may be specified to make-array. Initial-value (default 12902 0) is the value which all characters will initially have for this 12903 attribute. 12904 </p> 12905 </div> 12906 </div> 12907 </p> 12908 <p> 12909 <div class="refentrytitle"> 12910 <a id="f_character-attribute-name"></a> 12911 <strong>[Function]</strong> 12912 <br></br> 12913 <code> 12914 character-attribute-name attribute 12915 </code> 12916 </div> 12917 <div class="refentrytitle"></div> 12918 </p> 12919 <p> 12920 <div> 12921 <div class="refsect1" lang="en" xml:lang="en"> 12922 <a xmlns="http://www.w3.org/1999/xhtml" id="id694433"></a> 12923 <div class="header">Description:</div> 12924 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 12925 </div> 12926 </div> 12927 </p> 12928 <p> 12929 <div class="refentrytitle"> 12930 <a id="f_character-attribute-documentation"></a> 12931 <strong>[Function]</strong> 12932 <br></br> 12933 <code> 12934 character-attribute-documentation attribute 12935 </code> 12936 </div> 12937 <div class="refentrytitle"></div> 12938 </p> 12939 <p> 12940 <div> 12941 <div class="refsect1" lang="en" xml:lang="en"> 12942 <a xmlns="http://www.w3.org/1999/xhtml" id="id694488"></a> 12943 <div class="header">Description:</div> 12944 <p xmlns="http://www.w3.org/1999/xhtml"> 12945 These functions return the name or documentation for attribute. 12946 </p> 12947 </div> 12948 </div> 12949 </p> 12950 <p> 12951 <div class="refentrytitle"> 12952 <a id="f_character-attribute"></a> 12953 <strong>[Function]</strong> 12954 <br></br> 12955 <code> 12956 character-attribute attribute character 12957 </code> 12958 </div> 12959 <div class="refentrytitle"></div> 12960 </p> 12961 <p> 12962 <div> 12963 <div class="refsect1" lang="en" xml:lang="en"> 12964 <a xmlns="http://www.w3.org/1999/xhtml" id="id694543"></a> 12965 <div class="header">Description:</div> 12966 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 12967 </div> 12968 </div> 12969 </p> 12970 <p> 12971 <div class="refentrytitle"> 12972 <a id="hv_character_attribute_hook"></a> 12973 <strong>[Hemlock Variable]</strong> 12974 <br></br> 12975 <code> 12976 Character Attribute Hook 12977 </code> 12978 </div> 12979 <div class="refentrytitle"></div> 12980 </p> 12981 <p> 12982 <div> 12983 <div class="refsect1" lang="en" xml:lang="en"> 12984 <a xmlns="http://www.w3.org/1999/xhtml" id="id694598"></a> 12985 <div class="header">Description:</div> 12986 <p xmlns="http://www.w3.org/1999/xhtml"> 12987 character-attribute returns the value of attribute for character. This 12988 signals an error if attribute is undefined. 12989 </p> 12990 <p xmlns="http://www.w3.org/1999/xhtml"> 12991 setf will set a character's attributes. This setf method invokes the 12992 functions in Character Attribute Hook on the attribute and character 12993 before it makes the change. 12994 </p> 12995 <p xmlns="http://www.w3.org/1999/xhtml"> 12996 If character is nil, then the value of the attribute for the beginning 12997 or end of the buffer can be accessed or set. The buffer beginning and 12998 end thus become a sort of fictitious character, which simplifies the 12999 use of character attributes in many cases. 13000 </p> 13001 </div> 13002 </div> 13003 </p> 13004 <p> 13005 <div class="refentrytitle"> 13006 <a id="f_character-attribute-p"></a> 13007 <strong>[Function]</strong> 13008 <br></br> 13009 <code> 13010 character-attribute-p symbol 13011 </code> 13012 </div> 13013 <div class="refentrytitle"></div> 13014 </p> 13015 <p> 13016 <div> 13017 <div class="refsect1" lang="en" xml:lang="en"> 13018 <a xmlns="http://www.w3.org/1999/xhtml" id="id694664"></a> 13019 <div class="header">Description:</div> 13020 <p xmlns="http://www.w3.org/1999/xhtml"> 13021 This function returns t if symbolis the name of a character attribute, 13022 nil otherwise. 13023 </p> 13024 </div> 13025 </div> 13026 </p> 13027 <p> 13028 <div class="refentrytitle"> 13029 <a id="f_shadow-attribute"></a> 13030 <strong>[Function]</strong> 13031 <br></br> 13032 <code> 13033 shadow-attribute attribute character value mode 13034 </code> 13035 </div> 13036 <div class="refentrytitle"></div> 13037 </p> 13038 <p> 13039 <div> 13040 <div class="refsect1" lang="en" xml:lang="en"> 13041 <a xmlns="http://www.w3.org/1999/xhtml" id="id694720"></a> 13042 <div class="header">Description:</div> 13043 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 13044 </div> 13045 </div> 13046 </p> 13047 <p> 13048 <div class="refentrytitle"> 13049 <a id="hv_shadow_attribute_hook"></a> 13050 <strong>[Hemlock Variable]</strong> 13051 <br></br> 13052 <code> 13053 Shadow Attribute Hook 13054 </code> 13055 </div> 13056 <div class="refentrytitle"></div> 13057 </p> 13058 <p> 13059 <div> 13060 <div class="refsect1" lang="en" xml:lang="en"> 13061 <a xmlns="http://www.w3.org/1999/xhtml" id="id694774"></a> 13062 <div class="header">Description:</div> 13063 <p xmlns="http://www.w3.org/1999/xhtml"> 13064 This function establishes value as the value of character's attribute 13065 attribute when in the mode mode. Mode must be the name of a major 13066 mode. Shadow Attribute Hook is invoked with the same arguments when 13067 this function is called. If the value for an attribute is set while 13068 the value is shadowed, then only the shadowed value is affected, not 13069 the global one. 13070 </p> 13071 </div> 13072 </div> 13073 </p> 13074 <p> 13075 <div class="refentrytitle"> 13076 <a id="f_unshadow-attribute"></a> 13077 <strong>[Function]</strong> 13078 <br></br> 13079 <code> 13080 unshadow-attribute attribute character mode 13081 </code> 13082 </div> 13083 <div class="refentrytitle"></div> 13084 </p> 13085 <p> 13086 <div> 13087 <div class="refsect1" lang="en" xml:lang="en"> 13088 <a xmlns="http://www.w3.org/1999/xhtml" id="id694832"></a> 13089 <div class="header">Description:</div> 13090 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 13091 </div> 13092 </div> 13093 </p> 13094 <p> 13095 <div class="refentrytitle"> 13096 <a id="hv_unshadow_attribute_hook"></a> 13097 <strong>[Hemlock Variable]</strong> 13098 <br></br> 13099 <code> 13100 Unshadow Attribute Hook 13101 </code> 13102 </div> 13103 <div class="refentrytitle"></div> 13104 </p> 13105 <p> 13106 <div> 13107 <div class="refsect1" lang="en" xml:lang="en"> 13108 <a xmlns="http://www.w3.org/1999/xhtml" id="id694887"></a> 13109 <div class="header">Description:</div> 13110 <p xmlns="http://www.w3.org/1999/xhtml"> 13111 Make the value of attribute for character no longer be shadowed in 13112 mode. Unshadow Attribute Hook is invoked with the same arguments when 13113 this function is called. 13114 </p> 13115 </div> 13116 </div> 13117 </p> 13118 <p> 13119 <div class="refentrytitle"> 13120 <a id="f_find-attribute"></a> 13121 <strong>[Function]</strong> 13122 <br></br> 13123 <code> 13124 find-attribute mark attribute <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> test 13125 </code> 13126 </div> 13127 <div class="refentrytitle"></div> 13128 </p> 13129 <p> 13130 <div> 13131 <div class="refsect1" lang="en" xml:lang="en"> 13132 <a xmlns="http://www.w3.org/1999/xhtml" id="id694946"></a> 13133 <div class="header">Description:</div> 13134 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 13135 </div> 13136 </div> 13137 </p> 13138 <p> 13139 <div class="refentrytitle"> 13140 <a id="f_reverse-find-attribute"></a> 13141 <strong>[Function]</strong> 13142 <br></br> 13143 <code> 13144 reverse-find-attribute mark attribute <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> test 13145 </code> 13146 </div> 13147 <div class="refentrytitle"></div> 13148 </p> 13149 <p> 13150 <div> 13151 <div class="refsect1" lang="en" xml:lang="en"> 13152 <a xmlns="http://www.w3.org/1999/xhtml" id="id695004"></a> 13153 <div class="header">Description:</div> 13154 <p xmlns="http://www.w3.org/1999/xhtml"> 13155 These functions find the next (or previous) character with some value 13156 for the character attribute attribute starting at mark. They pass test 13157 one argument, the value of attribute for the character tested. If the 13158 test succeeds, then these routines modify mark to point before (after 13159 for reverse-find-attribute) the character which satisfied the test. 13160 If no characters satisfy the test, then these return nil, and mark 13161 remains unmodified. Test defaults to <code class="code">#'not-zerop</code>. There is no guarantee 13162 that the test is applied in any particular fashion, so it should have 13163 no side effects and depend only on its argument. 13164 </p> 13165 </div> 13166 </div> 13167 </p> 13168 <p> 13169 <div class="refentrytitle"> 13170 <a id="f_find-not-attribute"></a> 13171 <strong>[Function]</strong> 13172 <br></br> 13173 <code> 13174 find-not-attribute mark attribute 13175 </code> 13176 </div> 13177 <div class="refentrytitle"></div> 13178 </p> 13179 <p> 13180 <div> 13181 <div class="refsect1" lang="en" xml:lang="en"> 13182 <a xmlns="http://www.w3.org/1999/xhtml" id="id695067"></a> 13183 <div class="header">Description:</div> 13184 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 13185 </div> 13186 </div> 13187 </p> 13188 <p> 13189 <div class="refentrytitle"> 13190 <a id="f_reverse-find-not-attribute"></a> 13191 <strong>[Function]</strong> 13192 <br></br> 13193 <code> 13194 reverse-find-not-attribute mark attribute 13195 </code> 13196 </div> 13197 <div class="refentrytitle"></div> 13198 </p> 13199 <p> 13200 <div> 13201 <div class="refsect1" lang="en" xml:lang="en"> 13202 <a xmlns="http://www.w3.org/1999/xhtml" id="id695122"></a> 13203 <div class="header">Description:</div> 13204 <p xmlns="http://www.w3.org/1999/xhtml"> 13205 These are equivalent to (find-attribute mark attribute #'zerop) and 13206 (reverse-find-attribute mark attribute #'zerop), respectively. 13207 </p> 13208 </div> 13209 </div> 13210 </p> 13211 </div> 13212 <div class="sect2" lang="en" xml:lang="en"> 13213 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 13214 <div> 13215 <div> 13216 <h3 class="title"><a id="CharacterAttributeHooks"></a>6.9.4. Character Attribute Hooks</h3> 13217 </div> 13218 </div> 13219 </div> 13220 <p xmlns="http://www.w3.org/1999/xhtml"> 13221 It is often useful to use the character attribute mechanism as an 13222 abstract interface to other information about characters which in fact 13223 is stored elsewhere. For example, some implementation of Hemlock 13224 might decide to define a Print Representation attribute which controls 13225 how a character is displayed on an output device. 13226 </p> 13227 <p xmlns="http://www.w3.org/1999/xhtml"> 13228 To make this easy to do, each attribute has a list of hook functions 13229 which are invoked with the attribute, character and new value whenever 13230 the current value changes for any reason. 13231 </p> 13232 <p> 13233 <div class="refentrytitle"> 13234 <a id="f_character-attribute-hooks"></a> 13235 <strong>[Function]</strong> 13236 <br></br> 13237 <code> 13238 character-attribute-hooks attribute 13239 </code> 13240 </div> 13241 <div class="refentrytitle"></div> 13242 </p> 13243 <p> 13244 <div> 13245 <div class="refsect1" lang="en" xml:lang="en"> 13246 <a xmlns="http://www.w3.org/1999/xhtml" id="id695201"></a> 13247 <div class="header">Description:</div> 13248 <p xmlns="http://www.w3.org/1999/xhtml"> 13249 Return the current hook list for attribute. This may be set with 13250 setf. The add-hook and remove-hook (page 25) macros should be used to 13251 manipulate these lists. 13252 </p> 13253 </div> 13254 </div> 13255 </p> 13256 </div> 13257 <div class="sect2" lang="en" xml:lang="en"> 13258 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 13259 <div> 13260 <div> 13261 <h3 class="title"><a id="SystemDefinedCharacterAttributes"></a>6.9.5. System Defined Character Attributes</h3> 13262 </div> 13263 </div> 13264 </div> 13265 <p xmlns="http://www.w3.org/1999/xhtml"> 13266 These are predefined in Hemlock: 13267 </p> 13268 <div xmlns="http://www.w3.org/1999/xhtml" class="variablelist"> 13269 <dl> 13270 <dt> 13271 <span class="term">"Whitespace"</span> 13272 </dt> 13273 <dd> 13274 <p> 13275 A value of 1 indicates the character is whitespace. 13276 </p> 13277 </dd> 13278 <dt> 13279 <span class="term">"Word Delimiter"</span> 13280 </dt> 13281 <dd> 13282 <p> 13283 A value of 1 indicates the character separates words (see section 15.3). 13284 </p> 13285 </dd> 13286 <dt> 13287 <span class="term">"Space"</span> 13288 </dt> 13289 <dd> 13290 <p> 13291 This is like Whitespace, but it should not include Newline. Hemlock 13292 uses this primarily for handling indentation on a line. 13293 </p> 13294 </dd> 13295 <dt> 13296 <span class="term">"Sentence Terminator"</span> 13297 </dt> 13298 <dd> 13299 <p> 13300 A value of 1 indicates these characters terminate sentences (see section 15.3). 13301 </p> 13302 </dd> 13303 <dt> 13304 <span class="term">"Sentence Closing Char"</span> 13305 </dt> 13306 <dd> 13307 <p> 13308 A value of 1 indicates these delimiting characters, such as " or ), 13309 may follow a Sentence Terminator (see section 15.3). 13310 </p> 13311 </dd> 13312 <dt> 13313 <span class="term">"Paragraph Delimiter"</span> 13314 </dt> 13315 <dd> 13316 <p> 13317 A value of 1 indicates these characters delimit paragraphs when they 13318 begin a line (see section 15.3). 13319 </p> 13320 </dd> 13321 <dt> 13322 <span class="term">"Page Delimiter"</span> 13323 </dt> 13324 <dd> 13325 <p> 13326 A value of 1 indicates this character separates logical pages (see 13327 section 15.4) when it begins a line. 13328 </p> 13329 </dd> 13330 <dt> 13331 <span class="term">"Lisp Syntax"</span> 13332 </dt> 13333 <dd> 13334 <p> 13335 This uses symbol values from the following: 13336 </p> 13337 </dd> 13338 </dl> 13339 </div> 13340 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 13341 <ul class="itemizedlist" type="disc"> 13342 <li class="listitem"> 13343 <p> 13344 nil These characters have no interesting properties. 13345 </p> 13346 </li> 13347 </ul> 13348 </div> 13349 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 13350 <ul class="itemizedlist" type="disc"> 13351 <li class="listitem"> 13352 <p> 13353 :space These characters act like whitespace and should not include Newline. 13354 </p> 13355 </li> 13356 </ul> 13357 </div> 13358 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 13359 <ul class="itemizedlist" type="disc"> 13360 <li class="listitem"> 13361 <p> 13362 :newline This is the Newline character. 13363 </p> 13364 </li> 13365 </ul> 13366 </div> 13367 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 13368 <ul class="itemizedlist" type="disc"> 13369 <li class="listitem"> 13370 <p> 13371 :open-paren This is ( character. 13372 </p> 13373 </li> 13374 </ul> 13375 </div> 13376 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 13377 <ul class="itemizedlist" type="disc"> 13378 <li class="listitem"> 13379 <p> 13380 :close-paren This is ) character. 13381 </p> 13382 </li> 13383 </ul> 13384 </div> 13385 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 13386 <ul class="itemizedlist" type="disc"> 13387 <li class="listitem"> 13388 <p> 13389 :prefix This is a character that is a part of any form it precedes for example, the single quote, '. 13390 </p> 13391 </li> 13392 </ul> 13393 </div> 13394 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 13395 <ul class="itemizedlist" type="disc"> 13396 <li class="listitem"> 13397 <p> 13398 :string-quote This is the character that quotes a string literal, ". 13399 </p> 13400 </li> 13401 </ul> 13402 </div> 13403 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 13404 <ul class="itemizedlist" type="disc"> 13405 <li class="listitem"> 13406 <p> 13407 :char-quote This is the character that escapes a single character, \. 13408 </p> 13409 </li> 13410 </ul> 13411 </div> 13412 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 13413 <ul class="itemizedlist" type="disc"> 13414 <li class="listitem"> 13415 <p> 13416 :comment This is the character that makes a comment with the rest of the line,;. 13417 </p> 13418 </li> 13419 </ul> 13420 </div> 13421 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 13422 <ul class="itemizedlist" type="disc"> 13423 <li class="listitem"> 13424 <p> 13425 :constituent These characters are constitute symbol names. 13426 </p> 13427 </li> 13428 </ul> 13429 </div> 13430 </div> 13431 </div> 13432 <div class="sect1" lang="en" xml:lang="en"> 13433 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 13434 <div> 13435 <div> 13436 <h2 class="title" style="clear: both"><a id="HemlockProgrammingControllingTheDisplay"></a>6.10. Controlling the Display</h2> 13437 </div> 13438 </div> 13439 </div> 13440 <div class="sect2" lang="en" xml:lang="en"> 13441 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 13442 <div> 13443 <div> 13444 <h3 class="title"><a id="Views"></a>6.10.1. Views</h3> 13445 </div> 13446 </div> 13447 </div> 13448 <p xmlns="http://www.w3.org/1999/xhtml"> 13449 A <code class="code">hemlock-view</code> represents the GUI object(s) used to display the contents 13450 of a buffer. Conceptually it consists of a text buffer, a 13451 modeline for semi-permanent status info, an echo area for transient 13452 status info, and a text input area for reading prompted 13453 input. (Currently the last two are conflated, i.e. text input happens 13454 in the echo area). 13455 </p> 13456 <p xmlns="http://www.w3.org/1999/xhtml"> 13457 The API for working with hemlock-views is not fully 13458 defined yet. If you need to work with views beyond what's listed 13459 here, you will probably need to get in the sources and find some 13460 internal functions to call. 13461 </p> 13462 </div> 13463 <div class="sect2" lang="en" xml:lang="en"> 13464 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 13465 <div> 13466 <div> 13467 <h3 class="title"><a id="CurrentView"></a>6.10.2. The Current View</h3> 13468 </div> 13469 </div> 13470 </div> 13471 <p> 13472 <div class="refentrytitle"> 13473 <a id="f_current-view"></a> 13474 <strong>[Function]</strong> 13475 <br></br> 13476 <code> 13477 current-view 13478 </code> 13479 </div> 13480 <div class="refentrytitle"></div> 13481 </p> 13482 <p> 13483 <div> 13484 <div class="refsect1" lang="en" xml:lang="en"> 13485 <a xmlns="http://www.w3.org/1999/xhtml" id="id695569"></a> 13486 <div class="header">Description:</div> 13487 <p xmlns="http://www.w3.org/1999/xhtml"> 13488 current-view returns the hemlock view which is the target of the 13489 currently executing command. This is usually the frontmost hemlock 13490 window in the current application. 13491 </p> 13492 </div> 13493 </div> 13494 </p> 13495 </div> 13496 <div class="sect2" lang="en" xml:lang="en"> 13497 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 13498 <div> 13499 <div> 13500 <h3 class="title"><a id="ViewFunctions"></a>6.10.3. View Functions</h3> 13501 </div> 13502 </div> 13503 </div> 13504 <p> 13505 <div class="refentrytitle"> 13506 <a id="f_hemlock-view-p"></a> 13507 <strong>[Function]</strong> 13508 <br></br> 13509 <code> 13510 hemlock-view-p object 13511 </code> 13512 </div> 13513 <div class="refentrytitle"></div> 13514 </p> 13515 <p> 13516 <div> 13517 <div class="refsect1" lang="en" xml:lang="en"> 13518 <a xmlns="http://www.w3.org/1999/xhtml" id="id695636"></a> 13519 <div class="header">Description:</div> 13520 <p xmlns="http://www.w3.org/1999/xhtml"> 13521 This function returns t if object is a hemlock view, otherwise nil. 13522 </p> 13523 </div> 13524 </div> 13525 </p> 13526 <p> 13527 <div class="refentrytitle"> 13528 <a id="f_hemlock-view-buffer"></a> 13529 <strong>[Function]</strong> 13530 <br></br> 13531 <code> 13532 hemlock-view-buffer view 13533 </code> 13534 </div> 13535 <div class="refentrytitle"></div> 13536 </p> 13537 <p> 13538 <div> 13539 <div class="refsect1" lang="en" xml:lang="en"> 13540 <a xmlns="http://www.w3.org/1999/xhtml" id="id695691"></a> 13541 <div class="header">Description:</div> 13542 <p xmlns="http://www.w3.org/1999/xhtml"> 13543 This function returns the buffer which is displayed in the view. 13544 </p> 13545 </div> 13546 </div> 13547 </p> 13548 </div> 13549 <div class="sect2" lang="en" xml:lang="en"> 13550 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 13551 <div> 13552 <div> 13553 <h3 class="title"><a id="CursorPositions"></a>6.10.4. Cursor Positions</h3> 13554 </div> 13555 </div> 13556 </div> 13557 <p> 13558 <div class="refentrytitle"> 13559 <a id="f_mark-column"></a> 13560 <strong>[Function]</strong> 13561 <br></br> 13562 <code> 13563 mark-column mark 13564 </code> 13565 </div> 13566 <div class="refentrytitle"></div> 13567 </p> 13568 <p> 13569 <div> 13570 <div class="refsect1" lang="en" xml:lang="en"> 13571 <a xmlns="http://www.w3.org/1999/xhtml" id="id695757"></a> 13572 <div class="header">Description:</div> 13573 <p xmlns="http://www.w3.org/1999/xhtml"> 13574 This function returns the X position at which mark would be displayed, 13575 supposing its line was displayed on an infinitely wide screen. This 13576 takes into consideration strange characters such as tabs. 13577 </p> 13578 </div> 13579 </div> 13580 </p> 13581 <p> 13582 <div class="refentrytitle"> 13583 <a id="f_move-to-column"></a> 13584 <strong>[Function]</strong> 13585 <br></br> 13586 <code> 13587 move-to-column mark column <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> line 13588 </code> 13589 </div> 13590 <div class="refentrytitle"></div> 13591 </p> 13592 <p> 13593 <div> 13594 <div class="refsect1" lang="en" xml:lang="en"> 13595 <a xmlns="http://www.w3.org/1999/xhtml" id="id695816"></a> 13596 <div class="header">Description:</div> 13597 <p xmlns="http://www.w3.org/1999/xhtml"> 13598 This function is analogous to move-to-position (page 5), except that 13599 it moves mark to the position on line which corresponds to the 13600 specified column. If the line would not reach to the specified column, then nil is 13601 returned and mark is not modified. Note that since a character may be 13602 displayed on more than one column on the screen, several different 13603 values of column may cause mark to be moved to the same position. 13604 </p> 13605 </div> 13606 </div> 13607 </p> 13608 </div> 13609 <div class="sect2" lang="en" xml:lang="en"> 13610 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 13611 <div> 13612 <div> 13613 <h3 class="title"><a id="Redisplay"></a>6.10.5. Redisplay</h3> 13614 </div> 13615 </div> 13616 </div> 13617 <p xmlns="http://www.w3.org/1999/xhtml"> 13618 The display of the buffer contents on the screen is updated at the 13619 end of each command. The following function can be used to control 13620 the scroll position of the buffer in the view. 13621 </p> 13622 <p> 13623 <div class="refentrytitle"> 13624 <a id="f_set-scroll-position"></a> 13625 <strong>[Function]</strong> 13626 <br></br> 13627 <code> 13628 set-scroll-position how <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> what 13629 </code> 13630 </div> 13631 <div class="refentrytitle"></div> 13632 </p> 13633 <p> 13634 <div> 13635 <div class="refsect1" lang="en" xml:lang="en"> 13636 <a xmlns="http://www.w3.org/1999/xhtml" id="id695893"></a> 13637 <div class="header">Description:</div> 13638 <p xmlns="http://www.w3.org/1999/xhtml"> 13639 Normally, after a command that changes the contents of the buffer 13640 or the selection (i.e. the active region), the event handler repositions 13641 the view so that the selection is visible, scrolling the buffer as 13642 necessary. Calling this function tells the system to not do that, 13643 and instead to position the buffer in a particular way. <code class="code">how</code> can 13644 be one of the following: 13645 </p> 13646 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:center-selection</span></i>--- 13647 This causes the selection (or the point) to be centered in the visible area. <code xmlns="http://www.w3.org/1999/xhtml" class="code">what</code> is ignored. 13648 13649 </p> 13650 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:page-up</span></i>--- 13651 This causes the previous page of the buffer to be shown <code xmlns="http://www.w3.org/1999/xhtml" class="code">what</code> is ignored. 13652 </p> 13653 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:page-down</span></i>--- 13654 This causes the next page of the buffer to be shown. <code xmlns="http://www.w3.org/1999/xhtml" class="code">what</code> is ignored. 13655 </p> 13656 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:lines-up</span></i>--- 13657 This causes <code xmlns="http://www.w3.org/1999/xhtml" class="code">what</code> previous lines to be scrolled in at the top. <code xmlns="http://www.w3.org/1999/xhtml" class="code">what</code> must be an integer. 13658 </p> 13659 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:lines-down</span></i>--- 13660 This causes <code xmlns="http://www.w3.org/1999/xhtml" class="code">what</code> next lines to be scrolled in at the bottom. <code xmlns="http://www.w3.org/1999/xhtml" class="code">what</code> must be an integer. 13661 </p> 13662 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:line</span></i>--- 13663 This causes the line containing <code xmlns="http://www.w3.org/1999/xhtml" class="code">what</code> to be scrolled to the top of the view. <code xmlns="http://www.w3.org/1999/xhtml" class="code">what</code> must be a mark. 13664 </p> 13665 </div> 13666 </div> 13667 </p> 13668 </div> 13669 </div> 13670 <div class="sect1" lang="en" xml:lang="en"> 13671 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 13672 <div> 13673 <div> 13674 <h2 class="title" style="clear: both"><a id="HemlockProgrammingLogicalKeyEvents"></a>6.11. Logical Key-Events</h2> 13675 </div> 13676 </div> 13677 </div> 13678 <div class="sect2" lang="en" xml:lang="en"> 13679 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 13680 <div> 13681 <div> 13682 <h3 class="title"><a id="HemlockProgrammingLogicalKeyEventsIntroduction"></a>6.11.1. Introduction</h3> 13683 </div> 13684 </div> 13685 </div> 13686 <p xmlns="http://www.w3.org/1999/xhtml"> 13687 Some primitives such as prompt-for-key (page 50) and commands such as 13688 Emacs query replace read key-events directly from the keyboard instead 13689 of using the command interpreter. To encourage consistency between 13690 these commands and to make them portable and easy to customize, there 13691 is a mechanism for defininglogical key-events. A logical key-event is 13692 a keyword which stands for some set of key-events. The system 13693 globally interprets these key-events as indicators a particular 13694 action. For example, the :help logical key-event represents the set of 13695 key-events that request help in a given Hemlock implementation. This 13696 mapping is a many-to-many mapping, not one-to-one, so a given logical 13697 key-event may have multiple corresponding actual key-events. Also, 13698 any key-event may represent different logical key-events. 13699 </p> 13700 </div> 13701 <div class="sect2" lang="en" xml:lang="en"> 13702 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 13703 <div> 13704 <div> 13705 <h3 class="title"><a id="LogicalKeyEventFunctions"></a>6.11.2. Logical Key-Event Functions</h3> 13706 </div> 13707 </div> 13708 </div> 13709 <p> 13710 <div class="refentrytitle"> 13711 <a id="v_logical-key-event-names"></a> 13712 <strong>[Variable]</strong> 13713 <br></br> 13714 <code> 13715 *logical-key-event-names* 13716 </code> 13717 </div> 13718 <div class="refentrytitle"></div> 13719 </p> 13720 <p> 13721 <div> 13722 <div class="refsect1" lang="en" xml:lang="en"> 13723 <a xmlns="http://www.w3.org/1999/xhtml" id="id696136"></a> 13724 <div class="header">Description:</div> 13725 <p xmlns="http://www.w3.org/1999/xhtml"> 13726 This variable holds a string-table mapping all logical key-event names 13727 to the keyword identifying the logical key-event. 13728 </p> 13729 </div> 13730 </div> 13731 </p> 13732 <p> 13733 <div class="refentrytitle"> 13734 <a id="f_define-logical-key-event"></a> 13735 <strong>[Function]</strong> 13736 <br></br> 13737 <code> 13738 define-logical-key-event string-name documentation 13739 </code> 13740 </div> 13741 <div class="refentrytitle"></div> 13742 </p> 13743 <p> 13744 <div> 13745 <div class="refsect1" lang="en" xml:lang="en"> 13746 <a xmlns="http://www.w3.org/1999/xhtml" id="id696192"></a> 13747 <div class="header">Description:</div> 13748 <p xmlns="http://www.w3.org/1999/xhtml"> 13749 This function defines a new logical key-event with name string-name. 13750 Logical key-event operations take logical key-events 13751 arguments as a keyword whose name is string-name uppercased with 13752 spaces replaced by hyphens. 13753 </p> 13754 <p xmlns="http://www.w3.org/1999/xhtml"> 13755 Documentation describes the action indicated by the logical key-event. 13756 </p> 13757 </div> 13758 </div> 13759 </p> 13760 <p> 13761 <div class="refentrytitle"> 13762 <a id="f_logical-key-event-key-events"></a> 13763 <strong>[Function]</strong> 13764 <br></br> 13765 <code> 13766 logical-key-event-key-events keyword 13767 </code> 13768 </div> 13769 <div class="refentrytitle"></div> 13770 </p> 13771 <p> 13772 <div> 13773 <div class="refsect1" lang="en" xml:lang="en"> 13774 <a xmlns="http://www.w3.org/1999/xhtml" id="id696253"></a> 13775 <div class="header">Description:</div> 13776 <p xmlns="http://www.w3.org/1999/xhtml"> 13777 This function returns the list of key-events representing the logical 13778 key-event keyword. 13779 </p> 13780 </div> 13781 </div> 13782 </p> 13783 <p> 13784 <div class="refentrytitle"> 13785 <a id="f_logical-key-event-name"></a> 13786 <strong>[Function]</strong> 13787 <br></br> 13788 <code> 13789 logical-key-event-name keyword 13790 </code> 13791 </div> 13792 <div class="refentrytitle"></div> 13793 </p> 13794 <p> 13795 <div> 13796 <div class="refsect1" lang="en" xml:lang="en"> 13797 <a xmlns="http://www.w3.org/1999/xhtml" id="id696308"></a> 13798 <div class="header">Description:</div> 13799 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 13800 </div> 13801 </div> 13802 </p> 13803 <p> 13804 <div class="refentrytitle"> 13805 <a id="f_logical-key-event-documentation"></a> 13806 <strong>[Function]</strong> 13807 <br></br> 13808 <code> 13809 logical-key-event-documentation keyword 13810 </code> 13811 </div> 13812 <div class="refentrytitle"></div> 13813 </p> 13814 <p> 13815 <div> 13816 <div class="refsect1" lang="en" xml:lang="en"> 13817 <a xmlns="http://www.w3.org/1999/xhtml" id="id696363"></a> 13818 <div class="header">Description:</div> 13819 <p xmlns="http://www.w3.org/1999/xhtml"> 13820 These functions return the string name and documentation given 13821 to define-logical-key-event for logical key-event keyword. 13822 </p> 13823 </div> 13824 </div> 13825 </p> 13826 <p> 13827 <div class="refentrytitle"> 13828 <a id="f_logical-key-event-p"></a> 13829 <strong>[Function]</strong> 13830 <br></br> 13831 <code> 13832 logical-key-event-p key-event keyword 13833 </code> 13834 </div> 13835 <div class="refentrytitle"></div> 13836 </p> 13837 <p> 13838 <div> 13839 <div class="refsect1" lang="en" xml:lang="en"> 13840 <a xmlns="http://www.w3.org/1999/xhtml" id="id696419"></a> 13841 <div class="header">Description:</div> 13842 <p xmlns="http://www.w3.org/1999/xhtml"> 13843 This function returns t if key-event is the logical key-event 13844 keyword. This is setf-able establishing or disestablishing key-events 13845 as particular logical key-events. It is a error for keyword to be an 13846 undefined logical key-event. 13847 </p> 13848 </div> 13849 </div> 13850 </p> 13851 </div> 13852 <div class="sect2" lang="en" xml:lang="en"> 13853 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 13854 <div> 13855 <div> 13856 <h3 class="title"><a id="SystemDefinedLogicalKeyEvents"></a>6.11.3. System Defined Logical Key-Events</h3> 13857 </div> 13858 </div> 13859 </div> 13860 <p xmlns="http://www.w3.org/1999/xhtml"> 13861 There are many default logical key-events, some of which are used by 13862 functions documented in this manual. If a command wants to read a 13863 single key-event command that fits one of these descriptions then the 13864 key-event read should be compared to the corresponding logical 13865 key-event instead of explicitly mentioning the particular key-event in 13866 the code. In many cases you can use the command-case (page 48) macro. 13867 It makes logical key-events easy to use and takes care of prompting 13868 and displaying help messages. 13869 </p> 13870 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 13871 <ul class="itemizedlist" type="disc"> 13872 <li class="listitem"> 13873 <p> 13874 :abort Indicates the prompter should terminate its activity without performing any closing actions of convenience, for example. 13875 </p> 13876 </li> 13877 <li class="listitem"> 13878 <p> 13879 :yes Indicates the prompter should take the action under consideration. 13880 </p> 13881 </li> 13882 <li class="listitem"> 13883 <p> 13884 :no Indicates the prompter should NOT take the action under consideration. 13885 </p> 13886 </li> 13887 <li class="listitem"> 13888 <p> 13889 :do-all Indicates the prompter should repeat the action under consideration as many times as possible. 13890 </p> 13891 </li> 13892 <li class="listitem"> 13893 <p> 13894 :do-once Indicates the prompter should execute the action under consideration once and then exit. 13895 </p> 13896 </li> 13897 <li class="listitem"> 13898 <p> 13899 :help Indicates the prompter should display some help information. 13900 </p> 13901 </li> 13902 <li class="listitem"> 13903 <p> 13904 :confirm Indicates the prompter should take any input provided or use the default if the user entered nothing. 13905 </p> 13906 </li> 13907 <li class="listitem"> 13908 <p> 13909 :quote Indicates the prompter should take the following key-event as itself without any sort of command interpretation. 13910 </p> 13911 </li> 13912 <li class="listitem"> 13913 <p> 13914 :keep Indicates the prompter should preserve something. 13915 </p> 13916 </li> 13917 <li class="listitem"> 13918 <p> 13919 :y Indicates a short positive response 13920 </p> 13921 </li> 13922 <li class="listitem"> 13923 <p> 13924 :n Indicates a short negative response 13925 </p> 13926 </li> 13927 </ul> 13928 </div> 13929 <p xmlns="http://www.w3.org/1999/xhtml"> 13930 Define a new logical key-event whenever: 13931 </p> 13932 <div xmlns="http://www.w3.org/1999/xhtml" class="orderedlist"> 13933 <ol class="orderedlist" type="1"> 13934 <li class="listitem"> 13935 <p> 13936 The key-event concerned represents a general class of actions, and 13937 several commands may want to take a similar action of this type. 13938 </p> 13939 </li> 13940 </ol> 13941 </div> 13942 <div xmlns="http://www.w3.org/1999/xhtml" class="orderedlist"> 13943 <ol class="orderedlist" type="1"> 13944 <li class="listitem"> 13945 <p> 13946 The exact key-event a command implementor chooses may generate 13947 violent taste disputes among users, and then the users can trivially 13948 change the command in their init files. 13949 </p> 13950 </li> 13951 </ol> 13952 </div> 13953 <div xmlns="http://www.w3.org/1999/xhtml" class="orderedlist"> 13954 <ol class="orderedlist" type="1"> 13955 <li class="listitem"> 13956 <p> 13957 You are using <code class="code">command-case</code> which prevents implementors from 13958 specifying non-standard characters for dispatching in otherwise 13959 possibly portable code, and you can define and set the logical 13960 key-event in a site dependent file where you can mention 13961 implementation dependent characters. 13962 </p> 13963 </li> 13964 </ol> 13965 </div> 13966 </div> 13967 </div> 13968 <div class="sect1" lang="en" xml:lang="en"> 13969 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 13970 <div> 13971 <div> 13972 <h2 class="title" style="clear: both"><a id="EchoArea"></a>6.12. The Echo Area</h2> 13973 </div> 13974 </div> 13975 </div> 13976 <p xmlns="http://www.w3.org/1999/xhtml"> 13977 Hemlock provides a number of facilities for displaying information and 13978 prompting the user for it. Most of these work through a small area 13979 displayed at the bottom of the screen, called the Echo Area. 13980 </p> 13981 <div class="sect2" lang="en" xml:lang="en"> 13982 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 13983 <div> 13984 <div> 13985 <h3 class="title"><a id="EchoAreaFunctions"></a>6.12.1. Echo Area Functions</h3> 13986 </div> 13987 </div> 13988 </div> 13989 <p> 13990 <div class="refentrytitle"> 13991 <a id="f_clear-echo-area"></a> 13992 <strong>[Function]</strong> 13993 <br></br> 13994 <code> 13995 clear-echo-area 13996 </code> 13997 </div> 13998 <div class="refentrytitle"></div> 13999 </p> 14000 <p> 14001 <div> 14002 <div class="refsect1" lang="en" xml:lang="en"> 14003 <a xmlns="http://www.w3.org/1999/xhtml" id="id696675"></a> 14004 <div class="header">Description:</div> 14005 <p xmlns="http://www.w3.org/1999/xhtml"> 14006 Clears the echo area. 14007 </p> 14008 </div> 14009 </div> 14010 </p> 14011 <p> 14012 <div class="refentrytitle"> 14013 <a id="f_message"></a> 14014 <strong>[Function]</strong> 14015 <br></br> 14016 <code> 14017 message control-string <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&rest</em> format-arguments 14018 </code> 14019 </div> 14020 <div class="refentrytitle"></div> 14021 </p> 14022 <p> 14023 <div> 14024 <div class="refsect1" lang="en" xml:lang="en"> 14025 <a xmlns="http://www.w3.org/1999/xhtml" id="id696733"></a> 14026 <div class="header">Description:</div> 14027 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 14028 </div> 14029 </div> 14030 </p> 14031 <p> 14032 <div class="refentrytitle"> 14033 <a id="f_loud-message"></a> 14034 <strong>[Function]</strong> 14035 <br></br> 14036 <code> 14037 loud-message control-string <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&rest</em> format-arguments 14038 </code> 14039 </div> 14040 <div class="refentrytitle"></div> 14041 </p> 14042 <p> 14043 <div> 14044 <div class="refsect1" lang="en" xml:lang="en"> 14045 <a xmlns="http://www.w3.org/1999/xhtml" id="id696791"></a> 14046 <div class="header">Description:</div> 14047 <p xmlns="http://www.w3.org/1999/xhtml"> 14048 Displays a message in the echo area, replacing previous contents if any. 14049 loud-message is like message, but it also beeps. 14050 </p> 14051 </div> 14052 </div> 14053 </p> 14054 <p> 14055 <div class="refentrytitle"> 14056 <a id="f_beep"></a> 14057 <strong>[Function]</strong> 14058 <br></br> 14059 <code> 14060 beep 14061 </code> 14062 </div> 14063 <div class="refentrytitle"></div> 14064 </p> 14065 <p> 14066 <div> 14067 <div class="refsect1" lang="en" xml:lang="en"> 14068 <a xmlns="http://www.w3.org/1999/xhtml" id="id696847"></a> 14069 <div class="header">Description:</div> 14070 <p xmlns="http://www.w3.org/1999/xhtml"> 14071 Gets the user's attention, typically by making a sound. 14072 </p> 14073 </div> 14074 </div> 14075 </p> 14076 </div> 14077 <div class="sect2" lang="en" xml:lang="en"> 14078 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 14079 <div> 14080 <div> 14081 <h3 class="title"><a id="PromptingFunctions"></a>6.12.2. Prompting Functions</h3> 14082 </div> 14083 </div> 14084 </div> 14085 <p xmlns="http://www.w3.org/1999/xhtml"> 14086 Prompting functions can be used to obtain short one-line input from the user. 14087 </p> 14088 <p xmlns="http://www.w3.org/1999/xhtml"> 14089 Cocoa note: Because of implementation restrictions, only one buffer at 14090 a time is allowed to read prompted input. If a prompting function is 14091 invoked while a prompting operation is already in effect in another 14092 buffer, the attempt fails, telling the user "Buffer xxx is already 14093 waiting for input". 14094 </p> 14095 <p xmlns="http://www.w3.org/1999/xhtml"> 14096 Most of the prompting functions accept the following keyword arguments: 14097 </p> 14098 <div xmlns="http://www.w3.org/1999/xhtml" class="variablelist"> 14099 <dl> 14100 <dt> 14101 <span class="term">:must-exist</span> 14102 </dt> 14103 <dd> 14104 <p> 14105 If :must-exist has a non-nil value then the user is 14106 prompted until a valid response is obtained. If :must-exist is nil 14107 then return as a string whatever is input. The default is t. 14108 </p> 14109 </dd> 14110 <dt> 14111 <span class="term">:default</span> 14112 </dt> 14113 <dd> 14114 <p> 14115 If null input is given when the user is prompted then this 14116 value is returned. If no default is given then some input must be 14117 given before anything interesting will happen. 14118 </p> 14119 </dd> 14120 <dt> 14121 <span class="term">:default-string</span> 14122 </dt> 14123 <dd> 14124 <p> 14125 If a :default is given then this is a string to be 14126 printed to indicate what the default is. The default is some 14127 representation of the value for :default, for example for a buffer it 14128 is the name of the buffer. 14129 </p> 14130 </dd> 14131 <dt> 14132 <span class="term">:prompt</span> 14133 </dt> 14134 <dd> 14135 <p> 14136 This is the prompt string to display. 14137 </p> 14138 </dd> 14139 <dt> 14140 <span class="term">:help</span> 14141 </dt> 14142 <dd> 14143 <p> 14144 This is similar to :prompt, except that it is displayed when the help 14145 command is typed during input. 14146 </p> 14147 </dd> 14148 </dl> 14149 </div> 14150 <div xmlns="http://www.w3.org/1999/xhtml" class="blockquote"> 14151 <blockquote class="blockquote"> 14152 <p>This may also be a function. When called with no arguments, it 14153 should either return a string which is the help text or perform some 14154 action to help the user, returning nil. 14155 </p> 14156 </blockquote> 14157 </div> 14158 <p> 14159 <div class="refentrytitle"> 14160 <a id="f_prompt-for-buffer"></a> 14161 <strong>[Function]</strong> 14162 <br></br> 14163 <code> 14164 prompt-for-buffer <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> :prompt :help :must-exist :default :default-string 14165 </code> 14166 </div> 14167 <div class="refentrytitle"></div> 14168 </p> 14169 <p> 14170 <div> 14171 <div class="refsect1" lang="en" xml:lang="en"> 14172 <a xmlns="http://www.w3.org/1999/xhtml" id="id697022"></a> 14173 <div class="header">Description:</div> 14174 <p xmlns="http://www.w3.org/1999/xhtml"> 14175 Prompts with completion for a buffer name and returns the 14176 corresponding buffer. If must-exist is nil, then it returns the input 14177 string if it is not a buffer name. This refuses to accept the empty 14178 string as input when :default and :default-string are 14179 nil. :default-string may be used to supply a default buffer name 14180 when:default is nil, but when :must-exist is non-nil, it must name an 14181 already existing buffer. 14182 </p> 14183 </div> 14184 </div> 14185 </p> 14186 <p> 14187 <div class="refentrytitle"> 14188 <a id="f_prompt-for-key-event"></a> 14189 <strong>[Function]</strong> 14190 <br></br> 14191 <code> 14192 prompt-for-key-event <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> :prompt :help 14193 </code> 14194 </div> 14195 <div class="refentrytitle"></div> 14196 </p> 14197 <p> 14198 <div> 14199 <div class="refsect1" lang="en" xml:lang="en"> 14200 <a xmlns="http://www.w3.org/1999/xhtml" id="id697084"></a> 14201 <div class="header">Description:</div> 14202 <p xmlns="http://www.w3.org/1999/xhtml"> 14203 This function prompts for a key-event returning immediately when the 14204 user types the next key-event. command-case (page 48) is more useful 14205 for most purposes. When appropriate, use logical key-events (page 45). 14206 </p> 14207 </div> 14208 </div> 14209 </p> 14210 <p> 14211 <div class="refentrytitle"> 14212 <a id="f_prompt-for-key"></a> 14213 <strong>[Function]</strong> 14214 <br></br> 14215 <code> 14216 prompt-for-key <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> :prompt :help :must-exist :default :default-string 14217 </code> 14218 </div> 14219 <div class="refentrytitle"></div> 14220 </p> 14221 <p> 14222 <div> 14223 <div class="refsect1" lang="en" xml:lang="en"> 14224 <a xmlns="http://www.w3.org/1999/xhtml" id="id697144"></a> 14225 <div class="header">Description:</div> 14226 <p xmlns="http://www.w3.org/1999/xhtml"> 14227 This function prompts for a key, a vector of key-events, suitable for 14228 passing to any of the functions that manipulate key bindings (page 14229 29). If must-exist is true, then the key must be bound in the current 14230 environment, and the command currently bound is returned as the second 14231 value. 14232 </p> 14233 </div> 14234 </div> 14235 </p> 14236 <p> 14237 <div class="refentrytitle"> 14238 <a id="f_prompt-for-file"></a> 14239 <strong>[Function]</strong> 14240 <br></br> 14241 <code> 14242 prompt-for-file <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> :prompt :help :must-exist :default :default-string 14243 </code> 14244 </div> 14245 <div class="refentrytitle"></div> 14246 </p> 14247 <p> 14248 <div> 14249 <div class="refsect1" lang="en" xml:lang="en"> 14250 <a xmlns="http://www.w3.org/1999/xhtml" id="id697205"></a> 14251 <div class="header">Description:</div> 14252 <p xmlns="http://www.w3.org/1999/xhtml"> 14253 This function prompts for an acceptable filename. "Acceptable" means 14254 that it is a legal filename, and it exists if must-exist is 14255 non-nil. prompt-for-file returns a Common Lisp pathname. If the file 14256 exists as entered, then this returns it, otherwise it is merged with 14257 default as by merge-pathnames. 14258 </p> 14259 </div> 14260 </div> 14261 </p> 14262 <p> 14263 <div class="refentrytitle"> 14264 <a id="f_prompt-for-integer"></a> 14265 <strong>[Function]</strong> 14266 <br></br> 14267 <code> 14268 prompt-for-integer <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> :prompt :help :must-exist :default :default-string 14269 </code> 14270 </div> 14271 <div class="refentrytitle"></div> 14272 </p> 14273 <p> 14274 <div> 14275 <div class="refsect1" lang="en" xml:lang="en"> 14276 <a xmlns="http://www.w3.org/1999/xhtml" id="id697266"></a> 14277 <div class="header">Description:</div> 14278 <p xmlns="http://www.w3.org/1999/xhtml"> 14279 This function prompts for a possibly signed integer. If must-exist is 14280 nil, then prompt-for-integer returns the input as a string if it is 14281 not a valid integer. 14282 </p> 14283 </div> 14284 </div> 14285 </p> 14286 <p> 14287 <div class="refentrytitle"> 14288 <a id="f_prompt-for-keyword"></a> 14289 <strong>[Function]</strong> 14290 <br></br> 14291 <code> 14292 prompt-for-keyword string-tables <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> :prompt :help :must-exist :default :default-string 14293 </code> 14294 </div> 14295 <div class="refentrytitle"></div> 14296 </p> 14297 <p> 14298 <div> 14299 <div class="refsect1" lang="en" xml:lang="en"> 14300 <a xmlns="http://www.w3.org/1999/xhtml" id="id697325"></a> 14301 <div class="header">Description:</div> 14302 <p xmlns="http://www.w3.org/1999/xhtml"> 14303 This function prompts for a keyword with completion, using the string 14304 tables in the list string-tables. If must-exist is non-nil, then the 14305 result must be an unambiguous prefix of a string in one of the 14306 string-tables, and the returns the complete string even if only a 14307 prefix of the full string was typed. In addition, this returns the 14308 value of the corresponding entry in the string table as the second 14309 value. 14310 </p> 14311 <p xmlns="http://www.w3.org/1999/xhtml"> 14312 If must-exist is nil, then this function returns the string exactly as 14313 entered. The difference between prompt-for-keyword with must-exist 14314 nil, and prompt-for-string, is the user may complete the input using 14315 the Complete Parse and Complete Field commands. 14316 </p> 14317 </div> 14318 </div> 14319 </p> 14320 <p> 14321 <div class="refentrytitle"> 14322 <a id="f_prompt-for-expression"></a> 14323 <strong>[Function]</strong> 14324 <br></br> 14325 <code> 14326 prompt-for-expression <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> :prompt :help :must-exist :default :default-string 14327 </code> 14328 </div> 14329 <div class="refentrytitle"></div> 14330 </p> 14331 <p> 14332 <div> 14333 <div class="refsect1" lang="en" xml:lang="en"> 14334 <a xmlns="http://www.w3.org/1999/xhtml" id="id697392"></a> 14335 <div class="header">Description:</div> 14336 <p xmlns="http://www.w3.org/1999/xhtml"> 14337 This function reads a Lisp expression. If must-exist is nil, and a 14338 read error occurs, then this returns the string typed. 14339 </p> 14340 </div> 14341 </div> 14342 </p> 14343 <p> 14344 <div class="refentrytitle"> 14345 <a id="f_prompt-for-string"></a> 14346 <strong>[Function]</strong> 14347 <br></br> 14348 <code> 14349 prompt-for-string <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> :prompt :help :default :default-string 14350 </code> 14351 </div> 14352 <div class="refentrytitle"></div> 14353 </p> 14354 <p> 14355 <div> 14356 <div class="refsect1" lang="en" xml:lang="en"> 14357 <a xmlns="http://www.w3.org/1999/xhtml" id="id697452"></a> 14358 <div class="header">Description:</div> 14359 <p xmlns="http://www.w3.org/1999/xhtml"> 14360 This function prompts for a string; this cannot fail. 14361 </p> 14362 </div> 14363 </div> 14364 </p> 14365 <p> 14366 <div class="refentrytitle"> 14367 <a id="f_prompt-for-variable"></a> 14368 <strong>[Function]</strong> 14369 <br></br> 14370 <code> 14371 prompt-for-variable <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> :prompt :help :must-exist :default :default-string 14372 </code> 14373 </div> 14374 <div class="refentrytitle"></div> 14375 </p> 14376 <p> 14377 <div> 14378 <div class="refsect1" lang="en" xml:lang="en"> 14379 <a xmlns="http://www.w3.org/1999/xhtml" id="id697511"></a> 14380 <div class="header">Description:</div> 14381 <p xmlns="http://www.w3.org/1999/xhtml"> 14382 This function prompts for a variable name. If must-exist is non-nil, 14383 then the string must be a variable defined in the current environment, 14384 in which case the symbol name of the variable found is returned as the 14385 second value. 14386 </p> 14387 </div> 14388 </div> 14389 </p> 14390 <p> 14391 <div class="refentrytitle"> 14392 <a id="f_prompt-for-y-or-n"></a> 14393 <strong>[Function]</strong> 14394 <br></br> 14395 <code> 14396 prompt-for-y-or-n <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> :prompt :help :must-exist :default :default-string 14397 </code> 14398 </div> 14399 <div class="refentrytitle"></div> 14400 </p> 14401 <p> 14402 <div> 14403 <div class="refsect1" lang="en" xml:lang="en"> 14404 <a xmlns="http://www.w3.org/1999/xhtml" id="id697571"></a> 14405 <div class="header">Description:</div> 14406 <p xmlns="http://www.w3.org/1999/xhtml"> 14407 This prompts for logical key events :Y or :N, returning t or nil without waiting for 14408 confirmation. When the user types a confirmation key, this returns 14409 default if it is supplied. If must-exist is nil, this returns 14410 whatever key-event the user first types; however, if the user types 14411 one of the above key-events, this returns t or nil. This is analogous to 14412 the Common Lisp function y-or-n-p. 14413 </p> 14414 </div> 14415 </div> 14416 </p> 14417 <p> 14418 <div class="refentrytitle"> 14419 <a id="f_prompt-for-yes-or-no"></a> 14420 <strong>[Function]</strong> 14421 <br></br> 14422 <code> 14423 prompt-for-yes-or-no <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> :prompt :help :must-exist :default :default-string 14424 </code> 14425 </div> 14426 <div class="refentrytitle"></div> 14427 </p> 14428 <p> 14429 <div> 14430 <div class="refsect1" lang="en" xml:lang="en"> 14431 <a xmlns="http://www.w3.org/1999/xhtml" id="id697633"></a> 14432 <div class="header">Description:</div> 14433 <p xmlns="http://www.w3.org/1999/xhtml"> 14434 This function is to prompt-for-y-or-n as yes-or-no-p is to 14435 y-or-n-p. "Yes" or "No" must be typed out in full and confirmation 14436 must be given. 14437 </p> 14438 </div> 14439 </div> 14440 </p> 14441 <p> 14442 <div class="refentrytitle"> 14443 <a id="m_command-case"></a> 14444 <strong>[Macro]</strong> 14445 <br></br> 14446 <code> 14447 command-case ({key value}*){({({tag}*) | tag} help {form}*)}* 14448 </code> 14449 </div> 14450 <div class="refentrytitle"></div> 14451 </p> 14452 <p> 14453 <div> 14454 <div class="refsect1" lang="en" xml:lang="en"> 14455 <a xmlns="http://www.w3.org/1999/xhtml" id="id697688"></a> 14456 <div class="header">Description:</div> 14457 <p xmlns="http://www.w3.org/1999/xhtml"> 14458 This macro is analogous to the Common Lisp case macro. Commands such 14459 as Help use this to get a key-event, translate it to a 14460 character, and then to dispatch on the character to some case. In 14461 addition to character dispatching, this supports logical key-events 14462 (page 45) by using the input key-event directly without translating it 14463 to a character. Since the description of this macro is rather 14464 complex, first consider the following example: 14465 </p> 14466 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> 14467 14468 (defcommand "Save All Buffers" (p) 14469 "Give the User a chance to save each modified buffer." 14470 (dolist (b *buffer-list*) 14471 (select-buffer-command () b) 14472 (when (buffer-modified b) 14473 (command-case (:prompt "Save this buffer: [Y] " 14474 :help "Save buffer, or do something else:") 14475 ((:yes :confirm) 14476 "Save this buffer and go on to the next." 14477 (save-file-command () b)) 14478 (:no "Skip saving this buffer, and go on to the next.") 14479 ((:exit #\p) "Punt this silly loop." 14480 (return nil)))))) 14481 14482 </pre> 14483 <p xmlns="http://www.w3.org/1999/xhtml"> 14484 </p> 14485 <p xmlns="http://www.w3.org/1999/xhtml"> 14486 command-case prompts for a key-event and then executes the code in the 14487 first branch with a logical key-event or a character (called tags) 14488 matching the input. Each character must be a standard-character, one 14489 that satisfies the Common Lisp standard-char-p predicate, and the 14490 dispatching mechanism compares the input key-event to any character 14491 tags by mapping the key-event to a character with 14492 ext:key-event-char. If the tag is a logical key-event, then the search 14493 for an appropriate case compares the key-event read with the tag 14494 using logical-key-event-p. 14495 </p> 14496 <p xmlns="http://www.w3.org/1999/xhtml"> 14497 All uses of command-case have two default cases, :help and :abort. You 14498 can override these easily by specifying your own branches that include 14499 these logical key-event tags. The :help branch displays in a pop-up 14500 window the a description of the valid responses using the variously 14501 specified help strings. The :abort branch signals an editor-error. 14502 </p> 14503 <p xmlns="http://www.w3.org/1999/xhtml"> 14504 The key/value arguments control the prompting. The following are valid values: 14505 </p> 14506 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:help</span></i>--- 14507 The default :help case displays this string in a pop-up window. In 14508 addition it formats a description of the valid input including each 14509 case's help string. 14510 </p> 14511 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:prompt</span></i>--- 14512 This is the prompt used when reading the key-event. 14513 </p> 14514 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:bind</span></i>--- 14515 This specifies a variable to which the prompting mechanism binds the 14516 input key-event. Any case may reference this variable. If you wish 14517 to know what character corresponds to the key-event, use 14518 key-event-char. 14519 </p> 14520 <p xmlns="http://www.w3.org/1999/xhtml"> 14521 Instead of specifying a tag or list of tags, you may use t. This 14522 becomes the default branch, and its forms execute if no other branch 14523 is taken, including the default :help and :abort cases. This option has 14524 no helpstring, and the default :help case does not describe the default 14525 branch. Every command-case has a default branch; if none is specified, 14526 the macro includes one that beep's and reprompt's (see below). 14527 </p> 14528 <p xmlns="http://www.w3.org/1999/xhtml"> 14529 Within the body of command-case, there is a defined reprompt macro. It 14530 causes the prompting mechanism and dispatching mechanism to 14531 immediately repeat without further execution in the current branch. 14532 </p> 14533 </div> 14534 </div> 14535 </p> 14536 </div> 14537 <div class="sect2" lang="en" xml:lang="en"> 14538 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 14539 <div> 14540 <div> 14541 <h3 class="title"><a id="ControlOfParsingBehavior"></a>6.12.3. Control of Parsing Behavior</h3> 14542 </div> 14543 </div> 14544 </div> 14545 <p> 14546 <div class="refentrytitle"> 14547 <a id="hv_beep_on_ambiguity"></a> 14548 <strong>[Hemlock Variable]</strong> 14549 <br></br> 14550 <code> 14551 Beep On Ambiguity (initial value t) 14552 </code> 14553 </div> 14554 <div class="refentrytitle"></div> 14555 </p> 14556 <p> 14557 <div> 14558 <div class="refsect1" lang="en" xml:lang="en"> 14559 <a xmlns="http://www.w3.org/1999/xhtml" id="id697855"></a> 14560 <div class="header">Description:</div> 14561 <p xmlns="http://www.w3.org/1999/xhtml"> 14562 If this variable is true, then an attempt to complete a parse which is 14563 ambiguous will result in a "beep". 14564 </p> 14565 </div> 14566 </div> 14567 </p> 14568 </div> 14569 <div class="sect2" lang="en" xml:lang="en"> 14570 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 14571 <div> 14572 <div> 14573 <h3 class="title"><a id="DefiningNewPromptingFunctions"></a>6.12.4. Defining New Prompting Functions</h3> 14574 </div> 14575 </div> 14576 </div> 14577 <p xmlns="http://www.w3.org/1999/xhtml"> 14578 Prompting functionality is implemented by the function parse-for-something 14579 in cooperation with commands defined in "Echo Area" mode on the buffer associated 14580 with the echo area. You can implement new prompting functions by invoking 14581 parse-for-something with appropriate arguments. 14582 </p> 14583 <p> 14584 <div class="refentrytitle"> 14585 <a id="f_parse-for-something"></a> 14586 <strong>[Function]</strong> 14587 <br></br> 14588 <code> 14589 parse-for-something <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> 14590 </code> 14591 </div> 14592 <div class="refentrytitle"></div> 14593 </p> 14594 <p> 14595 <div> 14596 <div class="refsect1" lang="en" xml:lang="en"> 14597 <a xmlns="http://www.w3.org/1999/xhtml" id="id697931"></a> 14598 <div class="header">Description:</div> 14599 <p xmlns="http://www.w3.org/1999/xhtml"> 14600 This function enters a mode reading input from the user and echoing it in the echo area, and 14601 returns a value when done. The input is managed by commands bound in "Echo Area" mode on the 14602 buffer associated with the echo area. The following keyword arguments are accepted: 14603 </p> 14604 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term"><code class="code">:verification-function</code></span></i>--- 14605 This is invoked by the Confirm Parse command (page 52). It does most of 14606 the work when parsing prompted input. Confirm Parse (page 52) calls it 14607 with one argument, which is the string that the user typed so far. 14608 The function should return a list of values which are to be the result 14609 of the recursive edit, or nil indicating that the parse failed. In order 14610 to return zero values, a non-nil second value may be returned along with 14611 a nil first value. 14612 </p> 14613 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term"><code class="code">:string-tables</code></span></i>--- 14614 This is the list of string-tables, if any, that pertain to this parse. 14615 </p> 14616 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term"><code class="code">:value-must-exist</code></span></i>--- 14617 This is referred to by the verification function, and possibly some of the 14618 commands. 14619 </p> 14620 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term"><code class="code">:default</code></span></i>--- 14621 The string representing the default object when prompting the user. 14622 Confirm Parse supplies this to the parse verification function when the 14623 user input is empty. 14624 </p> 14625 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term"><code class="code">:default-string</code></span></i>--- 14626 When prompting the user, if :default is not specified, Hemlock displays 14627 this string as a representation of the default object; for example, 14628 when prompting for a buffer, this argument would be a default buffer name. 14629 </p> 14630 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term"><code class="code">:type</code></span></i>--- 14631 The kind of parse, e.g. :file, :keyword, :string. This tells the completion 14632 commands how to do completion, with :string disabling completion. 14633 </p> 14634 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term"><code class="code">:prompt</code></span></i>--- 14635 The prompt to display to the user. 14636 </p> 14637 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term"><code class="code">:help</code></span></i>--- 14638 The help string or function being used for the current parse. 14639 </p> 14640 </div> 14641 </div> 14642 </p> 14643 </div> 14644 <div class="sect2" lang="en" xml:lang="en"> 14645 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 14646 <div> 14647 <div> 14648 <h3 class="title"><a id="SomeEchoAreaCommands"></a>6.12.5. Some Echo Area Commands</h3> 14649 </div> 14650 </div> 14651 </div> 14652 <p xmlns="http://www.w3.org/1999/xhtml"> 14653 These are some of the Echo Area commands that coordinate with the 14654 prompting routines. Hemlock binds other commands specific to the Echo 14655 Area, but they are uninteresting to mention here, such as deleting to 14656 the beginning of the line or deleting backwards a word. 14657 </p> 14658 <p> 14659 <div class="refentrytitle"> 14660 <a id="c_help_on_parse"></a> 14661 <strong>[Command]</strong> 14662 <br></br> 14663 <code> 14664 Help On Parse (bound to Home, C-_ in Echo Area mode) 14665 </code> 14666 </div> 14667 <div class="refentrytitle"></div> 14668 </p> 14669 <p> 14670 <div> 14671 <div class="refsect1" lang="en" xml:lang="en"> 14672 <a xmlns="http://www.w3.org/1999/xhtml" id="id698153"></a> 14673 <div class="header">Description:</div> 14674 <p xmlns="http://www.w3.org/1999/xhtml"> 14675 Display the help text for the parse currently in progress. 14676 </p> 14677 </div> 14678 </div> 14679 </p> 14680 <p> 14681 <div class="refentrytitle"> 14682 <a id="c_complete_keyword"></a> 14683 <strong>[Command]</strong> 14684 <br></br> 14685 <code> 14686 Complete Keyword (bound to Escape in Echo Area mode) 14687 </code> 14688 </div> 14689 <div class="refentrytitle"></div> 14690 </p> 14691 <p> 14692 <div> 14693 <div class="refsect1" lang="en" xml:lang="en"> 14694 <a xmlns="http://www.w3.org/1999/xhtml" id="id698208"></a> 14695 <div class="header">Description:</div> 14696 <p xmlns="http://www.w3.org/1999/xhtml"> 14697 This attempts to complete the current region. 14698 It signals an editor-error if the input is ambiguous or incorrect. 14699 </p> 14700 </div> 14701 </div> 14702 </p> 14703 <p> 14704 <div class="refentrytitle"> 14705 <a id="c_complete_field"></a> 14706 <strong>[Command]</strong> 14707 <br></br> 14708 <code> 14709 Complete Field (bound to Space in Echo Area mode) 14710 </code> 14711 </div> 14712 <div class="refentrytitle"></div> 14713 </p> 14714 <p> 14715 <div> 14716 <div class="refsect1" lang="en" xml:lang="en"> 14717 <a xmlns="http://www.w3.org/1999/xhtml" id="id698264"></a> 14718 <div class="header">Description:</div> 14719 <p xmlns="http://www.w3.org/1999/xhtml"> 14720 Similar to <code class="code">Complete Keyword</code>, but only attempts to complete up to and 14721 including the first character in the keyword with a non-zero 14722 :parse-field-separator attribute. If there is no field separator then 14723 attempt to complete the entire keyword. If it is not a keyword parse 14724 then just self-insert. 14725 </p> 14726 </div> 14727 </div> 14728 </p> 14729 <p> 14730 <div class="refentrytitle"> 14731 <a id="c_confirm_parse"></a> 14732 <strong>[Command]</strong> 14733 <br></br> 14734 <code> 14735 Confirm Parse (bound to Return in Echo Area mode) 14736 </code> 14737 </div> 14738 <div class="refentrytitle"></div> 14739 </p> 14740 <p> 14741 <div> 14742 <div class="refsect1" lang="en" xml:lang="en"> 14743 <a xmlns="http://www.w3.org/1999/xhtml" id="id698324"></a> 14744 <div class="header">Description:</div> 14745 <p xmlns="http://www.w3.org/1999/xhtml"> 14746 Call the verification function with the current input. If it 14747 returns a non-nil value then that is returned as the value of the 14748 parse. A parse may return a nil value if the verification function 14749 returns a non-nil second value. 14750 </p> 14751 </div> 14752 </div> 14753 </p> 14754 </div> 14755 </div> 14756 <div class="sect1" lang="en" xml:lang="en"> 14757 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 14758 <div> 14759 <div> 14760 <h2 class="title" style="clear: both"><a id="Files"></a>6.13. Files</h2> 14761 </div> 14762 </div> 14763 </div> 14764 <p xmlns="http://www.w3.org/1999/xhtml"> 14765 This chapter discusses ways to read and write files at various 14766 levels---at marks, into regions, and into buffers. This also treats 14767 automatic mechanisms that affect the state of buffers in which files 14768 are read. 14769 </p> 14770 <div class="sect2" lang="en" xml:lang="en"> 14771 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 14772 <div> 14773 <div> 14774 <h3 class="title"><a id="FileOptionsAndTypeHooks"></a>6.13.1. File Options and Type Hooks</h3> 14775 </div> 14776 </div> 14777 </div> 14778 <p xmlns="http://www.w3.org/1999/xhtml"> 14779 The user specifies file options with a special syntax on the first 14780 line of a file. If the first line contains the string "-*-", 14781 then Hemlock interprets the text between the first such occurrence and 14782 the second, which must be contained in one line , as a list of 14783 "option: value" pairs separated by semicolons. The following is a 14784 typical example: 14785 </p> 14786 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> 14787 14788 ;;; -*- Mode: Lisp, Editor; Package: Hemlock -*- 14789 14790 </pre> 14791 <p xmlns="http://www.w3.org/1999/xhtml">See the Hemlock User's Manual for more details and predefined options. 14792 </p> 14793 <p xmlns="http://www.w3.org/1999/xhtml"> 14794 File type hooks are executed when Hemlock reads a file into a buffer 14795 based on the type of the pathname. When the user specifies a Mode 14796 file option that turns on a major mode, Hemlock ignores type hooks. 14797 This mechanism is mostly used as a simple means for turning on some 14798 appropriate default major mode. 14799 </p> 14800 <p> 14801 <div class="refentrytitle"> 14802 <a id="m_define-file-option"></a> 14803 <strong>[Macro]</strong> 14804 <br></br> 14805 <code> 14806 define-file-option name (buffer value) {declaration}* {form}* 14807 </code> 14808 </div> 14809 <div class="refentrytitle"></div> 14810 </p> 14811 <p> 14812 <div> 14813 <div class="refsect1" lang="en" xml:lang="en"> 14814 <a xmlns="http://www.w3.org/1999/xhtml" id="id698428"></a> 14815 <div class="header">Description:</div> 14816 <p xmlns="http://www.w3.org/1999/xhtml"> 14817 This defines a new file option with the string 14818 name name. Buffer and value specify variable names for the buffer and the 14819 option value string, and forms are evaluated with these bound. 14820 </p> 14821 </div> 14822 </div> 14823 </p> 14824 <p> 14825 <div class="refentrytitle"> 14826 <a id="m_define-file-type-hook"></a> 14827 <strong>[Macro]</strong> 14828 <br></br> 14829 <code> 14830 define-file-type-hook type-list (buffer type) {declaration}* {form}* 14831 </code> 14832 </div> 14833 <div class="refentrytitle"></div> 14834 </p> 14835 <p> 14836 <div> 14837 <div class="refsect1" lang="en" xml:lang="en"> 14838 <a xmlns="http://www.w3.org/1999/xhtml" id="id698485"></a> 14839 <div class="header">Description:</div> 14840 <p xmlns="http://www.w3.org/1999/xhtml"> 14841 This defines some code that process-file-options(below) executes when 14842 the file options fail to set a major mode. This associates each type, 14843 a string, in type-list with a routine that binds buffer to the 14844 buffer the file is in and type to the type of the pathname. 14845 </p> 14846 </div> 14847 </div> 14848 </p> 14849 <p> 14850 <div class="refentrytitle"> 14851 <a id="f_process-file-options"></a> 14852 <strong>[Function]</strong> 14853 <br></br> 14854 <code> 14855 process-file-options buffer <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> pathname 14856 </code> 14857 </div> 14858 <div class="refentrytitle"></div> 14859 </p> 14860 <p> 14861 <div> 14862 <div class="refsect1" lang="en" xml:lang="en"> 14863 <a xmlns="http://www.w3.org/1999/xhtml" id="id698545"></a> 14864 <div class="header">Description:</div> 14865 <p xmlns="http://www.w3.org/1999/xhtml"> 14866 This checks for file options in buffer and invokes handlers if there 14867 are any. Pathname defaults to buffer's pathname but may be nil. If 14868 there is no Mode file option that specifies a major mode, and pathname 14869 has a type, then this tries to invoke the appropriate file type 14870 hook. read-buffer-file calls this. 14871 </p> 14872 </div> 14873 </div> 14874 </p> 14875 </div> 14876 <div class="sect2" lang="en" xml:lang="en"> 14877 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 14878 <div> 14879 <div> 14880 <h3 class="title"><a id="PathnamesAndBuffers"></a>6.13.2. Pathnames and Buffers</h3> 14881 </div> 14882 </div> 14883 </div> 14884 <p xmlns="http://www.w3.org/1999/xhtml"> 14885 There is no good way to uniquely identify buffer names and pathnames. 14886 However, Hemlock has one way of mapping pathnames to buffer names that 14887 should be used for consistency among customizations and primitives. 14888 Independent of this, Hemlock provides a means for consistently 14889 generating prompting defaults when asking the user for pathnames. 14890 </p> 14891 <p> 14892 <div class="refentrytitle"> 14893 <a id="f_pathname-to-buffer-name"></a> 14894 <strong>[Function]</strong> 14895 <br></br> 14896 <code> 14897 pathname-to-buffer-name pathname 14898 </code> 14899 </div> 14900 <div class="refentrytitle"></div> 14901 </p> 14902 <p> 14903 <div> 14904 <div class="refsect1" lang="en" xml:lang="en"> 14905 <a xmlns="http://www.w3.org/1999/xhtml" id="id698619"></a> 14906 <div class="header">Description:</div> 14907 <p xmlns="http://www.w3.org/1999/xhtml"> 14908 This function returns a string of the form "file-namestring directory-namestring". 14909 </p> 14910 </div> 14911 </div> 14912 </p> 14913 <p> 14914 <div class="refentrytitle"> 14915 <a id="hv_pathname_defaults"></a> 14916 <strong>[Hemlock Variable]</strong> 14917 <br></br> 14918 <code> 14919 Pathname Defaults (initial value (pathname "gazonk.del")) 14920 </code> 14921 </div> 14922 <div class="refentrytitle"></div> 14923 </p> 14924 <p> 14925 <div> 14926 <div class="refsect1" lang="en" xml:lang="en"> 14927 <a xmlns="http://www.w3.org/1999/xhtml" id="id698675"></a> 14928 <div class="header">Description:</div> 14929 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 14930 </div> 14931 </div> 14932 </p> 14933 <p> 14934 <div class="refentrytitle"> 14935 <a id="hv_last_resort_pathname_defaults_function"></a> 14936 <strong>[Hemlock Variable]</strong> 14937 <br></br> 14938 <code> 14939 Last Resort Pathname Defaults Function 14940 </code> 14941 </div> 14942 <div class="refentrytitle"></div> 14943 </p> 14944 <p> 14945 <div> 14946 <div class="refsect1" lang="en" xml:lang="en"> 14947 <a xmlns="http://www.w3.org/1999/xhtml" id="id698730"></a> 14948 <div class="header">Description:</div> 14949 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 14950 </div> 14951 </div> 14952 </p> 14953 <p> 14954 <div class="refentrytitle"> 14955 <a id="hv_last_resort_pathname_defaults"></a> 14956 <strong>[Hemlock Variable]</strong> 14957 <br></br> 14958 <code> 14959 Last Resort Pathname Defaults (initial value (pathname "gazonk")) 14960 </code> 14961 </div> 14962 <div class="refentrytitle"></div> 14963 </p> 14964 <p> 14965 <div> 14966 <div class="refsect1" lang="en" xml:lang="en"> 14967 <a xmlns="http://www.w3.org/1999/xhtml" id="id698785"></a> 14968 <div class="header">Description:</div> 14969 <p xmlns="http://www.w3.org/1999/xhtml"> 14970 These variables control the computation of default pathnames when 14971 needed for promting the user. Pathname Defaults is a sticky 14972 default. See the Hemlock User's Manual for more details. 14973 </p> 14974 </div> 14975 </div> 14976 </p> 14977 <p> 14978 <div class="refentrytitle"> 14979 <a id="f_buffer-default-pathname"></a> 14980 <strong>[Function]</strong> 14981 <br></br> 14982 <code> 14983 buffer-default-pathname buffer 14984 </code> 14985 </div> 14986 <div class="refentrytitle"></div> 14987 </p> 14988 <p> 14989 <div> 14990 <div class="refsect1" lang="en" xml:lang="en"> 14991 <a xmlns="http://www.w3.org/1999/xhtml" id="id698841"></a> 14992 <div class="header">Description:</div> 14993 <p xmlns="http://www.w3.org/1999/xhtml"> 14994 This returns Buffer Pathname if it is bound. If it is not bound, and 14995 buffer's name is composed solely of alphnumeric characters, then 14996 return a pathname formed from buffer's name. If buffer's name has 14997 other characters in it, then return the value of Last Resort Pathname 14998 Defaults Function called on buffer. 14999 </p> 15000 </div> 15001 </div> 15002 </p> 15003 </div> 15004 <div class="sect2" lang="en" xml:lang="en"> 15005 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 15006 <div> 15007 <div> 15008 <h3 class="title"><a id="FileGroups"></a>6.13.3. File Groups</h3> 15009 </div> 15010 </div> 15011 </div> 15012 <p xmlns="http://www.w3.org/1999/xhtml"> 15013 Currently Hemlock doesn't have support for file groups. 15014 </p> 15015 </div> 15016 <div class="sect2" lang="en" xml:lang="en"> 15017 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 15018 <div> 15019 <div> 15020 <h3 class="title"><a id="FileReadingAndWriting"></a>6.13.4. File Reading and Writing</h3> 15021 </div> 15022 </div> 15023 </div> 15024 <p xmlns="http://www.w3.org/1999/xhtml"> 15025 Common Lisp pathnames are used by the file primitives. For probing, 15026 checking write dates, and so forth, all of the Common Lisp file 15027 functions are available. 15028 </p> 15029 <p> 15030 <div class="refentrytitle"> 15031 <a id="f_read-file"></a> 15032 <strong>[Function]</strong> 15033 <br></br> 15034 <code> 15035 read-file pathname mark 15036 </code> 15037 </div> 15038 <div class="refentrytitle"></div> 15039 </p> 15040 <p> 15041 <div> 15042 <div class="refsect1" lang="en" xml:lang="en"> 15043 <a xmlns="http://www.w3.org/1999/xhtml" id="id698930"></a> 15044 <div class="header">Description:</div> 15045 <p xmlns="http://www.w3.org/1999/xhtml"> 15046 This inserts the file named by pathname at mark. 15047 </p> 15048 </div> 15049 </div> 15050 </p> 15051 <p> 15052 <div class="refentrytitle"> 15053 <a id="f_write-file"></a> 15054 <strong>[Function]</strong> 15055 <br></br> 15056 <code> 15057 write-file region pathname <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> :keep-backup :append 15058 </code> 15059 </div> 15060 <div class="refentrytitle"></div> 15061 </p> 15062 <p> 15063 <div> 15064 <div class="refsect1" lang="en" xml:lang="en"> 15065 <a xmlns="http://www.w3.org/1999/xhtml" id="id698988"></a> 15066 <div class="header">Description:</div> 15067 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 15068 </div> 15069 </div> 15070 </p> 15071 <p> 15072 <div class="refentrytitle"> 15073 <a id="hv_keep_backup_files"></a> 15074 <strong>[Hemlock Variable]</strong> 15075 <br></br> 15076 <code> 15077 Keep Backup Files (initial value nil) 15078 </code> 15079 </div> 15080 <div class="refentrytitle"></div> 15081 </p> 15082 <p> 15083 <div> 15084 <div class="refsect1" lang="en" xml:lang="en"> 15085 <a xmlns="http://www.w3.org/1999/xhtml" id="id699043"></a> 15086 <div class="header">Description:</div> 15087 <p xmlns="http://www.w3.org/1999/xhtml"> 15088 This function writes the contents of region to the file named by 15089 pathname. This writes region using a stream as if it were opened with 15090 :if-exists supplied as :rename-and-delete. 15091 </p> 15092 <p xmlns="http://www.w3.org/1999/xhtml"> 15093 When keep-backup, which defaults to the value of Keep Backup Files, is 15094 non-nil, this opens the stream as if :if-exists were :rename. If 15095 append is non-nil, this writes the file as if it were opened 15096 with:if-exists supplied as :append. 15097 </p> 15098 <p xmlns="http://www.w3.org/1999/xhtml"> 15099 This signals an error if both append and keep-backup are supplied as non-nil. 15100 </p> 15101 </div> 15102 </div> 15103 </p> 15104 <p> 15105 <div class="refentrytitle"> 15106 <a id="f_write-buffer-file"></a> 15107 <strong>[Function]</strong> 15108 <br></br> 15109 <code> 15110 write-buffer-file buffer pathname 15111 </code> 15112 </div> 15113 <div class="refentrytitle"></div> 15114 </p> 15115 <p> 15116 <div> 15117 <div class="refsect1" lang="en" xml:lang="en"> 15118 <a xmlns="http://www.w3.org/1999/xhtml" id="id699109"></a> 15119 <div class="header">Description:</div> 15120 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 15121 </div> 15122 </div> 15123 </p> 15124 <p> 15125 <div class="refentrytitle"> 15126 <a id="hv_write_file_hook"></a> 15127 <strong>[Hemlock Variable]</strong> 15128 <br></br> 15129 <code> 15130 Write File Hook 15131 </code> 15132 </div> 15133 <div class="refentrytitle"></div> 15134 </p> 15135 <p> 15136 <div> 15137 <div class="refsect1" lang="en" xml:lang="en"> 15138 <a xmlns="http://www.w3.org/1999/xhtml" id="id699163"></a> 15139 <div class="header">Description:</div> 15140 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 15141 </div> 15142 </div> 15143 </p> 15144 <p> 15145 <div class="refentrytitle"> 15146 <a id="hv_add_newline_at_eof_on_writing_file"></a> 15147 <strong>[Hemlock Variable]</strong> 15148 <br></br> 15149 <code> 15150 Add Newline at EOF on Writing File (initial value :ask-user) 15151 </code> 15152 </div> 15153 <div class="refentrytitle"></div> 15154 </p> 15155 <p> 15156 <div> 15157 <div class="refsect1" lang="en" xml:lang="en"> 15158 <a xmlns="http://www.w3.org/1999/xhtml" id="id699218"></a> 15159 <div class="header">Description:</div> 15160 <p xmlns="http://www.w3.org/1999/xhtml"> 15161 write-buffer-file writes buffer to the file named by pathname 15162 including the following: 15163 </p> 15164 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 15165 <ul class="itemizedlist" type="disc"> 15166 <li class="listitem"> 15167 <p> 15168 It assumes pathname is somehow related to buffer's pathname: if 15169 the buffer's write date is not the same as pathname's, then this 15170 prompts the user for confirmation before overwriting the file. 15171 </p> 15172 </li> 15173 </ul> 15174 </div> 15175 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 15176 <ul class="itemizedlist" type="disc"> 15177 <li class="listitem"> 15178 <p> 15179 It consults Add Newline at EOF on Writing File (see Hemlock User's 15180 Manual for possible values) and interacts with the user if 15181 necessary. 15182 </p> 15183 </li> 15184 </ul> 15185 </div> 15186 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 15187 <ul class="itemizedlist" type="disc"> 15188 <li class="listitem"> 15189 <p> 15190 It sets Pathname Defaults, and after using write-file, 15191 marks buffer unmodified. 15192 </p> 15193 </li> 15194 </ul> 15195 </div> 15196 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 15197 <ul class="itemizedlist" type="disc"> 15198 <li class="listitem"> 15199 <p> 15200 It updates Buffer's pathname and write date. 15201 </p> 15202 </li> 15203 </ul> 15204 </div> 15205 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 15206 <ul class="itemizedlist" type="disc"> 15207 <li class="listitem"> 15208 <p> 15209 It renames the buffer according to the new pathname if possible. 15210 </p> 15211 </li> 15212 </ul> 15213 </div> 15214 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 15215 <ul class="itemizedlist" type="disc"> 15216 <li class="listitem"> 15217 <p> 15218 It invokes Write File Hook. 15219 </p> 15220 </li> 15221 </ul> 15222 </div> 15223 <p xmlns="http://www.w3.org/1999/xhtml"> 15224 Write File Hook is a list of functions that take the newly written buffer as an argument. 15225 </p> 15226 </div> 15227 </div> 15228 </p> 15229 <p> 15230 <div class="refentrytitle"> 15231 <a id="f_read-buffer-file"></a> 15232 <strong>[Function]</strong> 15233 <br></br> 15234 <code> 15235 read-buffer-file pathname buffer 15236 </code> 15237 </div> 15238 <div class="refentrytitle"></div> 15239 </p> 15240 <p> 15241 <div> 15242 <div class="refsect1" lang="en" xml:lang="en"> 15243 <a xmlns="http://www.w3.org/1999/xhtml" id="id699353"></a> 15244 <div class="header">Description:</div> 15245 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 15246 </div> 15247 </div> 15248 </p> 15249 <p> 15250 <div class="refentrytitle"> 15251 <a id="hv_read_file_hook"></a> 15252 <strong>[Hemlock Variable]</strong> 15253 <br></br> 15254 <code> 15255 Read File Hook 15256 </code> 15257 </div> 15258 <div class="refentrytitle"></div> 15259 </p> 15260 <p> 15261 <div> 15262 <div class="refsect1" lang="en" xml:lang="en"> 15263 <a xmlns="http://www.w3.org/1999/xhtml" id="id699407"></a> 15264 <div class="header">Description:</div> 15265 <p xmlns="http://www.w3.org/1999/xhtml"> 15266 read-buffer-file deletes buffer's region and uses read-file to read 15267 pathname into it, including the following: 15268 </p> 15269 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 15270 <ul class="itemizedlist" type="disc"> 15271 <li class="listitem"> 15272 <p> 15273 It sets buffer's write date to the file's write date if the file 15274 exists; otherwise, it messages that this is a new file and sets 15275 buffer's write date to nil. 15276 </p> 15277 </li> 15278 </ul> 15279 </div> 15280 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 15281 <ul class="itemizedlist" type="disc"> 15282 <li class="listitem"> 15283 <p> 15284 It moves buffer's point to the beginning. 15285 </p> 15286 </li> 15287 </ul> 15288 </div> 15289 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 15290 <ul class="itemizedlist" type="disc"> 15291 <li class="listitem"> 15292 <p> 15293 It sets buffer's unmodified status. 15294 </p> 15295 </li> 15296 </ul> 15297 </div> 15298 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 15299 <ul class="itemizedlist" type="disc"> 15300 <li class="listitem"> 15301 <p> 15302 It sets buffer's pathname to the result of probing pathname if the 15303 file exists; otherwise, this function sets buffer's pathname to the 15304 result of merging pathname with default-directory. 15305 </p> 15306 </li> 15307 </ul> 15308 </div> 15309 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 15310 <ul class="itemizedlist" type="disc"> 15311 <li class="listitem"> 15312 <p> 15313 It sets Pathname Defaults to the result of the previous item. 15314 </p> 15315 </li> 15316 </ul> 15317 </div> 15318 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 15319 <ul class="itemizedlist" type="disc"> 15320 <li class="listitem"> 15321 <p> 15322 It processes the file options. 15323 </p> 15324 </li> 15325 </ul> 15326 </div> 15327 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 15328 <ul class="itemizedlist" type="disc"> 15329 <li class="listitem"> 15330 <p> 15331 It invokes Read File Hook. 15332 </p> 15333 </li> 15334 </ul> 15335 </div> 15336 <p xmlns="http://www.w3.org/1999/xhtml"> 15337 Read File Hook is a list functions that take two arguments---the 15338 buffer read into and whether the file existed, t if so. 15339 </p> 15340 </div> 15341 </div> 15342 </p> 15343 </div> 15344 </div> 15345 <div class="sect1" lang="en" xml:lang="en"> 15346 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 15347 <div> 15348 <div> 15349 <h2 class="title" style="clear: both"><a id="HemlockProgrammingHemlockSLispEnvironment"></a>6.14. Hemlock's Lisp Environment</h2> 15350 </div> 15351 </div> 15352 </div> 15353 <p xmlns="http://www.w3.org/1999/xhtml"> 15354 This chapter is sort of a catch all for any functions and variables 15355 which concern Hemlock's interaction with the outside world. 15356 </p> 15357 <div class="sect2" lang="en" xml:lang="en"> 15358 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 15359 <div> 15360 <div> 15361 <h3 class="title"><a id="EnteringAndLeavingTheEditor"></a>6.14.1. Entering and Leaving the Editor</h3> 15362 </div> 15363 </div> 15364 </div> 15365 <p> 15366 <div class="refentrytitle"> 15367 <a id="f_ed"></a> 15368 <strong>[Function]</strong> 15369 <br></br> 15370 <code> 15371 ed <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> x 15372 </code> 15373 </div> 15374 <div class="refentrytitle"></div> 15375 </p> 15376 <p> 15377 <div> 15378 <div class="refsect1" lang="en" xml:lang="en"> 15379 <a xmlns="http://www.w3.org/1999/xhtml" id="id699584"></a> 15380 <div class="header">Description:</div> 15381 <p xmlns="http://www.w3.org/1999/xhtml"> 15382 This a standard Common Lisp function. If x is supplied and is a 15383 string or pathname, the file specified by x is visited in a hemlock 15384 view (opening a new window if necessary, otherwise bringing an 15385 existing window with the file to the front), and the hemlock view 15386 object is the return value from the function. 15387 </p> 15388 <p xmlns="http://www.w3.org/1999/xhtml"> 15389 If x is null, a new empty hemlock view is created and returned. 15390 </p> 15391 <p xmlns="http://www.w3.org/1999/xhtml"> 15392 If x is a symbol or a setf function name, it attempts to 15393 edit the definition of the name. In this last case, the 15394 function returns without waiting for the operation to complete 15395 (for example, it might put up a non-modal dialog asking the 15396 user to select one of multiple definitions) and hence the 15397 return value is always NIL. 15398 </p> 15399 </div> 15400 </div> 15401 </p> 15402 </div> 15403 <div class="sect2" lang="en" xml:lang="en"> 15404 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 15405 <div> 15406 <div> 15407 <h3 class="title"><a id="KeyboardInput"></a>6.14.2. Keyboard Input</h3> 15408 </div> 15409 </div> 15410 </div> 15411 <p> 15412 <div class="refentrytitle"> 15413 <a id="v_key-event-history"></a> 15414 <strong>[Variable]</strong> 15415 <br></br> 15416 <code> 15417 *key-event-history* 15418 </code> 15419 </div> 15420 <div class="refentrytitle"></div> 15421 </p> 15422 <p> 15423 <div> 15424 <div class="refsect1" lang="en" xml:lang="en"> 15425 <a xmlns="http://www.w3.org/1999/xhtml" id="id699663"></a> 15426 <div class="header">Description:</div> 15427 <p xmlns="http://www.w3.org/1999/xhtml"> 15428 This is a Hemlock ring buffer (see page 70) that holds the last 60 15429 key-events received. 15430 </p> 15431 </div> 15432 </div> 15433 </p> 15434 <p> 15435 <div class="refentrytitle"> 15436 <a id="f_last-key-event-typed"></a> 15437 <strong>[Function]</strong> 15438 <br></br> 15439 <code> 15440 last-key-event-typed 15441 </code> 15442 </div> 15443 <div class="refentrytitle"></div> 15444 </p> 15445 <p> 15446 <div> 15447 <div class="refsect1" lang="en" xml:lang="en"> 15448 <a xmlns="http://www.w3.org/1999/xhtml" id="id699718"></a> 15449 <div class="header">Description:</div> 15450 <p xmlns="http://www.w3.org/1999/xhtml"> 15451 This function returns the last key-event the user typed to invoke the current command. 15452 </p> 15453 </div> 15454 </div> 15455 </p> 15456 <p> 15457 <div class="refentrytitle"> 15458 <a id="f_last-char-typed"></a> 15459 <strong>[Function]</strong> 15460 <br></br> 15461 <code> 15462 last-char-typed 15463 </code> 15464 </div> 15465 <div class="refentrytitle"></div> 15466 </p> 15467 <p> 15468 <div> 15469 <div class="refsect1" lang="en" xml:lang="en"> 15470 <a xmlns="http://www.w3.org/1999/xhtml" id="id699772"></a> 15471 <div class="header">Description:</div> 15472 <p xmlns="http://www.w3.org/1999/xhtml"> 15473 This function returns the character corresponding to the last key event typed. 15474 </p> 15475 </div> 15476 </div> 15477 </p> 15478 </div> 15479 <div class="sect2" lang="en" xml:lang="en"> 15480 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 15481 <div> 15482 <div> 15483 <h3 class="title"><a id="HemlockStreams"></a>6.14.3. Hemlock Streams</h3> 15484 </div> 15485 </div> 15486 </div> 15487 <p xmlns="http://www.w3.org/1999/xhtml"> 15488 It is possible to create streams which output to or get input from a 15489 buffer. This mechanism is quite powerful and permits easy interfacing 15490 of Hemlock to Lisp. 15491 </p> 15492 <p xmlns="http://www.w3.org/1999/xhtml"> 15493 Note that operations on these streams operate directly on buffers, 15494 therefore they have the same restrictions as described <a class="ulink" href="HemlockProgrammer/Buffers" target="_top">here</a> 15495 for interacting with buffers from outside of the GUI thread. 15496 </p> 15497 <p> 15498 <div class="refentrytitle"> 15499 <a id="f_make-hemlock-output-stream"></a> 15500 <strong>[Function]</strong> 15501 <br></br> 15502 <code> 15503 make-hemlock-output-stream mark <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> buffered 15504 </code> 15505 </div> 15506 <div class="refentrytitle"></div> 15507 </p> 15508 <p> 15509 <div> 15510 <div class="refsect1" lang="en" xml:lang="en"> 15511 <a xmlns="http://www.w3.org/1999/xhtml" id="id699859"></a> 15512 <div class="header">Description:</div> 15513 <p xmlns="http://www.w3.org/1999/xhtml"> 15514 This function returns a stream that inserts at mark all 15515 output directed to it. It works best if mark is a left-inserting mark. 15516 Buffered controls whether the stream is buffered or not, and its valid values 15517 are the following keywords: 15518 </p> 15519 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:none</span></i>--- 15520 No buffering is done. This is the default. 15521 </p> 15522 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:line</span></i>--- 15523 The buffer is flushed whenever a newline is written or when it is 15524 explicitly done with force-output. 15525 </p> 15526 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:full</span></i>--- 15527 The stream is only brought up to date when it is explicitly 15528 done with force-output 15529 </p> 15530 </div> 15531 </div> 15532 </p> 15533 <p> 15534 <div class="refentrytitle"> 15535 <a id="f_hemlock-output-stream-p"></a> 15536 <strong>[Function]</strong> 15537 <br></br> 15538 <code> 15539 hemlock-output-stream-p object 15540 </code> 15541 </div> 15542 <div class="refentrytitle"></div> 15543 </p> 15544 <p> 15545 <div> 15546 <div class="refsect1" lang="en" xml:lang="en"> 15547 <a xmlns="http://www.w3.org/1999/xhtml" id="id699969"></a> 15548 <div class="header">Description:</div> 15549 <p xmlns="http://www.w3.org/1999/xhtml"> 15550 This function returns t if object is a hemlock-output-stream object. 15551 </p> 15552 </div> 15553 </div> 15554 </p> 15555 <p> 15556 <div class="refentrytitle"> 15557 <a id="f_make-hemlock-region-stream"></a> 15558 <strong>[Function]</strong> 15559 <br></br> 15560 <code> 15561 make-hemlock-region-stream region 15562 </code> 15563 </div> 15564 <div class="refentrytitle"></div> 15565 </p> 15566 <p> 15567 <div> 15568 <div class="refsect1" lang="en" xml:lang="en"> 15569 <a xmlns="http://www.w3.org/1999/xhtml" id="id700024"></a> 15570 <div class="header">Description:</div> 15571 <p xmlns="http://www.w3.org/1999/xhtml"> 15572 This function returns a stream from which the text in 15573 region can be read. 15574 </p> 15575 </div> 15576 </div> 15577 </p> 15578 <p> 15579 <div class="refentrytitle"> 15580 <a id="f_hemlock-region-stream-p"></a> 15581 <strong>[Function]</strong> 15582 <br></br> 15583 <code> 15584 hemlock-region-stream-p object 15585 </code> 15586 </div> 15587 <div class="refentrytitle"></div> 15588 </p> 15589 <p> 15590 <div> 15591 <div class="refsect1" lang="en" xml:lang="en"> 15592 <a xmlns="http://www.w3.org/1999/xhtml" id="id700080"></a> 15593 <div class="header">Description:</div> 15594 <p xmlns="http://www.w3.org/1999/xhtml"> 15595 This function returns t if object is a hemlock-region-stream object. 15596 </p> 15597 </div> 15598 </div> 15599 </p> 15600 <p> 15601 <div class="refentrytitle"> 15602 <a id="m_with-input-from-region"></a> 15603 <strong>[Macro]</strong> 15604 <br></br> 15605 <code> 15606 with-input-from-region (var region) {declaration}* {form}* 15607 </code> 15608 </div> 15609 <div class="refentrytitle"></div> 15610 </p> 15611 <p> 15612 <div> 15613 <div class="refsect1" lang="en" xml:lang="en"> 15614 <a xmlns="http://www.w3.org/1999/xhtml" id="id700136"></a> 15615 <div class="header">Description:</div> 15616 <p xmlns="http://www.w3.org/1999/xhtml"> 15617 While evaluating forms, binds var to a stream which returns input from region. 15618 </p> 15619 </div> 15620 </div> 15621 </p> 15622 <p> 15623 <div class="refentrytitle"> 15624 <a id="m_with-output-to-mark"></a> 15625 <strong>[Macro]</strong> 15626 <br></br> 15627 <code> 15628 with-output-to-mark (var mark [buffered]) {declaration}* {form}* 15629 </code> 15630 </div> 15631 <div class="refentrytitle"></div> 15632 </p> 15633 <p> 15634 <div> 15635 <div class="refsect1" lang="en" xml:lang="en"> 15636 <a xmlns="http://www.w3.org/1999/xhtml" id="id700191"></a> 15637 <div class="header">Description:</div> 15638 <p xmlns="http://www.w3.org/1999/xhtml"> 15639 During the evaluation of the forms, binds var to a stream which inserts 15640 output at the permanent mark. Buffered has the same meaning as for 15641 make-hemlock-output-stream. 15642 </p> 15643 </div> 15644 </div> 15645 </p> 15646 <p> 15647 <div class="refentrytitle"> 15648 <a id="m_with-pop-up-display"></a> 15649 <strong>[Macro]</strong> 15650 <br></br> 15651 <code> 15652 with-pop-up-display (var <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> height name) {declaration}* {form}* 15653 </code> 15654 </div> 15655 <div class="refentrytitle"></div> 15656 </p> 15657 <p> 15658 <div> 15659 <div class="refsect1" lang="en" xml:lang="en"> 15660 <a xmlns="http://www.w3.org/1999/xhtml" id="id700250"></a> 15661 <div class="header">Description:</div> 15662 <p xmlns="http://www.w3.org/1999/xhtml"> 15663 This macro executes forms in a context with var bound to a 15664 stream. Hemlock collects output to this stream and tries to pop up a 15665 display of the appropriate height containing all the output. When 15666 height is supplied, Hemlock creates the pop-up display immediately, 15667 forcing output on line breaks. This is useful for displaying information 15668 of temporary interest. 15669 </p> 15670 </div> 15671 </div> 15672 </p> 15673 </div> 15674 <div class="sect2" lang="en" xml:lang="en"> 15675 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 15676 <div> 15677 <div> 15678 <h3 class="title"><a id="InterfaceToTheErrorSystem"></a>6.14.4. Interface to the Error System</h3> 15679 </div> 15680 </div> 15681 </div> 15682 <p xmlns="http://www.w3.org/1999/xhtml"> 15683 Hemlock commands are executed from an event handler in the initial 15684 Cocoa thread. They are executed within a 15685 ccl::with-standard-abort-handling form, which means cl:abort, 15686 ccl:abort-break, ccl:throw-cancel will abort the current command only 15687 and exit the event handler in an orderly fashion. 15688 </p> 15689 <p xmlns="http://www.w3.org/1999/xhtml"> 15690 In addition, for now, lisp errors during command execution dump a 15691 backtrace in the system console and are otherwise handled as if by 15692 <code class="code">handle-lisp-errors</code> below, which means it is not possible to debug 15693 errors at the point of the error. Once Clozure CL has better support 15694 for debugging errors in the initial Cocoa thread, better Hemlock error 15695 handling will be provided that will allow for some way to debug. 15696 </p> 15697 <p> 15698 <div class="refentrytitle"> 15699 <a id="f_editor-error"></a> 15700 <strong>[Function]</strong> 15701 <br></br> 15702 <code> 15703 editor-error <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&rest</em> args 15704 </code> 15705 </div> 15706 <div class="refentrytitle"></div> 15707 </p> 15708 <p> 15709 <div> 15710 <div class="refsect1" lang="en" xml:lang="en"> 15711 <a xmlns="http://www.w3.org/1999/xhtml" id="id700339"></a> 15712 <div class="header">Description:</div> 15713 <p xmlns="http://www.w3.org/1999/xhtml"> 15714 This function is called to report minor errors to the user. These are 15715 errors that a normal user could encounter in the course of editing, 15716 such as a search failing or an attempt to delete past the end of the 15717 buffer. This function simply aborts the current command. Any args 15718 specified are used to format an error message to be placed in the echo 15719 area. This function never returns. 15720 </p> 15721 </div> 15722 </div> 15723 </p> 15724 <p> 15725 <div class="refentrytitle"> 15726 <a id="m_handle-lisp-errors"></a> 15727 <strong>[Macro]</strong> 15728 <br></br> 15729 <code> 15730 handle-lisp-errors {form}* 15731 </code> 15732 </div> 15733 <div class="refentrytitle"></div> 15734 </p> 15735 <p> 15736 <div> 15737 <div class="refsect1" lang="en" xml:lang="en"> 15738 <a xmlns="http://www.w3.org/1999/xhtml" id="id700397"></a> 15739 <div class="header">Description:</div> 15740 <p xmlns="http://www.w3.org/1999/xhtml"> 15741 Within the body of this macro any Lisp errors that occur are handled 15742 by displaying an error message in a dialog and aborting the current 15743 command, leaving the error text in the echo area. This macro should 15744 be wrapped around code which may get an error due to some action of 15745 the user --- for example, evaluating code fragments on the behalf of 15746 and supplied by the user. 15747 </p> 15748 </div> 15749 </div> 15750 </p> 15751 </div> 15752 <div class="sect2" lang="en" xml:lang="en"> 15753 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 15754 <div> 15755 <div> 15756 <h3 class="title"><a id="DefinitionEditing"></a>6.14.5. Definition Editing</h3> 15757 </div> 15758 </div> 15759 </div> 15760 <p xmlns="http://www.w3.org/1999/xhtml"> 15761 Hemlock provides commands for finding the definition of a function 15762 or variable and placing the user at the definition in a buffer. A 15763 function is provided to allow invoking this functionality outside 15764 of Hemlock. Note that this function is unusual in that it is 15765 it is safe to call outside of the command interpreter, and in fact 15766 it can be called from any thread. 15767 </p> 15768 <p> 15769 <div class="refentrytitle"> 15770 <a id="f_edit-definition"></a> 15771 <strong>[Function]</strong> 15772 <br></br> 15773 <code> 15774 edit-definition name 15775 </code> 15776 </div> 15777 <div class="refentrytitle"></div> 15778 </p> 15779 <p> 15780 <div> 15781 <div class="refsect1" lang="en" xml:lang="en"> 15782 <a xmlns="http://www.w3.org/1999/xhtml" id="id700472"></a> 15783 <div class="header">Description:</div> 15784 <p xmlns="http://www.w3.org/1999/xhtml"> 15785 This function tries to find the definition of <code class="code">name</code>, create 15786 or activate the window containing it, and scroll the view 15787 to show the definition. If there are multiple definitions 15788 available, the user is given a choice of which one to 15789 use. This function may return before the operation is complete. 15790 </p> 15791 </div> 15792 </div> 15793 </p> 15794 </div> 15795 <div class="sect2" lang="en" xml:lang="en"> 15796 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 15797 <div> 15798 <div> 15799 <h3 class="title"><a id="EventScheduling"></a>6.14.6. Event Scheduling</h3> 15800 </div> 15801 </div> 15802 </div> 15803 <p xmlns="http://www.w3.org/1999/xhtml"> 15804 No Event Scheduling functionality is provided at this time. 15805 </p> 15806 </div> 15807 <div class="sect2" lang="en" xml:lang="en"> 15808 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 15809 <div> 15810 <div> 15811 <h3 class="title"><a id="Miscellaneous"></a>6.14.7. Miscellaneous</h3> 15812 </div> 15813 </div> 15814 </div> 15815 <p> 15816 <div class="refentrytitle"> 15817 <a id="f_in-lisp"></a> 15818 <strong>[Function]</strong> 15819 <br></br> 15820 <code> 15821 in-lisp {form}* 15822 </code> 15823 </div> 15824 <div class="refentrytitle"></div> 15825 </p> 15826 <p> 15827 <div> 15828 <div class="refsect1" lang="en" xml:lang="en"> 15829 <a xmlns="http://www.w3.org/1999/xhtml" id="id700559"></a> 15830 <div class="header">Description:</div> 15831 <p xmlns="http://www.w3.org/1999/xhtml"> 15832 This evaluates forms inside handle-lisp-errors. It also binds 15833 *package* to the package named by Current Package if it is 15834 non-nil. Use this when evaluating Lisp code on behalf of the user. 15835 </p> 15836 </div> 15837 </div> 15838 </p> 15839 <p> 15840 <div class="refentrytitle"> 15841 <a id="m_do-alpha-chars"></a> 15842 <strong>[Macro]</strong> 15843 <br></br> 15844 <code> 15845 do-alpha-chars (var kind [result]) {form}* 15846 </code> 15847 </div> 15848 <div class="refentrytitle"></div> 15849 </p> 15850 <p> 15851 <div> 15852 <div class="refsect1" lang="en" xml:lang="en"> 15853 <a xmlns="http://www.w3.org/1999/xhtml" id="id700615"></a> 15854 <div class="header">Description:</div> 15855 <p xmlns="http://www.w3.org/1999/xhtml"> 15856 This iterates over alphabetic characters in Common Lisp binding var to 15857 each character in order as specified under character relations in 15858 Common Lisp the Language. Kind is one of:lower, :upper, or :both. When 15859 the user supplies :both, lowercase characters are processed first. 15860 </p> 15861 </div> 15862 </div> 15863 </p> 15864 </div> 15865 </div> 15866 <div class="sect1" lang="en" xml:lang="en"> 15867 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 15868 <div> 15869 <div> 15870 <h2 class="title" style="clear: both"><a id="HemlockProgrammingHighLevelTextPrimitives"></a>6.15. High-Level Text Primitives</h2> 15871 </div> 15872 </div> 15873 </div> 15874 <p xmlns="http://www.w3.org/1999/xhtml"> 15875 This chapter discusses primitives that operate on higher level text 15876 forms than characters and words. For English text, there are functions 15877 that know about sentence and paragraph structures, and for Lisp 15878 sources, there are functions that understand this language. This 15879 chapter also describes mechanisms for organizing file sections into 15880 logical pages and for formatting text forms. 15881 </p> 15882 <div class="sect2" lang="en" xml:lang="en"> 15883 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 15884 <div> 15885 <div> 15886 <h3 class="title"><a id="IndentingText"></a>6.15.1. Indenting Text</h3> 15887 </div> 15888 </div> 15889 </div> 15890 <p> 15891 <div class="refentrytitle"> 15892 <a id="hv_indent_function"></a> 15893 <strong>[Hemlock Variable]</strong> 15894 <br></br> 15895 <code> 15896 Indent Function (initial value tab-to-tab-stop) 15897 </code> 15898 </div> 15899 <div class="refentrytitle"></div> 15900 </p> 15901 <p> 15902 <div> 15903 <div class="refsect1" lang="en" xml:lang="en"> 15904 <a xmlns="http://www.w3.org/1999/xhtml" id="id700701"></a> 15905 <div class="header">Description:</div> 15906 <p xmlns="http://www.w3.org/1999/xhtml"> 15907 The value of this variable determines how indentation is done, and it 15908 is a function which is passed a mark as its argument. The function 15909 should indent the line that the mark points to. The function may move 15910 the mark around on the line. The mark will be :left-inserting. The 15911 default simply inserts a tab character at the mark. A function for 15912 Lisp mode probably moves the mark to the beginning of the line, 15913 deletes horizontal whitespace, and computes some appropriate 15914 indentation for Lisp code. 15915 </p> 15916 </div> 15917 </div> 15918 </p> 15919 <p> 15920 <div class="refentrytitle"> 15921 <a id="hv_indent_with_tabs"></a> 15922 <strong>[Hemlock Variable]</strong> 15923 <br></br> 15924 <code> 15925 Indent with Tabs (initial value nil) 15926 </code> 15927 </div> 15928 <div class="refentrytitle"></div> 15929 </p> 15930 <p> 15931 <div> 15932 <div class="refsect1" lang="en" xml:lang="en"> 15933 <a xmlns="http://www.w3.org/1999/xhtml" id="id700760"></a> 15934 <div class="header">Description:</div> 15935 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 15936 </div> 15937 </div> 15938 </p> 15939 <p> 15940 <div class="refentrytitle"> 15941 <a id="hv_spaces_per_tab"></a> 15942 <strong>[Hemlock Variable]</strong> 15943 <br></br> 15944 <code> 15945 Spaces per Tab (initial value 8) 15946 </code> 15947 </div> 15948 <div class="refentrytitle"></div> 15949 </p> 15950 <p> 15951 <div> 15952 <div class="refsect1" lang="en" xml:lang="en"> 15953 <a xmlns="http://www.w3.org/1999/xhtml" id="id700814"></a> 15954 <div class="header">Description:</div> 15955 <p xmlns="http://www.w3.org/1999/xhtml"> 15956 Indent with Tabs should be true if indenting should use tabs 15957 whenever possible. If nil, the default, it only uses spaces. 15958 Spaces per Tab defines the size of a tab. 15959 </p> 15960 </div> 15961 </div> 15962 </p> 15963 <p> 15964 <div class="refentrytitle"> 15965 <a id="f_indent-region"></a> 15966 <strong>[Function]</strong> 15967 <br></br> 15968 <code> 15969 indent-region region 15970 </code> 15971 </div> 15972 <div class="refentrytitle"></div> 15973 </p> 15974 <p> 15975 <div> 15976 <div class="refsect1" lang="en" xml:lang="en"> 15977 <a xmlns="http://www.w3.org/1999/xhtml" id="id700870"></a> 15978 <div class="header">Description:</div> 15979 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 15980 </div> 15981 </div> 15982 </p> 15983 <p> 15984 <div class="refentrytitle"> 15985 <a id="f_indent-region-for-commands"></a> 15986 <strong>[Function]</strong> 15987 <br></br> 15988 <code> 15989 indent-region-for-commands region 15990 </code> 15991 </div> 15992 <div class="refentrytitle"></div> 15993 </p> 15994 <p> 15995 <div> 15996 <div class="refsect1" lang="en" xml:lang="en"> 15997 <a xmlns="http://www.w3.org/1999/xhtml" id="id700925"></a> 15998 <div class="header">Description:</div> 15999 <p xmlns="http://www.w3.org/1999/xhtml"> 16000 indent-region invokes the value of Indent Function on every line of 16001 region. indent-region-for-commands uses indent-region but first saves 16002 the region for the Undo command. 16003 </p> 16004 </div> 16005 </div> 16006 </p> 16007 <p> 16008 <div class="refentrytitle"> 16009 <a id="f_delete-horizontal-space"></a> 16010 <strong>[Function]</strong> 16011 <br></br> 16012 <code> 16013 delete-horizontal-space mark 16014 </code> 16015 </div> 16016 <div class="refentrytitle"></div> 16017 </p> 16018 <p> 16019 <div> 16020 <div class="refsect1" lang="en" xml:lang="en"> 16021 <a xmlns="http://www.w3.org/1999/xhtml" id="id700982"></a> 16022 <div class="header">Description:</div> 16023 <p xmlns="http://www.w3.org/1999/xhtml"> 16024 This deletes all characters on either side of mark with a Space attribute (see section 9.5) 16025 of 1. 16026 </p> 16027 </div> 16028 </div> 16029 </p> 16030 </div> 16031 <div class="sect2" lang="en" xml:lang="en"> 16032 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 16033 <div> 16034 <div> 16035 <h3 class="title"><a id="LispTextBuffers"></a>6.15.2. Lisp Text Buffers</h3> 16036 </div> 16037 </div> 16038 </div> 16039 <p xmlns="http://www.w3.org/1999/xhtml"> 16040 Hemlock bases its Lisp primitives on parsing a block of the buffer and 16041 annotating lines as to what kind of Lisp syntax occurs on the line or 16042 what kind of form a mark might be in (for example, string, comment, 16043 list, etc.). These do not work well if the block of parsed forms is 16044 exceeded when moving marks around these forms, but the block that gets 16045 parsed is somewhat programmable. 16046 </p> 16047 <p xmlns="http://www.w3.org/1999/xhtml"> 16048 There is also a notion of a top level form which this documentation 16049 often uses synonymously with defun, meaning a Lisp form occurring in a 16050 source file delimited by parentheses with the opening parenthesis at 16051 the beginning of some line. The names of the functions include this 16052 inconsistency. 16053 </p> 16054 <p> 16055 <div class="refentrytitle"> 16056 <a id="f_pre-command-parse-check"></a> 16057 <strong>[Function]</strong> 16058 <br></br> 16059 <code> 16060 pre-command-parse-check mark for-sure 16061 </code> 16062 </div> 16063 <div class="refentrytitle"></div> 16064 </p> 16065 <p> 16066 <div> 16067 <div class="refsect1" lang="en" xml:lang="en"> 16068 <a xmlns="http://www.w3.org/1999/xhtml" id="id701062"></a> 16069 <div class="header">Description:</div> 16070 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 16071 </div> 16072 </div> 16073 </p> 16074 <p> 16075 <div class="refentrytitle"> 16076 <a id="hv_parse_start_function"></a> 16077 <strong>[Hemlock Variable]</strong> 16078 <br></br> 16079 <code> 16080 Parse Start Function (initial value start-of-parse-block) 16081 </code> 16082 </div> 16083 <div class="refentrytitle"></div> 16084 </p> 16085 <p> 16086 <div> 16087 <div class="refsect1" lang="en" xml:lang="en"> 16088 <a xmlns="http://www.w3.org/1999/xhtml" id="id701116"></a> 16089 <div class="header">Description:</div> 16090 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 16091 </div> 16092 </div> 16093 </p> 16094 <p> 16095 <div class="refentrytitle"> 16096 <a id="hv_parse_end_function"></a> 16097 <strong>[Hemlock Variable]</strong> 16098 <br></br> 16099 <code> 16100 Parse End Function (initial value end-of-parse-block) 16101 </code> 16102 </div> 16103 <div class="refentrytitle"></div> 16104 </p> 16105 <p> 16106 <div> 16107 <div class="refsect1" lang="en" xml:lang="en"> 16108 <a xmlns="http://www.w3.org/1999/xhtml" id="id701170"></a> 16109 <div class="header">Description:</div> 16110 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 16111 </div> 16112 </div> 16113 </p> 16114 <p> 16115 <div class="refentrytitle"> 16116 <a id="hv_minimum_lines_parsed"></a> 16117 <strong>[Hemlock Variable]</strong> 16118 <br></br> 16119 <code> 16120 Minimum Lines Parsed (initial value 50) 16121 </code> 16122 </div> 16123 <div class="refentrytitle"></div> 16124 </p> 16125 <p> 16126 <div> 16127 <div class="refsect1" lang="en" xml:lang="en"> 16128 <a xmlns="http://www.w3.org/1999/xhtml" id="id701225"></a> 16129 <div class="header">Description:</div> 16130 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 16131 </div> 16132 </div> 16133 </p> 16134 <p> 16135 <div class="refentrytitle"> 16136 <a id="hv_maximum_lines_parsed"></a> 16137 <strong>[Hemlock Variable]</strong> 16138 <br></br> 16139 <code> 16140 Maximum Lines Parsed (initial value 500) 16141 </code> 16142 </div> 16143 <div class="refentrytitle"></div> 16144 </p> 16145 <p> 16146 <div> 16147 <div class="refsect1" lang="en" xml:lang="en"> 16148 <a xmlns="http://www.w3.org/1999/xhtml" id="id701279"></a> 16149 <div class="header">Description:</div> 16150 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 16151 </div> 16152 </div> 16153 </p> 16154 <p> 16155 <div class="refentrytitle"> 16156 <a id="hv_defun_parse_goal"></a> 16157 <strong>[Hemlock Variable]</strong> 16158 <br></br> 16159 <code> 16160 Defun Parse Goal (initial value 2) 16161 </code> 16162 </div> 16163 <div class="refentrytitle"></div> 16164 </p> 16165 <p> 16166 <div> 16167 <div class="refsect1" lang="en" xml:lang="en"> 16168 <a xmlns="http://www.w3.org/1999/xhtml" id="id701334"></a> 16169 <div class="header">Description:</div> 16170 <p xmlns="http://www.w3.org/1999/xhtml"> 16171 pre-command-parse-check calls Parse Start Function and Parse End 16172 Function on mark to get two marks. It then parses all the lines 16173 between the marks including the complete lines they point into. When 16174 for-sure is non-nil, this parses the area regardless of any cached 16175 information about the lines. Every command that uses the following 16176 routines calls this before doing so. 16177 </p> 16178 <p xmlns="http://www.w3.org/1999/xhtml"> 16179 The default values of the start and end variables use Minimum Lines 16180 Parsed, Maximum Lines Parsed, and Defun Parse Goal to determine how 16181 big a region to parse. These two functions always include at least the 16182 minimum number of lines before and after the mark passed to them. They 16183 try to include Defun Parse Goal number of top level forms before and 16184 after the mark passed them, but these functions never return marks 16185 that include more than the maximum number of lines before or after the 16186 mark passed to them. 16187 </p> 16188 </div> 16189 </div> 16190 </p> 16191 <p> 16192 <div class="refentrytitle"> 16193 <a id="f_form-offset"></a> 16194 <strong>[Function]</strong> 16195 <br></br> 16196 <code> 16197 form-offset mark count 16198 </code> 16199 </div> 16200 <div class="refentrytitle"></div> 16201 </p> 16202 <p> 16203 <div> 16204 <div class="refsect1" lang="en" xml:lang="en"> 16205 <a xmlns="http://www.w3.org/1999/xhtml" id="id701399"></a> 16206 <div class="header">Description:</div> 16207 <p xmlns="http://www.w3.org/1999/xhtml"> 16208 This tries to move mark count forms forward if positive or -count 16209 forms backwards if negative. Mark is always moved. If there were 16210 enough forms in the appropriate direction, this returns mark, 16211 otherwise nil. 16212 </p> 16213 </div> 16214 </div> 16215 </p> 16216 <p> 16217 <div class="refentrytitle"> 16218 <a id="f_top-level-offset"></a> 16219 <strong>[Function]</strong> 16220 <br></br> 16221 <code> 16222 top-level-offset mark count 16223 </code> 16224 </div> 16225 <div class="refentrytitle"></div> 16226 </p> 16227 <p> 16228 <div> 16229 <div class="refsect1" lang="en" xml:lang="en"> 16230 <a xmlns="http://www.w3.org/1999/xhtml" id="id701456"></a> 16231 <div class="header">Description:</div> 16232 <p xmlns="http://www.w3.org/1999/xhtml"> 16233 This tries to move mark count top level forms forward if positive or 16234 -count top level forms backwards if negative. If there were enough top 16235 level forms in the appropriate direction, this returns mark, otherwise 16236 nil. Mark is moved only if this is successful. 16237 </p> 16238 </div> 16239 </div> 16240 </p> 16241 <p> 16242 <div class="refentrytitle"> 16243 <a id="f_mark-top-level-form"></a> 16244 <strong>[Function]</strong> 16245 <br></br> 16246 <code> 16247 mark-top-level-form mark1 mark2 16248 </code> 16249 </div> 16250 <div class="refentrytitle"></div> 16251 </p> 16252 <p> 16253 <div> 16254 <div class="refsect1" lang="en" xml:lang="en"> 16255 <a xmlns="http://www.w3.org/1999/xhtml" id="id701512"></a> 16256 <div class="header">Description:</div> 16257 <p xmlns="http://www.w3.org/1999/xhtml"> 16258 This moves mark1 and mark2 to the beginning and end, respectively, of 16259 the current or next top level form. Mark1 is used as a reference to 16260 start looking. The marks may be altered even if unsuccessful. If 16261 successful, return mark2, else nil. Mark2 is left at the beginning of 16262 the line following the top level form if possible, but if the last 16263 line has text after the closing parenthesis, this leaves the mark 16264 immediately after the form. 16265 </p> 16266 </div> 16267 </div> 16268 </p> 16269 <p> 16270 <div class="refentrytitle"> 16271 <a id="f_defun-region"></a> 16272 <strong>[Function]</strong> 16273 <br></br> 16274 <code> 16275 defun-region mark 16276 </code> 16277 </div> 16278 <div class="refentrytitle"></div> 16279 </p> 16280 <p> 16281 <div> 16282 <div class="refsect1" lang="en" xml:lang="en"> 16283 <a xmlns="http://www.w3.org/1999/xhtml" id="id701570"></a> 16284 <div class="header">Description:</div> 16285 <p xmlns="http://www.w3.org/1999/xhtml"> 16286 This returns a region around the current or next defun with respect to 16287 mark. Mark is not used to form the region. If there is no appropriate 16288 top level form, this signals an editor-error. This calls 16289 pre-command-parse-check first. 16290 </p> 16291 </div> 16292 </div> 16293 </p> 16294 <p> 16295 <div class="refentrytitle"> 16296 <a id="f_inside-defun-p"></a> 16297 <strong>[Function]</strong> 16298 <br></br> 16299 <code> 16300 inside-defun-p mark 16301 </code> 16302 </div> 16303 <div class="refentrytitle"></div> 16304 </p> 16305 <p> 16306 <div> 16307 <div class="refsect1" lang="en" xml:lang="en"> 16308 <a xmlns="http://www.w3.org/1999/xhtml" id="id701626"></a> 16309 <div class="header">Description:</div> 16310 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 16311 </div> 16312 </div> 16313 </p> 16314 <p> 16315 <div class="refentrytitle"> 16316 <a id="f_start-defun-p"></a> 16317 <strong>[Function]</strong> 16318 <br></br> 16319 <code> 16320 start-defun-p mark 16321 </code> 16322 </div> 16323 <div class="refentrytitle"></div> 16324 </p> 16325 <p> 16326 <div> 16327 <div class="refsect1" lang="en" xml:lang="en"> 16328 <a xmlns="http://www.w3.org/1999/xhtml" id="id701680"></a> 16329 <div class="header">Description:</div> 16330 <p xmlns="http://www.w3.org/1999/xhtml"> 16331 These return, respectively, whether mark is inside a top level form or 16332 at the beginning of a line immediately before a character whose Lisp 16333 Syntax (see section 9.5) value is :opening-paren. 16334 </p> 16335 </div> 16336 </div> 16337 </p> 16338 <p> 16339 <div class="refentrytitle"> 16340 <a id="f_forward-up-list"></a> 16341 <strong>[Function]</strong> 16342 <br></br> 16343 <code> 16344 forward-up-list mark 16345 </code> 16346 </div> 16347 <div class="refentrytitle"></div> 16348 </p> 16349 <p> 16350 <div> 16351 <div class="refsect1" lang="en" xml:lang="en"> 16352 <a xmlns="http://www.w3.org/1999/xhtml" id="id701736"></a> 16353 <div class="header">Description:</div> 16354 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 16355 </div> 16356 </div> 16357 </p> 16358 <p> 16359 <div class="refentrytitle"> 16360 <a id="f_backward-up-list"></a> 16361 <strong>[Function]</strong> 16362 <br></br> 16363 <code> 16364 backward-up-list mark 16365 </code> 16366 </div> 16367 <div class="refentrytitle"></div> 16368 </p> 16369 <p> 16370 <div> 16371 <div class="refsect1" lang="en" xml:lang="en"> 16372 <a xmlns="http://www.w3.org/1999/xhtml" id="id701791"></a> 16373 <div class="header">Description:</div> 16374 <p xmlns="http://www.w3.org/1999/xhtml"> 16375 Respectively, these move mark immediately past a character whose Lisp 16376 Syntax (see section 9.5) value is :closing-paren or immediately before 16377 a character whose Lisp Syntax value is :opening-paren. 16378 </p> 16379 </div> 16380 </div> 16381 </p> 16382 <p> 16383 <div class="refentrytitle"> 16384 <a id="f_valid-spot"></a> 16385 <strong>[Function]</strong> 16386 <br></br> 16387 <code> 16388 valid-spot mark forwardp 16389 </code> 16390 </div> 16391 <div class="refentrytitle"></div> 16392 </p> 16393 <p> 16394 <div> 16395 <div class="refsect1" lang="en" xml:lang="en"> 16396 <a xmlns="http://www.w3.org/1999/xhtml" id="id701846"></a> 16397 <div class="header">Description:</div> 16398 <p xmlns="http://www.w3.org/1999/xhtml"> 16399 This returns t or nil depending on whether the character indicated by 16400 mark is a valid spot. When forwardp is set, use the character after 16401 mark and vice versa. Valid spots exclude commented text, inside 16402 strings, and character quoting. 16403 </p> 16404 </div> 16405 </div> 16406 </p> 16407 <p> 16408 <div class="refentrytitle"> 16409 <a id="f_defindent"></a> 16410 <strong>[Function]</strong> 16411 <br></br> 16412 <code> 16413 defindent name count 16414 </code> 16415 </div> 16416 <div class="refentrytitle"></div> 16417 </p> 16418 <p> 16419 <div> 16420 <div class="refsect1" lang="en" xml:lang="en"> 16421 <a xmlns="http://www.w3.org/1999/xhtml" id="id701902"></a> 16422 <div class="header">Description:</div> 16423 <p xmlns="http://www.w3.org/1999/xhtml"> 16424 This defines the function with name to have count special 16425 arguments. indent-for-lisp, the value of Indent Function (see section 16426 15.1) in Lisp mode, uses this to specially indent these arguments. For 16427 example, do has two, with-open-file has one, etc. There are many of 16428 these defined by the system including definitions for special Hemlock 16429 forms. Name is a simple-string, case insensitive and purely textual 16430 (that is, not read by the Lisp reader); therefore, "with-a-mumble" is 16431 distinct from "mumble:with-a-mumble". 16432 </p> 16433 </div> 16434 </div> 16435 </p> 16436 </div> 16437 <div class="sect2" lang="en" xml:lang="en"> 16438 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 16439 <div> 16440 <div> 16441 <h3 class="title"><a id="EnglishTextBuffers"></a>6.15.3. English Text Buffers</h3> 16442 </div> 16443 </div> 16444 </div> 16445 <p xmlns="http://www.w3.org/1999/xhtml"> 16446 This section describes some routines that understand basic English 16447 language forms. 16448 </p> 16449 <p> 16450 <div class="refentrytitle"> 16451 <a id="f_word-offset"></a> 16452 <strong>[Function]</strong> 16453 <br></br> 16454 <code> 16455 word-offset mark count 16456 </code> 16457 </div> 16458 <div class="refentrytitle"></div> 16459 </p> 16460 <p> 16461 <div> 16462 <div class="refsect1" lang="en" xml:lang="en"> 16463 <a xmlns="http://www.w3.org/1999/xhtml" id="id701976"></a> 16464 <div class="header">Description:</div> 16465 <p xmlns="http://www.w3.org/1999/xhtml"> 16466 This moves mark count words forward (if positive) or backwards (if 16467 negative). If mark is in the middle of a word, that counts as one. If 16468 there were count (-count if negative) words in the appropriate 16469 direction, this returns mark, otherwise nil. This always moves mark. A 16470 word lies between two characters whose Word Delimiter attribute value 16471 is 1 (see section 9.5). 16472 </p> 16473 </div> 16474 </div> 16475 </p> 16476 <p> 16477 <div class="refentrytitle"> 16478 <a id="f_sentence-offset"></a> 16479 <strong>[Function]</strong> 16480 <br></br> 16481 <code> 16482 sentence-offset mark count 16483 </code> 16484 </div> 16485 <div class="refentrytitle"></div> 16486 </p> 16487 <p> 16488 <div> 16489 <div class="refsect1" lang="en" xml:lang="en"> 16490 <a xmlns="http://www.w3.org/1999/xhtml" id="id702034"></a> 16491 <div class="header">Description:</div> 16492 <p xmlns="http://www.w3.org/1999/xhtml"> 16493 This moves mark count sentences forward (if positive) or backwards (if negative). If mark is in the middle of a sentence, that counts as one. If there were count (-count if negative) sentences in the appropriate direction, this returns mark, otherwise nil. This always moves mark. 16494 </p> 16495 <p xmlns="http://www.w3.org/1999/xhtml"> 16496 A sentence ends with a character whose Sentence Terminator attribute 16497 is 1 followed by two spaces, a newline, or the end of the buffer. The 16498 terminating character is optionally followed by any number of 16499 characters whose Sentence Closing Char attribute is 1. A sentence 16500 begins after a previous sentence ends, at the beginning of a 16501 paragraph, or at the beginning of the buffer. 16502 </p> 16503 </div> 16504 </div> 16505 </p> 16506 <p> 16507 <div class="refentrytitle"> 16508 <a id="f_paragraph-offset"></a> 16509 <strong>[Function]</strong> 16510 <br></br> 16511 <code> 16512 paragraph-offset mark count <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> prefix 16513 </code> 16514 </div> 16515 <div class="refentrytitle"></div> 16516 </p> 16517 <p> 16518 <div> 16519 <div class="refsect1" lang="en" xml:lang="en"> 16520 <a xmlns="http://www.w3.org/1999/xhtml" id="id702101"></a> 16521 <div class="header">Description:</div> 16522 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 16523 </div> 16524 </div> 16525 </p> 16526 <p> 16527 <div class="refentrytitle"> 16528 <a id="hv_paragraph_delimiter_function"></a> 16529 <strong>[Hemlock Variable]</strong> 16530 <br></br> 16531 <code> 16532 Paragraph Delimiter Function (initial value ) 16533 </code> 16534 </div> 16535 <div class="refentrytitle"></div> 16536 </p> 16537 <p> 16538 <div> 16539 <div class="refsect1" lang="en" xml:lang="en"> 16540 <a xmlns="http://www.w3.org/1999/xhtml" id="id702157"></a> 16541 <div class="header">Description:</div> 16542 <p xmlns="http://www.w3.org/1999/xhtml"> 16543 This moves mark count paragraphs forward (if positive) or backwards 16544 (if negative). If mark is in the middle of a paragraph, that counts as 16545 one. If there were count (-count if negative) paragraphs in the 16546 appropriate direction, this returns mark, otherwise nil. This only 16547 moves mark if there were enough paragraphs. 16548 </p> 16549 <p xmlns="http://www.w3.org/1999/xhtml"> 16550 Paragraph Delimiter Function holds a function that takes a mark, 16551 typically at the beginning of a line, and returns whether or not the 16552 current line should break the paragraph. default-para-delim-function 16553 returns t if the next character, the first on the line, has a 16554 Paragraph Delimiter attribute value of 1. This is typically a space, 16555 for an indented paragraph, or a newline, for a block style. Some modes 16556 require a more complicated determinant; for example, Scribe modes adds 16557 some characters to the set and special cases certain formatting 16558 commands. 16559 </p> 16560 <p xmlns="http://www.w3.org/1999/xhtml"> 16561 Prefix defaults to Fill Prefix (see section 15.5), and the right 16562 prefix is necessary to correctly skip paragraphs. If prefix is 16563 non-nil, and a line begins with prefix, then the scanning process 16564 skips the prefix before invoking the Paragraph Delimiter 16565 Function. Note, when scanning for paragraph bounds, and prefix is 16566 non-nil, lines are potentially part of the paragraph regardless of 16567 whether they contain the prefix; only the result of invoking the 16568 delimiter function matters. 16569 </p> 16570 <p xmlns="http://www.w3.org/1999/xhtml"> 16571 The programmer should be aware of an idiom for finding the end of the 16572 current paragraph. Assume paragraphp is the result of moving mark one 16573 paragraph, then the following correctly determines whether there 16574 actually is a current paragraph: 16575 </p> 16576 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> 16577 16578 (or paragraphp 16579 (and (last-line-p mark) 16580 (end-line-p mark) 16581 (not (blank-line-p (mark-line mark))))) 16582 16583 </pre> 16584 <p xmlns="http://www.w3.org/1999/xhtml"> 16585 </p> 16586 <p xmlns="http://www.w3.org/1999/xhtml"> 16587 In this example mark is at the end of the last paragraph in the 16588 buffer, and there is no last newline character in the 16589 buffer. paragraph-offset would have returned nil since it could not 16590 skip any paragraphs since mark was at the end of the current and last 16591 paragraph. However, you still have found a current paragraph on which 16592 to operate. mark-paragraph understands this problem. 16593 </p> 16594 </div> 16595 </div> 16596 </p> 16597 <p> 16598 <div class="refentrytitle"> 16599 <a id="f_mark-paragraph"></a> 16600 <strong>[Function]</strong> 16601 <br></br> 16602 <code> 16603 mark-paragraph mark1 mark2 16604 </code> 16605 </div> 16606 <div class="refentrytitle"></div> 16607 </p> 16608 <p> 16609 <div> 16610 <div class="refsect1" lang="en" xml:lang="en"> 16611 <a xmlns="http://www.w3.org/1999/xhtml" id="id702249"></a> 16612 <div class="header">Description:</div> 16613 <p xmlns="http://www.w3.org/1999/xhtml"> 16614 This marks the next or current paragraph, setting mark1 to the 16615 beginning and mark2 to the end. This uses Fill Prefix (see section 16616 15.5). Mark1 is always on the first line of the paragraph, regardless 16617 of whether the previous line is blank. Mark2 is typically at the 16618 beginning of the line after the line the paragraph ends on, this 16619 returns mark2 on success. If this cannot find a paragraph, then the 16620 marks are left unmoved, and nil is returned. 16621 </p> 16622 </div> 16623 </div> 16624 </p> 16625 </div> 16626 <div class="sect2" lang="en" xml:lang="en"> 16627 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 16628 <div> 16629 <div> 16630 <h3 class="title"><a id="LogicalPages"></a>6.15.4. Logical Pages</h3> 16631 </div> 16632 </div> 16633 </div> 16634 <p xmlns="http://www.w3.org/1999/xhtml"> 16635 Logical pages are not supported at this time. 16636 </p> 16637 </div> 16638 <div class="sect2" lang="en" xml:lang="en"> 16639 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 16640 <div> 16641 <div> 16642 <h3 class="title"><a id="Filling"></a>6.15.5. Filling</h3> 16643 </div> 16644 </div> 16645 </div> 16646 <p xmlns="http://www.w3.org/1999/xhtml"> 16647 Filling is an operation on text that breaks long lines at word 16648 boundaries before a given column and merges shorter lines together in 16649 an attempt to make each line roughly the specified length. This is 16650 different from justification which tries to add whitespace in awkward 16651 places to make each line exactly the same length. Hemlock's filling 16652 optionally inserts a specified string at the beginning of each 16653 line. Also, it eliminates extra whitespace between lines and words, 16654 but it knows two spaces follow sentences (see section 15.3). 16655 </p> 16656 <p> 16657 <div class="refentrytitle"> 16658 <a id="hv_fill_column"></a> 16659 <strong>[Hemlock Variable]</strong> 16660 <br></br> 16661 <code> 16662 Fill Column (initial value 75) 16663 </code> 16664 </div> 16665 <div class="refentrytitle"></div> 16666 </p> 16667 <p> 16668 <div> 16669 <div class="refsect1" lang="en" xml:lang="en"> 16670 <a xmlns="http://www.w3.org/1999/xhtml" id="id702342"></a> 16671 <div class="header">Description:</div> 16672 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 16673 </div> 16674 </div> 16675 </p> 16676 <p> 16677 <div class="refentrytitle"> 16678 <a id="hv_fill_prefix"></a> 16679 <strong>[Hemlock Variable]</strong> 16680 <br></br> 16681 <code> 16682 Fill Prefix (initial value nil) 16683 </code> 16684 </div> 16685 <div class="refentrytitle"></div> 16686 </p> 16687 <p> 16688 <div> 16689 <div class="refsect1" lang="en" xml:lang="en"> 16690 <a xmlns="http://www.w3.org/1999/xhtml" id="id702396"></a> 16691 <div class="header">Description:</div> 16692 <p xmlns="http://www.w3.org/1999/xhtml"> 16693 These variables hold the default values of the prefix and column 16694 arguments to Hemlock's filling primitives. If Fill Prefix is nil, then 16695 there is no fill prefix. 16696 </p> 16697 </div> 16698 </div> 16699 </p> 16700 <p> 16701 <div class="refentrytitle"> 16702 <a id="f_fill-region"></a> 16703 <strong>[Function]</strong> 16704 <br></br> 16705 <code> 16706 fill-region region <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> prefix column 16707 </code> 16708 </div> 16709 <div class="refentrytitle"></div> 16710 </p> 16711 <p> 16712 <div> 16713 <div class="refsect1" lang="en" xml:lang="en"> 16714 <a xmlns="http://www.w3.org/1999/xhtml" id="id702455"></a> 16715 <div class="header">Description:</div> 16716 <p xmlns="http://www.w3.org/1999/xhtml"> 16717 This deletes any blank lines in region and fills it according to 16718 prefix and column. Prefix and column default to Fill Prefix and Fill 16719 Column. 16720 </p> 16721 </div> 16722 </div> 16723 </p> 16724 <p> 16725 <div class="refentrytitle"> 16726 <a id="f_fill-region-by-paragraphs"></a> 16727 <strong>[Function]</strong> 16728 <br></br> 16729 <code> 16730 fill-region-by-paragraphs region <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> prefix column 16731 </code> 16732 </div> 16733 <div class="refentrytitle"></div> 16734 </p> 16735 <p> 16736 <div> 16737 <div class="refsect1" lang="en" xml:lang="en"> 16738 <a xmlns="http://www.w3.org/1999/xhtml" id="id702515"></a> 16739 <div class="header">Description:</div> 16740 <p xmlns="http://www.w3.org/1999/xhtml"> 16741 This finds paragraphs (see section 15.3) within region and fills them 16742 with fill-region. This ignores blank lines between paragraphs. Prefix 16743 and column default to Fill Prefix and Fill Column. 16744 </p> 16745 </div> 16746 </div> 16747 </p> 16748 </div> 16749 </div> 16750 <div class="sect1" lang="en" xml:lang="en"> 16751 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 16752 <div> 16753 <div> 16754 <h2 class="title" style="clear: both"><a id="HemlockProgrammingUtilities"></a>6.16. Utilities</h2> 16755 </div> 16756 </div> 16757 </div> 16758 <p xmlns="http://www.w3.org/1999/xhtml"> 16759 This chapter describes a number of utilities for manipulating some 16760 types of objects Hemlock uses to record information. String-tables are 16761 used to store names of variables, commands, modes, and buffers. Ring 16762 lists can be used to provide a kill ring, recent command history, or 16763 other user-visible features. 16764 </p> 16765 <div class="sect2" lang="en" xml:lang="en"> 16766 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 16767 <div> 16768 <div> 16769 <h3 class="title"><a id="StringTableFunctions"></a>6.16.1. String-table Functions</h3> 16770 </div> 16771 </div> 16772 </div> 16773 <p xmlns="http://www.w3.org/1999/xhtml"> 16774 String tables are similar to Common Lisp hash tables in that they 16775 associate a value with an object. There are a few useful differences: 16776 in a string table the key is always a case insensitive string, and 16777 primitives are provided to facilitate keyword completion and 16778 recognition. Any type of string may be added to a string table, but 16779 the string table functions always return simple-string's. 16780 </p> 16781 <p xmlns="http://www.w3.org/1999/xhtml"> 16782 A string entry in one of these tables may be thought of as being 16783 separated into fields or keywords. The interface provides keyword 16784 completion and recognition which is primarily used to implement some 16785 Echo Area commands. These routines perform a prefix match on a 16786 field-by-field basis allowing the ambiguous specification of earlier 16787 fields while going on to enter later fields. While string tables may 16788 use any string-char as a separator, the use of characters other than 16789 space may make the Echo Area commands fail or work unexpectedly. 16790 </p> 16791 <p> 16792 <div class="refentrytitle"> 16793 <a id="f_make-string-table"></a> 16794 <strong>[Function]</strong> 16795 <br></br> 16796 <code> 16797 make-string-table 16798 </code> 16799 </div> 16800 <div class="refentrytitle"></div> 16801 </p> 16802 <p> 16803 <div> 16804 <div class="refsect1" lang="en" xml:lang="en"> 16805 <a xmlns="http://www.w3.org/1999/xhtml" id="id702614"></a> 16806 <div class="header">Description:</div> 16807 <p xmlns="http://www.w3.org/1999/xhtml"> 16808 This function creates an empty string table that uses separator as the 16809 character, which must be a string-char, that distinguishes 16810 fields. Initial-contents specifies an initial set of strings and their 16811 values in the form of a dotted a-list, for example: 16812 </p> 16813 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> 16814 16815 '(("Global" . t) ("Mode" . t) ("Buffer" . t)) 16816 16817 </pre> 16818 <p xmlns="http://www.w3.org/1999/xhtml"> 16819 </p> 16820 </div> 16821 </div> 16822 </p> 16823 <p> 16824 <div class="refentrytitle"> 16825 <a id="f_string-table-p"></a> 16826 <strong>[Function]</strong> 16827 <br></br> 16828 <code> 16829 string-table-p string-table 16830 </code> 16831 </div> 16832 <div class="refentrytitle"></div> 16833 </p> 16834 <p> 16835 <div> 16836 <div class="refsect1" lang="en" xml:lang="en"> 16837 <a xmlns="http://www.w3.org/1999/xhtml" id="id702677"></a> 16838 <div class="header">Description:</div> 16839 <p xmlns="http://www.w3.org/1999/xhtml"> 16840 This function returns t if string-table is a string-table object, 16841 otherwise nil. 16842 </p> 16843 </div> 16844 </div> 16845 </p> 16846 <p> 16847 <div class="refentrytitle"> 16848 <a id="f_string-table-separator"></a> 16849 <strong>[Function]</strong> 16850 <br></br> 16851 <code> 16852 string-table-separator string-table 16853 </code> 16854 </div> 16855 <div class="refentrytitle"></div> 16856 </p> 16857 <p> 16858 <div> 16859 <div class="refsect1" lang="en" xml:lang="en"> 16860 <a xmlns="http://www.w3.org/1999/xhtml" id="id702732"></a> 16861 <div class="header">Description:</div> 16862 <p xmlns="http://www.w3.org/1999/xhtml"> 16863 This function returns the separator character given to 16864 make-string-table. 16865 </p> 16866 </div> 16867 </div> 16868 </p> 16869 <p> 16870 <div class="refentrytitle"> 16871 <a id="f_delete-string"></a> 16872 <strong>[Function]</strong> 16873 <br></br> 16874 <code> 16875 delete-string string table 16876 </code> 16877 </div> 16878 <div class="refentrytitle"></div> 16879 </p> 16880 <p> 16881 <div> 16882 <div class="refsect1" lang="en" xml:lang="en"> 16883 <a xmlns="http://www.w3.org/1999/xhtml" id="id702787"></a> 16884 <div class="header">Description:</div> 16885 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 16886 </div> 16887 </div> 16888 </p> 16889 <p> 16890 <div class="refentrytitle"> 16891 <a id="f_clrstring"></a> 16892 <strong>[Function]</strong> 16893 <br></br> 16894 <code> 16895 clrstring table 16896 </code> 16897 </div> 16898 <div class="refentrytitle"></div> 16899 </p> 16900 <p> 16901 <div> 16902 <div class="refsect1" lang="en" xml:lang="en"> 16903 <a xmlns="http://www.w3.org/1999/xhtml" id="id702841"></a> 16904 <div class="header">Description:</div> 16905 <p xmlns="http://www.w3.org/1999/xhtml"> 16906 delete-string removes any entry for string from the string-table 16907 table, returning t if there was an entry. clrstring removes all 16908 entries from table. 16909 </p> 16910 </div> 16911 </div> 16912 </p> 16913 <p> 16914 <div class="refentrytitle"> 16915 <a id="f_getstring"></a> 16916 <strong>[Function]</strong> 16917 <br></br> 16918 <code> 16919 getstring string table 16920 </code> 16921 </div> 16922 <div class="refentrytitle"></div> 16923 </p> 16924 <p> 16925 <div> 16926 <div class="refsect1" lang="en" xml:lang="en"> 16927 <a xmlns="http://www.w3.org/1999/xhtml" id="id702897"></a> 16928 <div class="header">Description:</div> 16929 <p xmlns="http://www.w3.org/1999/xhtml"> 16930 This function returns as multiple values, first the value 16931 corresponding to the string if it is found and nil if it isn't, and 16932 second t if it is found and nil if it isn't. 16933 </p> 16934 <p xmlns="http://www.w3.org/1999/xhtml"> 16935 This may be set with setf to add a new entry or to store a new value 16936 for a string. It is an error to try to insert a string with more than 16937 one field separator character occurring contiguously. 16938 </p> 16939 </div> 16940 </div> 16941 </p> 16942 <p> 16943 <div class="refentrytitle"> 16944 <a id="f_complete-string"></a> 16945 <strong>[Function]</strong> 16946 <br></br> 16947 <code> 16948 complete-string string tables 16949 </code> 16950 </div> 16951 <div class="refentrytitle"></div> 16952 </p> 16953 <p> 16954 <div> 16955 <div class="refsect1" lang="en" xml:lang="en"> 16956 <a xmlns="http://www.w3.org/1999/xhtml" id="id702957"></a> 16957 <div class="header">Description:</div> 16958 <p xmlns="http://www.w3.org/1999/xhtml"> 16959 This function completes string as far as possible over the list of 16960 tables, returning five values. It is an error for tables to have 16961 different separator characters. The five return values are as follows: 16962 </p> 16963 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 16964 <ul class="itemizedlist" type="disc"> 16965 <li class="listitem"> 16966 <p> 16967 The maximal completion of the string or nil if there is none. 16968 </p> 16969 </li> 16970 </ul> 16971 </div> 16972 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 16973 <ul class="itemizedlist" type="disc"> 16974 <li class="listitem"> 16975 <p> 16976 An indication of the usefulness of the returned string: 16977 </p> 16978 </li> 16979 </ul> 16980 </div> 16981 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:none</span></i>--- 16982 There is no completion of string. 16983 </p> 16984 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:complete</span></i>--- 16985 The completion is a valid entry, but other valid 16986 completions exist too. This occurs when the supplied string is an 16987 entry as well as initial substring of another entry. 16988 </p> 16989 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:unique</span></i>--- 16990 The completion is a valid entry and unique. 16991 </p> 16992 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:ambiguous</span></i>--- 16993 The completion is invalid; get-string would return nil 16994 and nil if given the returned string. 16995 </p> 16996 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 16997 <ul class="itemizedlist" type="disc"> 16998 <li class="listitem"> 16999 <p> 17000 The value of the string when the completion is :unique or 17001 :complete, otherwise nil. 17002 </p> 17003 </li> 17004 </ul> 17005 </div> 17006 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 17007 <ul class="itemizedlist" type="disc"> 17008 <li class="listitem"> 17009 <p> 17010 An index, or nil, into the completion returned, indicating where 17011 the addition of a single field to string ends. The command Complete 17012 Field uses this when the completion contains the addition to string 17013 of more than one field. 17014 </p> 17015 </li> 17016 </ul> 17017 </div> 17018 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 17019 <ul class="itemizedlist" type="disc"> 17020 <li class="listitem"> 17021 <p> 17022 An index to the separator following the first ambiguous field when 17023 the completion is :ambiguous or :complete, otherwise nil. 17024 </p> 17025 </li> 17026 </ul> 17027 </div> 17028 </div> 17029 </div> 17030 </p> 17031 <p> 17032 <div class="refentrytitle"> 17033 <a id="f_find-ambiguous"></a> 17034 <strong>[Function]</strong> 17035 <br></br> 17036 <code> 17037 find-ambiguous string table 17038 </code> 17039 </div> 17040 <div class="refentrytitle"></div> 17041 </p> 17042 <p> 17043 <div> 17044 <div class="refsect1" lang="en" xml:lang="en"> 17045 <a xmlns="http://www.w3.org/1999/xhtml" id="id703147"></a> 17046 <div class="header">Description:</div> 17047 <p xmlns="http://www.w3.org/1999/xhtml"> </p> 17048 </div> 17049 </div> 17050 </p> 17051 <p> 17052 <div class="refentrytitle"> 17053 <a id="f_find-containing"></a> 17054 <strong>[Function]</strong> 17055 <br></br> 17056 <code> 17057 find-containing string table 17058 </code> 17059 </div> 17060 <div class="refentrytitle"></div> 17061 </p> 17062 <p> 17063 <div> 17064 <div class="refsect1" lang="en" xml:lang="en"> 17065 <a xmlns="http://www.w3.org/1999/xhtml" id="id703201"></a> 17066 <div class="header">Description:</div> 17067 <p xmlns="http://www.w3.org/1999/xhtml"> 17068 find-ambiguous returns a list in alphabetical order of all the strings 17069 in table matching string. This considers an entry as matching if each 17070 field in string, taken in order, is an initial substring of the 17071 entry's fields; entry may have fields remaining. 17072 </p> 17073 <p xmlns="http://www.w3.org/1999/xhtml"> 17074 find-containing is similar, but it ignores the order of the fields in 17075 string, returning all strings in table matching any permutation of the 17076 fields in string. 17077 </p> 17078 </div> 17079 </div> 17080 </p> 17081 <p> 17082 <div class="refentrytitle"> 17083 <a id="m_do-strings"></a> 17084 <strong>[Macro]</strong> 17085 <br></br> 17086 <code> 17087 do-strings (string-var value-var table result) declaration tag statement 17088 </code> 17089 </div> 17090 <div class="refentrytitle"></div> 17091 </p> 17092 <p> 17093 <div> 17094 <div class="refsect1" lang="en" xml:lang="en"> 17095 <a xmlns="http://www.w3.org/1999/xhtml" id="id703263"></a> 17096 <div class="header">Description:</div> 17097 <p xmlns="http://www.w3.org/1999/xhtml"> 17098 This macro iterates over the strings in table in alphabetical 17099 order. On each iteration, it binds string-var to an entry's string and 17100 value-var to an entry's value. 17101 </p> 17102 </div> 17103 </div> 17104 </p> 17105 </div> 17106 <div class="sect2" lang="en" xml:lang="en"> 17107 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 17108 <div> 17109 <div> 17110 <h3 class="title"><a id="RingFunctions"></a>6.16.2. Ring Functions</h3> 17111 </div> 17112 </div> 17113 </div> 17114 <p xmlns="http://www.w3.org/1999/xhtml"> 17115 There are various purposes in an editor for which a ring of values can 17116 be used, so Hemlock provides a general ring buffer type. It is used 17117 for maintaining a ring of killed regions (see section 4.3), a ring of 17118 marks (see section 3.1), or a ring of command strings which various 17119 modes and commands maintain as a history mechanism. 17120 </p> 17121 <p> 17122 <div class="refentrytitle"> 17123 <a id="f_make-ring"></a> 17124 <strong>[Function]</strong> 17125 <br></br> 17126 <code> 17127 make-ring length <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> delete-function 17128 </code> 17129 </div> 17130 <div class="refentrytitle"></div> 17131 </p> 17132 <p> 17133 <div> 17134 <div class="refsect1" lang="en" xml:lang="en"> 17135 <a xmlns="http://www.w3.org/1999/xhtml" id="id703340"></a> 17136 <div class="header">Description:</div> 17137 <p xmlns="http://www.w3.org/1999/xhtml"> 17138 Makes an empty ring object capable of holding up to length Lisp 17139 objects. Delete-function is a function that each object is passed to 17140 before it falls off the end. Length must be greater than zero. 17141 </p> 17142 </div> 17143 </div> 17144 </p> 17145 <p> 17146 <div class="refentrytitle"> 17147 <a id="f_ringp"></a> 17148 <strong>[Function]</strong> 17149 <br></br> 17150 <code> 17151 ringp ring 17152 </code> 17153 </div> 17154 <div class="refentrytitle"></div> 17155 </p> 17156 <p> 17157 <div> 17158 <div class="refsect1" lang="en" xml:lang="en"> 17159 <a xmlns="http://www.w3.org/1999/xhtml" id="id703396"></a> 17160 <div class="header">Description:</div> 17161 <p xmlns="http://www.w3.org/1999/xhtml"> 17162 Returns t if ring is a ring object, otherwise nil. 17163 </p> 17164 </div> 17165 </div> 17166 </p> 17167 <p> 17168 <div class="refentrytitle"> 17169 <a id="f_ring-length"></a> 17170 <strong>[Function]</strong> 17171 <br></br> 17172 <code> 17173 ring-length ring 17174 </code> 17175 </div> 17176 <div class="refentrytitle"></div> 17177 </p> 17178 <p> 17179 <div> 17180 <div class="refsect1" lang="en" xml:lang="en"> 17181 <a xmlns="http://www.w3.org/1999/xhtml" id="id703450"></a> 17182 <div class="header">Description:</div> 17183 <p xmlns="http://www.w3.org/1999/xhtml"> 17184 Returns as multiple-values the number of elements which ring currently 17185 holds and the maximum number of elements which it may hold. 17186 </p> 17187 </div> 17188 </div> 17189 </p> 17190 <p> 17191 <div class="refentrytitle"> 17192 <a id="f_ring-ref"></a> 17193 <strong>[Function]</strong> 17194 <br></br> 17195 <code> 17196 ring-ref ring index 17197 </code> 17198 </div> 17199 <div class="refentrytitle"></div> 17200 </p> 17201 <p> 17202 <div> 17203 <div class="refsect1" lang="en" xml:lang="en"> 17204 <a xmlns="http://www.w3.org/1999/xhtml" id="id703506"></a> 17205 <div class="header">Description:</div> 17206 <p xmlns="http://www.w3.org/1999/xhtml"> 17207 Returns the index'th item in the ring, where zero is the index of the 17208 most recently pushed. This may be set with setf. 17209 </p> 17210 </div> 17211 </div> 17212 </p> 17213 <p> 17214 <div class="refentrytitle"> 17215 <a id="f_ring-push"></a> 17216 <strong>[Function]</strong> 17217 <br></br> 17218 <code> 17219 ring-push object ring 17220 </code> 17221 </div> 17222 <div class="refentrytitle"></div> 17223 </p> 17224 <p> 17225 <div> 17226 <div class="refsect1" lang="en" xml:lang="en"> 17227 <a xmlns="http://www.w3.org/1999/xhtml" id="id703561"></a> 17228 <div class="header">Description:</div> 17229 <p xmlns="http://www.w3.org/1999/xhtml"> 17230 Pushes object into ring, possibly causing the oldest item to go away. 17231 </p> 17232 </div> 17233 </div> 17234 </p> 17235 <p> 17236 <div class="refentrytitle"> 17237 <a id="f_ring-pop"></a> 17238 <strong>[Function]</strong> 17239 <br></br> 17240 <code> 17241 ring-pop ring 17242 </code> 17243 </div> 17244 <div class="refentrytitle"></div> 17245 </p> 17246 <p> 17247 <div> 17248 <div class="refsect1" lang="en" xml:lang="en"> 17249 <a xmlns="http://www.w3.org/1999/xhtml" id="id703616"></a> 17250 <div class="header">Description:</div> 17251 <p xmlns="http://www.w3.org/1999/xhtml"> 17252 Removes the most recently pushed object from ring and returns it. If 17253 the ring contains no elements then an error is signalled. 17254 </p> 17255 </div> 17256 </div> 17257 </p> 17258 <p> 17259 <div class="refentrytitle"> 17260 <a id="f_rotate-ring"></a> 17261 <strong>[Function]</strong> 17262 <br></br> 17263 <code> 17264 rotate-ring ring offset 17265 </code> 17266 </div> 17267 <div class="refentrytitle"></div> 17268 </p> 17269 <p> 17270 <div> 17271 <div class="refsect1" lang="en" xml:lang="en"> 17272 <a xmlns="http://www.w3.org/1999/xhtml" id="id703672"></a> 17273 <div class="header">Description:</div> 17274 <p xmlns="http://www.w3.org/1999/xhtml"> 17275 With a positive offset, rotates ring forward that many times. In a 17276 forward rotation the index of each element is reduced by one, except 17277 the one which initially had a zero index, which is made the last 17278 element. A negative offset rotates the ring the other way. 17279 </p> 17280 </div> 17281 </div> 17282 </p> 17283 </div> 17284 <div class="sect2" lang="en" xml:lang="en"> 17285 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 17286 <div> 17287 <div> 17288 <h3 class="title"><a id="UndoingCommands"></a>6.16.3. Undoing commands</h3> 17289 </div> 17290 </div> 17291 </div> 17292 <p xmlns="http://www.w3.org/1999/xhtml"> 17293 No API to the undo facility is provided at this time. 17294 </p> 17295 </div> 17296 </div> 17297 <div class="sect1" lang="en" xml:lang="en"> 17298 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 17299 <div> 17300 <div> 17301 <h2 class="title" style="clear: both"><a id="HemlockProgrammingMiscellaneous"></a>6.17. Miscellaneous</h2> 17302 </div> 17303 </div> 17304 </div> 17305 <p xmlns="http://www.w3.org/1999/xhtml"> 17306 This chapter is somewhat of a catch-all for comments and features that 17307 don't fit well anywhere else. 17308 </p> 17309 <div class="sect2" lang="en" xml:lang="en"> 17310 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 17311 <div> 17312 <div> 17313 <h3 class="title"><a id="KeyEvents"></a>6.17.1. Key-events</h3> 17314 </div> 17315 </div> 17316 </div> 17317 <div class="sect3" lang="en" xml:lang="en"> 17318 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 17319 <div> 17320 <div> 17321 <h4 class="title"><a id="KeyEventsIntroduction"></a>6.17.1.1. Introduction</h4> 17322 </div> 17323 </div> 17324 </div> 17325 <p xmlns="http://www.w3.org/1999/xhtml"> 17326 The canonical representation of editor input is a key-event 17327 structure. Users can bind commands to keys (see section 1.3.1), which 17328 are non-empty sequences of key-events. A key-event consists of 17329 an identifying token known as a keysym and a field of bits 17330 representing modifiers. Users define keysyms by supplying names 17331 that reflect the legends on their keyboard's keys. 17332 Users define modifier names similarly, but the system chooses the 17333 bit and mask for recognizing the modifier. You can 17334 use keysym and modifier names to textually specify key-events and 17335 Hemlock keys in a #k syntax. The following are some examples: 17336 </p> 17337 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> 17338 17339 #k"C-u" 17340 #k"Control-u" 17341 #k"c-m-z" 17342 #k"control-x meta-d" 17343 #k"a" 17344 #k"A" 17345 #k"Linefeed" 17346 17347 </pre> 17348 <p xmlns="http://www.w3.org/1999/xhtml"> 17349 </p> 17350 <p xmlns="http://www.w3.org/1999/xhtml"> 17351 This is convenient for use within code and in init files containing 17352 bind-key calls. 17353 </p> 17354 <p xmlns="http://www.w3.org/1999/xhtml"> 17355 The #k syntax is delimited by double quotes, but the system parses the 17356 contents rather than reading it as a Common Lisp string. Within the 17357 double quotes, spaces separate multiple key-events. A single key-event 17358 optionally starts with modifier names terminated by hyphens. Modifier 17359 names are alphabetic sequences of characters which the system uses 17360 case-insensitively. Following modifiers is a keysym name, which is 17361 case-insensitive if it consists of multiple characters, but if the 17362 name consists of only a single character, then it is case-sensitive. 17363 </p> 17364 <p xmlns="http://www.w3.org/1999/xhtml"> 17365 You can escape special characters --- hyphen, double quote, open angle 17366 bracket, close angle bracket, and space --- with a backslash, and you 17367 can specify a backslash by using two contiguously. You can use angle 17368 brackets to enclose a keysym name with many special characters in 17369 it. Between angle brackets appearing in a keysym name position, there 17370 are only two special characters, the closing angle bracket and 17371 backslash. 17372 </p> 17373 </div> 17374 <div class="sect3" lang="en" xml:lang="en"> 17375 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 17376 <div> 17377 <div> 17378 <h4 class="title"><a id="KeyEventsInterface"></a>6.17.1.2. Interface</h4> 17379 </div> 17380 </div> 17381 </div> 17382 <p> 17383 <div class="refentrytitle"> 17384 <a id="f_define-keysym"></a> 17385 <strong>[Function]</strong> 17386 <br></br> 17387 <code> 17388 define-keysym keysym preferred-name <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&rest</em> other-names 17389 </code> 17390 </div> 17391 <div class="refentrytitle"></div> 17392 </p> 17393 <p> 17394 <div> 17395 <div class="refsect1" lang="en" xml:lang="en"> 17396 <a xmlns="http://www.w3.org/1999/xhtml" id="id703831"></a> 17397 <div class="header">Description:</div> 17398 <p xmlns="http://www.w3.org/1999/xhtml"> 17399 This function establishes a mapping from preferred-name to keysym for 17400 purposes of #k syntax. Other-names also map to keysym, but the system 17401 uses preferred-name when printing key-events. The names are 17402 case-insensitive simple-strings; however, if the string contains a 17403 single character, then it is used case-sensitively. Redefining a 17404 keysym or re-using names has undefined effects. 17405 </p> 17406 <p xmlns="http://www.w3.org/1999/xhtml"> 17407 Keysym can be any object, but generally it is either an integer 17408 representing the window-system code for the event, or a keyword 17409 which allows the mapping of the keysym to its code to be defined 17410 separately. 17411 </p> 17412 </div> 17413 </div> 17414 </p> 17415 <p> 17416 <div class="refentrytitle"> 17417 <a id="f_define-keysym-code"></a> 17418 <strong>[Function]</strong> 17419 <br></br> 17420 <code> 17421 define-keysym-code keysym code 17422 </code> 17423 </div> 17424 <div class="refentrytitle"></div> 17425 </p> 17426 <p> 17427 <div> 17428 <div class="refsect1" lang="en" xml:lang="en"> 17429 <a xmlns="http://www.w3.org/1999/xhtml" id="id703895"></a> 17430 <div class="header">Description:</div> 17431 <p xmlns="http://www.w3.org/1999/xhtml"> 17432 Defines the window-system code for the key event which in Hemlock is 17433 represented by keysym. 17434 </p> 17435 </div> 17436 </div> 17437 </p> 17438 <p> 17439 <div class="refentrytitle"> 17440 <a id="f_define-mouse-keysym"></a> 17441 <strong>[Function]</strong> 17442 <br></br> 17443 <code> 17444 define-mouse-keysym button keysym name shifted-bit event-key 17445 </code> 17446 </div> 17447 <div class="refentrytitle"></div> 17448 </p> 17449 <p> 17450 <div> 17451 <div class="refsect1" lang="en" xml:lang="en"> 17452 <a xmlns="http://www.w3.org/1999/xhtml" id="id703951"></a> 17453 <div class="header">Description:</div> 17454 <p xmlns="http://www.w3.org/1999/xhtml"> 17455 This function defines keysym named name for key-events representing 17456 mouse click events. Shifted-bit is a defined modifier name that 17457 translate-mouse-key-event sets in the key-event it returns whenever 17458 the shift bit is set in an incoming event. 17459 </p> 17460 </div> 17461 </div> 17462 </p> 17463 <p> 17464 <div class="refentrytitle"> 17465 <a id="f_name-keysym"></a> 17466 <strong>[Function]</strong> 17467 <br></br> 17468 <code> 17469 name-keysym name 17470 </code> 17471 </div> 17472 <div class="refentrytitle"></div> 17473 </p> 17474 <p> 17475 <div> 17476 <div class="refsect1" lang="en" xml:lang="en"> 17477 <a xmlns="http://www.w3.org/1999/xhtml" id="id704009"></a> 17478 <div class="header">Description:</div> 17479 <p xmlns="http://www.w3.org/1999/xhtml"> 17480 This function returns the keysym named name. If name is unknown, this 17481 returns nil. 17482 </p> 17483 </div> 17484 </div> 17485 </p> 17486 <p> 17487 <div class="refentrytitle"> 17488 <a id="f_keysym-names"></a> 17489 <strong>[Function]</strong> 17490 <br></br> 17491 <code> 17492 keysym-names keysym 17493 </code> 17494 </div> 17495 <div class="refentrytitle"></div> 17496 </p> 17497 <p> 17498 <div> 17499 <div class="refsect1" lang="en" xml:lang="en"> 17500 <a xmlns="http://www.w3.org/1999/xhtml" id="id704065"></a> 17501 <div class="header">Description:</div> 17502 <p xmlns="http://www.w3.org/1999/xhtml"> 17503 This function returns the list of all names for keysym. If keysym is 17504 undefined, this returns nil. 17505 </p> 17506 </div> 17507 </div> 17508 </p> 17509 <p> 17510 <div class="refentrytitle"> 17511 <a id="f_keysym-preferred-name"></a> 17512 <strong>[Function]</strong> 17513 <br></br> 17514 <code> 17515 keysym-preferred-name keysym 17516 </code> 17517 </div> 17518 <div class="refentrytitle"></div> 17519 </p> 17520 <p> 17521 <div> 17522 <div class="refsect1" lang="en" xml:lang="en"> 17523 <a xmlns="http://www.w3.org/1999/xhtml" id="id704121"></a> 17524 <div class="header">Description:</div> 17525 <p xmlns="http://www.w3.org/1999/xhtml"> 17526 This returns the preferred name for keysym, how it is typically 17527 printed. If keysym is undefined, this returns nil. 17528 </p> 17529 </div> 17530 </div> 17531 </p> 17532 <p> 17533 <div class="refentrytitle"> 17534 <a id="f_define-key-event-modifier"></a> 17535 <strong>[Function]</strong> 17536 <br></br> 17537 <code> 17538 define-key-event-modifier long-name short-name 17539 </code> 17540 </div> 17541 <div class="refentrytitle"></div> 17542 </p> 17543 <p> 17544 <div> 17545 <div class="refsect1" lang="en" xml:lang="en"> 17546 <a xmlns="http://www.w3.org/1999/xhtml" id="id704178"></a> 17547 <div class="header">Description:</div> 17548 <p xmlns="http://www.w3.org/1999/xhtml"> 17549 This establishes long-name and short-name as modifier names for 17550 purposes of specifying key-events in #k syntax. The names are 17551 case-insensitive strings. If either name is already defined, 17552 this signals an error. 17553 </p> 17554 <p xmlns="http://www.w3.org/1999/xhtml"> 17555 The system defines the following default modifiers (first the long 17556 name, then the short name): 17557 </p> 17558 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 17559 <ul class="itemizedlist" type="disc"> 17560 <li class="listitem"> 17561 <p> 17562 "Hyper", "H" 17563 </p> 17564 </li> 17565 <li class="listitem"> 17566 <p> 17567 "Super", "S" 17568 </p> 17569 </li> 17570 <li class="listitem"> 17571 <p> 17572 "Meta", "M" 17573 </p> 17574 </li> 17575 <li class="listitem"> 17576 <p> 17577 "Control", "C" 17578 </p> 17579 </li> 17580 <li class="listitem"> 17581 <p> 17582 "Shift", "Shift" 17583 </p> 17584 </li> 17585 <li class="listitem"> 17586 <p> 17587 "Lock", "Lock" 17588 </p> 17589 </li> 17590 </ul> 17591 </div> 17592 </div> 17593 </div> 17594 </p> 17595 <p> 17596 <div class="refentrytitle"> 17597 <a id="v_all-modifier-names"></a> 17598 <strong>[Variable]</strong> 17599 <br></br> 17600 <code> 17601 *all-modifier-names* 17602 </code> 17603 </div> 17604 <div class="refentrytitle"></div> 17605 </p> 17606 <p> 17607 <div> 17608 <div class="refsect1" lang="en" xml:lang="en"> 17609 <a xmlns="http://www.w3.org/1999/xhtml" id="id704293"></a> 17610 <div class="header">Description:</div> 17611 <p xmlns="http://www.w3.org/1999/xhtml"> 17612 This variable holds all the defined modifier names. 17613 </p> 17614 </div> 17615 </div> 17616 </p> 17617 <p> 17618 <div class="refentrytitle"> 17619 <a id="f_make-key-event-bits"></a> 17620 <strong>[Function]</strong> 17621 <br></br> 17622 <code> 17623 make-key-event-bits <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&rest</em> modifier-names 17624 </code> 17625 </div> 17626 <div class="refentrytitle"></div> 17627 </p> 17628 <p> 17629 <div> 17630 <div class="refsect1" lang="en" xml:lang="en"> 17631 <a xmlns="http://www.w3.org/1999/xhtml" id="id704353"></a> 17632 <div class="header">Description:</div> 17633 <p xmlns="http://www.w3.org/1999/xhtml"> 17634 This function returns bits suitable for make-key-event from the 17635 supplied modifier-names. If any name is undefined, this signals an 17636 error. 17637 </p> 17638 </div> 17639 </div> 17640 </p> 17641 <p> 17642 <div class="refentrytitle"> 17643 <a id="f_key-event-modifier-mask"></a> 17644 <strong>[Function]</strong> 17645 <br></br> 17646 <code> 17647 key-event-modifier-mask modifier-name 17648 </code> 17649 </div> 17650 <div class="refentrytitle"></div> 17651 </p> 17652 <p> 17653 <div> 17654 <div class="refsect1" lang="en" xml:lang="en"> 17655 <a xmlns="http://www.w3.org/1999/xhtml" id="id704410"></a> 17656 <div class="header">Description:</div> 17657 <p xmlns="http://www.w3.org/1999/xhtml"> 17658 This function returns a mask for modifier-name. This mask is suitable 17659 for use with key-event-bits. If modifier-name is undefined, this 17660 signals an error. 17661 </p> 17662 </div> 17663 </div> 17664 </p> 17665 <p> 17666 <div class="refentrytitle"> 17667 <a id="f_key-event-bits-modifiers"></a> 17668 <strong>[Function]</strong> 17669 <br></br> 17670 <code> 17671 key-event-bits-modifiers bits 17672 </code> 17673 </div> 17674 <div class="refentrytitle"></div> 17675 </p> 17676 <p> 17677 <div> 17678 <div class="refsect1" lang="en" xml:lang="en"> 17679 <a xmlns="http://www.w3.org/1999/xhtml" id="id704467"></a> 17680 <div class="header">Description:</div> 17681 <p xmlns="http://www.w3.org/1999/xhtml"> 17682 This returns a list of key-event modifier names, one for each modifier 17683 set in bits. 17684 </p> 17685 </div> 17686 </div> 17687 </p> 17688 <p> 17689 <div class="refentrytitle"> 17690 <a id="f_make-key-event"></a> 17691 <strong>[Function]</strong> 17692 <br></br> 17693 <code> 17694 make-key-event object bits 17695 </code> 17696 </div> 17697 <div class="refentrytitle"></div> 17698 </p> 17699 <p> 17700 <div> 17701 <div class="refsect1" lang="en" xml:lang="en"> 17702 <a xmlns="http://www.w3.org/1999/xhtml" id="id704523"></a> 17703 <div class="header">Description:</div> 17704 <p xmlns="http://www.w3.org/1999/xhtml"> 17705 This function returns a key-event described by object with 17706 bits. Object is one of keysym, string, or key-event. When object is a 17707 key-event, this uses key-event-keysym. You can form bits with 17708 make-key-event-bits or key-event-modifier-mask. 17709 </p> 17710 </div> 17711 </div> 17712 </p> 17713 <p> 17714 <div class="refentrytitle"> 17715 <a id="f_key-event-p"></a> 17716 <strong>[Function]</strong> 17717 <br></br> 17718 <code> 17719 key-event-p object 17720 </code> 17721 </div> 17722 <div class="refentrytitle"></div> 17723 </p> 17724 <p> 17725 <div> 17726 <div class="refsect1" lang="en" xml:lang="en"> 17727 <a xmlns="http://www.w3.org/1999/xhtml" id="id704581"></a> 17728 <div class="header">Description:</div> 17729 <p xmlns="http://www.w3.org/1999/xhtml"> 17730 This function returns whether object is a key-event. 17731 </p> 17732 </div> 17733 </div> 17734 </p> 17735 <p> 17736 <div class="refentrytitle"> 17737 <a id="f_key-event-bits"></a> 17738 <strong>[Function]</strong> 17739 <br></br> 17740 <code> 17741 key-event-bits key-event 17742 </code> 17743 </div> 17744 <div class="refentrytitle"></div> 17745 </p> 17746 <p> 17747 <div> 17748 <div class="refsect1" lang="en" xml:lang="en"> 17749 <a xmlns="http://www.w3.org/1999/xhtml" id="id704637"></a> 17750 <div class="header">Description:</div> 17751 <p xmlns="http://www.w3.org/1999/xhtml"> 17752 This function returns the bits field of a key-event. 17753 </p> 17754 </div> 17755 </div> 17756 </p> 17757 <p> 17758 <div class="refentrytitle"> 17759 <a id="f_key-event-keysym"></a> 17760 <strong>[Function]</strong> 17761 <br></br> 17762 <code> 17763 key-event-keysym key-event 17764 </code> 17765 </div> 17766 <div class="refentrytitle"></div> 17767 </p> 17768 <p> 17769 <div> 17770 <div class="refsect1" lang="en" xml:lang="en"> 17771 <a xmlns="http://www.w3.org/1999/xhtml" id="id704692"></a> 17772 <div class="header">Description:</div> 17773 <p xmlns="http://www.w3.org/1999/xhtml"> 17774 This function returns the keysym field of a key-event. 17775 </p> 17776 </div> 17777 </div> 17778 </p> 17779 <p> 17780 <div class="refentrytitle"> 17781 <a id="f_char-key-event"></a> 17782 <strong>[Function]</strong> 17783 <br></br> 17784 <code> 17785 char-key-event character 17786 </code> 17787 </div> 17788 <div class="refentrytitle"></div> 17789 </p> 17790 <p> 17791 <div> 17792 <div class="refsect1" lang="en" xml:lang="en"> 17793 <a xmlns="http://www.w3.org/1999/xhtml" id="id704748"></a> 17794 <div class="header">Description:</div> 17795 <p xmlns="http://www.w3.org/1999/xhtml"> 17796 This function returns the key-event associated with character. You can 17797 associate a key-event with a character by setf-ing this form. 17798 </p> 17799 </div> 17800 </div> 17801 </p> 17802 <p> 17803 <div class="refentrytitle"> 17804 <a id="f_key-event-char"></a> 17805 <strong>[Function]</strong> 17806 <br></br> 17807 <code> 17808 key-event-char key-event 17809 </code> 17810 </div> 17811 <div class="refentrytitle"></div> 17812 </p> 17813 <p> 17814 <div> 17815 <div class="refsect1" lang="en" xml:lang="en"> 17816 <a xmlns="http://www.w3.org/1999/xhtml" id="id704805"></a> 17817 <div class="header">Description:</div> 17818 <p xmlns="http://www.w3.org/1999/xhtml"> 17819 This function returns the character associated with key-event. You can 17820 associate a character with a key-event by setf'ing this form. The 17821 system defaultly translates key-events in some implementation 17822 dependent way for text insertion; for example, under an ASCII system, 17823 the key-event #k"C-h", as well as #k"backspace" would map to the 17824 Common Lisp character that causes a backspace. 17825 </p> 17826 </div> 17827 </div> 17828 </p> 17829 <p> 17830 <div class="refentrytitle"> 17831 <a id="f_key-event-bit-p"></a> 17832 <strong>[Function]</strong> 17833 <br></br> 17834 <code> 17835 key-event-bit-p key-event bit-name 17836 </code> 17837 </div> 17838 <div class="refentrytitle"></div> 17839 </p> 17840 <p> 17841 <div> 17842 <div class="refsect1" lang="en" xml:lang="en"> 17843 <a xmlns="http://www.w3.org/1999/xhtml" id="id704864"></a> 17844 <div class="header">Description:</div> 17845 <p xmlns="http://www.w3.org/1999/xhtml"> 17846 This function returns whether key-event has the bit set named by 17847 bit-name. This signals an error if bit-name is undefined. 17848 </p> 17849 </div> 17850 </div> 17851 </p> 17852 <p> 17853 <div class="refentrytitle"> 17854 <a id="m_do-alpha-key-events"></a> 17855 <strong>[Macro]</strong> 17856 <br></br> 17857 <code> 17858 do-alpha-key-events (var kind <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> result) form 17859 </code> 17860 </div> 17861 <div class="refentrytitle"></div> 17862 </p> 17863 <p> 17864 <div> 17865 <div class="refsect1" lang="en" xml:lang="en"> 17866 <a xmlns="http://www.w3.org/1999/xhtml" id="id704924"></a> 17867 <div class="header">Description:</div> 17868 <p xmlns="http://www.w3.org/1999/xhtml"> 17869 This macro evaluates each form with var bound to a key-event 17870 representing an alphabetic character. Kind is one of :lower, :upper, 17871 or :both, and this binds var to each key-event in order a-z A-Z. 17872 When :both is specified, this processes lowercase letters 17873 first. 17874 </p> 17875 </div> 17876 </div> 17877 </p> 17878 <p> 17879 <div class="refentrytitle"> 17880 <a id="f_pretty-key-string"></a> 17881 <strong>[Function]</strong> 17882 <br></br> 17883 <code> 17884 pretty-key-string key <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> stream long-names-p 17885 </code> 17886 </div> 17887 <div class="refentrytitle"></div> 17888 </p> 17889 <p> 17890 <div> 17891 <div class="refsect1" lang="en" xml:lang="en"> 17892 <a xmlns="http://www.w3.org/1999/xhtml" id="id704985"></a> 17893 <div class="header">Description:</div> 17894 <p xmlns="http://www.w3.org/1999/xhtml"> 17895 This returns a string representing key, a key-event or vector of key-events, in a 17896 user-expected fashion. Long-names-p indicates whether 17897 modifiers should be described by their long or short name. 17898 </p> 17899 </div> 17900 </div> 17901 </p> 17902 </div> 17903 </div> 17904 </div> 17905 </div> 17906 <div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="chapter" lang="en" xml:lang="en"> 17907 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> 17908 <div> 17909 <div> 17910 <h2 class="title"><a id="Programming-with-Threads"></a>Chapter 7. Programming with Threads</h2> 17911 </div> 17912 </div> 17913 </div> 17914 <div xmlns="http://www.w3.org/1999/xhtml" class="toc"> 17915 <dl> 17916 <dt> 17917 <span class="sect1"> 17918 <a href="#Threads-overview">7.1. Threads Overview</a> 7168 17919 </span> 7169 17920 </dt> 7170 17921 <dt> 7171 17922 <span class="sect1"> 7172 <a href="#Threads-Dictionary">6.7. Threads Dictionary</a> 17923 <a href="#Intentionally--Missing-Functionality">7.2. (Intentionally) Missing Functionality</a> 17924 </span> 17925 </dt> 17926 <dt> 17927 <span class="sect1"> 17928 <a href="#Implementation-Decisions-and-Open-Questions">7.3. Implementation Decisions and Open Questions</a> 17929 </span> 17930 </dt> 17931 <dd> 17932 <dl> 17933 <dt> 17934 <span class="sect2"> 17935 <a href="#Thread-Stack-Sizes">7.3.1. Thread Stack Sizes</a> 17936 </span> 17937 </dt> 17938 <dt> 17939 <span class="sect2"> 17940 <a href="#id651576">7.3.2. As of August 2003:</a> 17941 </span> 17942 </dt> 17943 </dl> 17944 </dd> 17945 <dt> 17946 <span class="sect1"> 17947 <a href="#Porting-Code-from-the-Old-Thread-Model">7.4. Porting Code from the Old Thread Model</a> 17948 </span> 17949 </dt> 17950 <dt> 17951 <span class="sect1"> 17952 <a href="#Background-Terminal-Input">7.5. Background Terminal Input</a> 17953 </span> 17954 </dt> 17955 <dd> 17956 <dl> 17957 <dt> 17958 <span class="sect2"> 17959 <a href="#backgrount-ti-overview">7.5.1. Overview</a> 17960 </span> 17961 </dt> 17962 <dt> 17963 <span class="sect2"> 17964 <a href="#background-terminal-example">7.5.2. An example</a> 17965 </span> 17966 </dt> 17967 <dt> 17968 <span class="sect2"> 17969 <a href="#A-more-elaborate-example-">7.5.3. A more elaborate example.</a> 17970 </span> 17971 </dt> 17972 <dt> 17973 <span class="sect2"> 17974 <a href="#Summary">7.5.4. Summary</a> 17975 </span> 17976 </dt> 17977 </dl> 17978 </dd> 17979 <dt> 17980 <span class="sect1"> 17981 <a href="#The-Threads-which-CCL-Uses-for-Its-Own-Purposes">7.6. The Threads which Clozure CL Uses for Its Own Purposes</a> 17982 </span> 17983 </dt> 17984 <dt> 17985 <span class="sect1"> 17986 <a href="#Threads-Dictionary">7.7. Threads Dictionary</a> 7173 17987 </span> 7174 17988 </dt> … … 7179 17993 <div> 7180 17994 <div> 7181 <h2 class="title" style="clear: both"><a id="Threads-overview"></a> 6.1. Threads Overview</h2>17995 <h2 class="title" style="clear: both"><a id="Threads-overview"></a>7.1. Threads Overview</h2> 7182 17996 </div> 7183 17997 </div> … … 7301 18115 <div> 7302 18116 <div> 7303 <h2 class="title" style="clear: both"><a id="Intentionally--Missing-Functionality"></a> 6.2. (Intentionally) Missing Functionality</h2>18117 <h2 class="title" style="clear: both"><a id="Intentionally--Missing-Functionality"></a>7.2. (Intentionally) Missing Functionality</h2> 7304 18118 </div> 7305 18119 </div> … … 7339 18153 <div> 7340 18154 <div> 7341 <h2 class="title" style="clear: both"><a id="Implementation-Decisions-and-Open-Questions"></a> 6.3. Implementation Decisions and Open Questions</h2>18155 <h2 class="title" style="clear: both"><a id="Implementation-Decisions-and-Open-Questions"></a>7.3. Implementation Decisions and Open Questions</h2> 7342 18156 </div> 7343 18157 </div> … … 7347 18161 <div> 7348 18162 <div> 7349 <h3 class="title"><a id="Thread-Stack-Sizes"></a> 6.3.1. Thread Stack Sizes</h3>18163 <h3 class="title"><a id="Thread-Stack-Sizes"></a>7.3.1. Thread Stack Sizes</h3> 7350 18164 </div> 7351 18165 </div> … … 7375 18189 <div> 7376 18190 <div> 7377 <h3 class="title"><a id="id 480092"></a>6.3.2. As of August 2003:</h3>18191 <h3 class="title"><a id="id651576"></a>7.3.2. As of August 2003:</h3> 7378 18192 </div> 7379 18193 </div> … … 7420 18234 <div> 7421 18235 <div> 7422 <h2 class="title" style="clear: both"><a id="Porting-Code-from-the-Old-Thread-Model"></a> 6.4. Porting Code from the Old Thread Model</h2>18236 <h2 class="title" style="clear: both"><a id="Porting-Code-from-the-Old-Thread-Model"></a>7.4. Porting Code from the Old Thread Model</h2> 7423 18237 </div> 7424 18238 </div> … … 7468 18282 <div> 7469 18283 <div> 7470 <h2 class="title" style="clear: both"><a id="Background-Terminal-Input"></a> 6.5. Background Terminal Input</h2>18284 <h2 class="title" style="clear: both"><a id="Background-Terminal-Input"></a>7.5. Background Terminal Input</h2> 7471 18285 </div> 7472 18286 </div> … … 7476 18290 <div> 7477 18291 <div> 7478 <h3 class="title"><a id="backgrount-ti-overview"></a> 6.5.1. Overview</h3>18292 <h3 class="title"><a id="backgrount-ti-overview"></a>7.5.1. Overview</h3> 7479 18293 </div> 7480 18294 </div> … … 7535 18349 <div> 7536 18350 <div> 7537 <h3 class="title"><a id="background-terminal-example"></a> 6.5.2. An example</h3>18351 <h3 class="title"><a id="background-terminal-example"></a>7.5.2. An example</h3> 7538 18352 </div> 7539 18353 </div> … … 7583 18397 <div> 7584 18398 <div> 7585 <h3 class="title"><a id="A-more-elaborate-example-"></a> 6.5.3. A more elaborate example.</h3>18399 <h3 class="title"><a id="A-more-elaborate-example-"></a>7.5.3. A more elaborate example.</h3> 7586 18400 </div> 7587 18401 </div> … … 7650 18464 <div> 7651 18465 <div> 7652 <h3 class="title"><a id="Summary"></a> 6.5.4. Summary</h3>18466 <h3 class="title"><a id="Summary"></a>7.5.4. Summary</h3> 7653 18467 </div> 7654 18468 </div> … … 7682 18496 <div> 7683 18497 <div> 7684 <h2 class="title" style="clear: both"><a id="The-Threads-which-CCL-Uses-for-Its-Own-Purposes"></a> 6.6. The Threads which Clozure CL Uses for Its Own Purposes</h2>18498 <h2 class="title" style="clear: both"><a id="The-Threads-which-CCL-Uses-for-Its-Own-Purposes"></a>7.6. The Threads which Clozure CL Uses for Its Own Purposes</h2> 7685 18499 </div> 7686 18500 </div> … … 7808 18622 <div> 7809 18623 <div> 7810 <h2 class="title" style="clear: both"><a id="Threads-Dictionary"></a> 6.7. Threads Dictionary</h2>18624 <h2 class="title" style="clear: both"><a id="Threads-Dictionary"></a>7.7. Threads Dictionary</h2> 7811 18625 </div> 7812 18626 </div> … … 7827 18641 <div> 7828 18642 <div class="refsect1" lang="en" xml:lang="en"> 7829 <a xmlns="http://www.w3.org/1999/xhtml" id="id 497648"></a>18643 <a xmlns="http://www.w3.org/1999/xhtml" id="id669972"></a> 7830 18644 <div class="header">Values:</div> 7831 18645 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">result</span></i>---a list of all lisp processes (threads) … … 7833 18647 </div> 7834 18648 <div class="refsect1" lang="en" xml:lang="en"> 7835 <a xmlns="http://www.w3.org/1999/xhtml" id="id 497674"></a>18649 <a xmlns="http://www.w3.org/1999/xhtml" id="id669998"></a> 7836 18650 <div class="header">Description:</div> 7837 18651 <p xmlns="http://www.w3.org/1999/xhtml">Returns a list of all lisp processes (threads) known … … 7845 18659 </div> 7846 18660 <div class="refsect1" lang="en" xml:lang="en"> 7847 <a xmlns="http://www.w3.org/1999/xhtml" id="id 497689"></a>18661 <a xmlns="http://www.w3.org/1999/xhtml" id="id670013"></a> 7848 18662 <div class="header">See Also:</div> 7849 18663 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"> … … 7873 18687 <div> 7874 18688 <div class="refsect1" lang="en" xml:lang="en"> 7875 <a xmlns="http://www.w3.org/1999/xhtml" id="id 497759"></a>18689 <a xmlns="http://www.w3.org/1999/xhtml" id="id670082"></a> 7876 18690 <div class="header">Arguments and Values:</div> 7877 18691 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">name</span></i>---a string, used to identify the process.</p> … … 7916 18730 </div> 7917 18731 <div class="refsect1" lang="en" xml:lang="en"> 7918 <a xmlns="http://www.w3.org/1999/xhtml" id="id 497951"></a>18732 <a xmlns="http://www.w3.org/1999/xhtml" id="id670276"></a> 7919 18733 <div class="header">Description:</div> 7920 18734 <p xmlns="http://www.w3.org/1999/xhtml">Creates and returns a new lisp process (thread) with the … … 7937 18751 </div> 7938 18752 <div class="refsect1" lang="en" xml:lang="en"> 7939 <a xmlns="http://www.w3.org/1999/xhtml" id="id 498003"></a>18753 <a xmlns="http://www.w3.org/1999/xhtml" id="id670328"></a> 7940 18754 <div class="header">See Also:</div> 7941 18755 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_process-preset" title="Function PROCESS-PRESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-preset</b></a>, <a class="xref" href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a>, <a class="xref" href="#f_process-run-function" title="Function PROCESS-RUN-FUNCTION"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-run-function</b></a></span> … … 7956 18770 <div> 7957 18771 <div class="refsect1" lang="en" xml:lang="en"> 7958 <a xmlns="http://www.w3.org/1999/xhtml" id="id 498081"></a>18772 <a xmlns="http://www.w3.org/1999/xhtml" id="id670407"></a> 7959 18773 <div class="header">Arguments and Values:</div> 7960 18774 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">process</span></i>---a lisp process (thread).</p> … … 7966 18780 </div> 7967 18781 <div class="refsect1" lang="en" xml:lang="en"> 7968 <a xmlns="http://www.w3.org/1999/xhtml" id="id 498135"></a>18782 <a xmlns="http://www.w3.org/1999/xhtml" id="id670461"></a> 7969 18783 <div class="header">Description:</div> 7970 18784 <p xmlns="http://www.w3.org/1999/xhtml">Suspends <em class="varname">process</em>, preventing it from … … 7988 18802 </div> 7989 18803 <div class="refsect1" lang="en" xml:lang="en"> 7990 <a xmlns="http://www.w3.org/1999/xhtml" id="id 498190"></a>18804 <a xmlns="http://www.w3.org/1999/xhtml" id="id670516"></a> 7991 18805 <div class="header">See Also:</div> 7992 18806 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_process-resume" title="Function PROCESS-RESUME"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-resume</b></a>, <a class="xref" href="#f_process-suspend-count" title="Function PROCESS-SUSPEND-COUNT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend-count</b></a></span> 7993 18807 </div> 7994 18808 <div class="refsect1" lang="en" xml:lang="en"> 7995 <a xmlns="http://www.w3.org/1999/xhtml" id="id 498215"></a>18809 <a xmlns="http://www.w3.org/1999/xhtml" id="id670541"></a> 7996 18810 <div class="header">Notes:</div> 7997 18811 <p xmlns="http://www.w3.org/1999/xhtml"><span class="function"><strong>process-suspend</strong></span> was previously called … … 8019 18833 <div> 8020 18834 <div class="refsect1" lang="en" xml:lang="en"> 8021 <a xmlns="http://www.w3.org/1999/xhtml" id="id 498296"></a>18835 <a xmlns="http://www.w3.org/1999/xhtml" id="id670622"></a> 8022 18836 <div class="header">Arguments and Values:</div> 8023 18837 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">process</span></i>---a lisp process (thread).</p> … … 8030 18844 </div> 8031 18845 <div class="refsect1" lang="en" xml:lang="en"> 8032 <a xmlns="http://www.w3.org/1999/xhtml" id="id 498350"></a>18846 <a xmlns="http://www.w3.org/1999/xhtml" id="id670675"></a> 8033 18847 <div class="header">Description:</div> 8034 18848 <p xmlns="http://www.w3.org/1999/xhtml">Undoes the effect of a previous call to … … 8041 18855 </div> 8042 18856 <div class="refsect1" lang="en" xml:lang="en"> 8043 <a xmlns="http://www.w3.org/1999/xhtml" id="id 498381"></a>18857 <a xmlns="http://www.w3.org/1999/xhtml" id="id670706"></a> 8044 18858 <div class="header">See Also:</div> 8045 18859 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_process-suspend" title="Function PROCESS-SUSPEND"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend</b></a>, <a class="xref" href="#f_process-suspend-count" title="Function PROCESS-SUSPEND-COUNT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend-count</b></a></span> 8046 18860 </div> 8047 18861 <div class="refsect1" lang="en" xml:lang="en"> 8048 <a xmlns="http://www.w3.org/1999/xhtml" id="id 498406"></a>18862 <a xmlns="http://www.w3.org/1999/xhtml" id="id670731"></a> 8049 18863 <div class="header">Notes:</div> 8050 18864 <p xmlns="http://www.w3.org/1999/xhtml"> … … 8072 18886 <div> 8073 18887 <div class="refsect1" lang="en" xml:lang="en"> 8074 <a xmlns="http://www.w3.org/1999/xhtml" id="id 498471"></a>18888 <a xmlns="http://www.w3.org/1999/xhtml" id="id670797"></a> 8075 18889 <div class="header">Arguments and Values:</div> 8076 18890 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">process</span></i>---a lisp process (thread).</p> … … 8082 18896 </div> 8083 18897 <div class="refsect1" lang="en" xml:lang="en"> 8084 <a xmlns="http://www.w3.org/1999/xhtml" id="id 498525"></a>18898 <a xmlns="http://www.w3.org/1999/xhtml" id="id670851"></a> 8085 18899 <div class="header">Description:</div> 8086 18900 <p xmlns="http://www.w3.org/1999/xhtml">An "outstanding" <a class="xref" href="#f_process-suspend" title="Function PROCESS-SUSPEND"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend</b></a> call … … 8097 18911 </div> 8098 18912 <div class="refsect1" lang="en" xml:lang="en"> 8099 <a xmlns="http://www.w3.org/1999/xhtml" id="id 498574"></a>18913 <a xmlns="http://www.w3.org/1999/xhtml" id="id670900"></a> 8100 18914 <div class="header">See Also:</div> 8101 18915 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_process-suspend" title="Function PROCESS-SUSPEND"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend</b></a>, <a class="xref" href="#f_process-resume" title="Function PROCESS-RESUME"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-resume</b></a></span> … … 8118 18932 <div> 8119 18933 <div class="refsect1" lang="en" xml:lang="en"> 8120 <a xmlns="http://www.w3.org/1999/xhtml" id="id 498650"></a>18934 <a xmlns="http://www.w3.org/1999/xhtml" id="id670977"></a> 8121 18935 <div class="header">Arguments and Values:</div> 8122 18936 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">process</span></i>---a lisp process (thread).</p> … … 8129 18943 </div> 8130 18944 <div class="refsect1" lang="en" xml:lang="en"> 8131 <a xmlns="http://www.w3.org/1999/xhtml" id="id 498725"></a>18945 <a xmlns="http://www.w3.org/1999/xhtml" id="id671052"></a> 8132 18946 <div class="header">Description:</div> 8133 18947 <p xmlns="http://www.w3.org/1999/xhtml">Typically used to initialize a newly-created or newly-reset … … 8143 18957 </div> 8144 18958 <div class="refsect1" lang="en" xml:lang="en"> 8145 <a xmlns="http://www.w3.org/1999/xhtml" id="id 498769"></a>18959 <a xmlns="http://www.w3.org/1999/xhtml" id="id671096"></a> 8146 18960 <div class="header">See Also:</div> 8147 18961 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-process" title="Function MAKE-PROCESS"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-process</b></a>, <a class="xref" href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a>, <a class="xref" href="#f_process-run-function" title="Function PROCESS-RUN-FUNCTION"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-run-function</b></a></span> … … 8164 18978 <div> 8165 18979 <div class="refsect1" lang="en" xml:lang="en"> 8166 <a xmlns="http://www.w3.org/1999/xhtml" id="id 498852"></a>18980 <a xmlns="http://www.w3.org/1999/xhtml" id="id671178"></a> 8167 18981 <div class="header">Arguments and Values:</div> 8168 18982 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">process</span></i>---a lisp process (thread).</p> … … 8173 18987 </div> 8174 18988 <div class="refsect1" lang="en" xml:lang="en"> 8175 <a xmlns="http://www.w3.org/1999/xhtml" id="id 498913"></a>18989 <a xmlns="http://www.w3.org/1999/xhtml" id="id671240"></a> 8176 18990 <div class="header">Description:</div> 8177 18991 <p xmlns="http://www.w3.org/1999/xhtml">Tries to begin the execution of <em class="varname">process</em>. … … 8190 19004 </div> 8191 19005 <div class="refsect1" lang="en" xml:lang="en"> 8192 <a xmlns="http://www.w3.org/1999/xhtml" id="id 498962"></a>19006 <a xmlns="http://www.w3.org/1999/xhtml" id="id671289"></a> 8193 19007 <div class="header">See Also:</div> 8194 19008 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-process" title="Function MAKE-PROCESS"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-process</b></a>, <a class="xref" href="#f_process-preset" title="Function PROCESS-PRESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-preset</b></a>, <a class="xref" href="#f_process-run-function" title="Function PROCESS-RUN-FUNCTION"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-run-function</b></a></span> 8195 19009 </div> 8196 19010 <div class="refsect1" lang="en" xml:lang="en"> 8197 <a xmlns="http://www.w3.org/1999/xhtml" id="id 498993"></a>19011 <a xmlns="http://www.w3.org/1999/xhtml" id="id671320"></a> 8198 19012 <div class="header">Notes:</div> 8199 19013 <p xmlns="http://www.w3.org/1999/xhtml">It would be nice to have more discussion of what it means … … 8216 19030 <div> 8217 19031 <div class="refsect1" lang="en" xml:lang="en"> 8218 <a xmlns="http://www.w3.org/1999/xhtml" id="id 499108"></a>19032 <a xmlns="http://www.w3.org/1999/xhtml" id="id671435"></a> 8219 19033 <div class="header">Arguments and Values:</div> 8220 19034 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">name</span></i>---a string, used to identify the process. … … 8238 19052 </div> 8239 19053 <div class="refsect1" lang="en" xml:lang="en"> 8240 <a xmlns="http://www.w3.org/1999/xhtml" id="id 499297"></a>19054 <a xmlns="http://www.w3.org/1999/xhtml" id="id671624"></a> 8241 19055 <div class="header">Description:</div> 8242 19056 <p xmlns="http://www.w3.org/1999/xhtml">Creates a lisp process (thread) via … … 8251 19065 </div> 8252 19066 <div class="refsect1" lang="en" xml:lang="en"> 8253 <a xmlns="http://www.w3.org/1999/xhtml" id="id 499332"></a>19067 <a xmlns="http://www.w3.org/1999/xhtml" id="id671659"></a> 8254 19068 <div class="header">See Also:</div> 8255 19069 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-process" title="Function MAKE-PROCESS"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-process</b></a>, <a class="xref" href="#f_process-preset" title="Function PROCESS-PRESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-preset</b></a>, <a class="xref" href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a></span> … … 8272 19086 <div> 8273 19087 <div class="refsect1" lang="en" xml:lang="en"> 8274 <a xmlns="http://www.w3.org/1999/xhtml" id="id 502712"></a>19088 <a xmlns="http://www.w3.org/1999/xhtml" id="id671742"></a> 8275 19089 <div class="header">Arguments and Values:</div> 8276 19090 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">process</span></i>---a lisp process (thread).</p> … … 8285 19099 </div> 8286 19100 <div class="refsect1" lang="en" xml:lang="en"> 8287 <a xmlns="http://www.w3.org/1999/xhtml" id="id 502805"></a>19101 <a xmlns="http://www.w3.org/1999/xhtml" id="id671835"></a> 8288 19102 <div class="header">Description:</div> 8289 19103 <p xmlns="http://www.w3.org/1999/xhtml">Arranges for <em class="varname">process</em> … … 8316 19130 </div> 8317 19131 <div class="refsect1" lang="en" xml:lang="en"> 8318 <a xmlns="http://www.w3.org/1999/xhtml" id="id 502879"></a>19132 <a xmlns="http://www.w3.org/1999/xhtml" id="id671909"></a> 8319 19133 <div class="header">See Also:</div> 8320 19134 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"> … … 8325 19139 </div> 8326 19140 <div class="refsect1" lang="en" xml:lang="en"> 8327 <a xmlns="http://www.w3.org/1999/xhtml" id="id 502898"></a>19141 <a xmlns="http://www.w3.org/1999/xhtml" id="id671928"></a> 8328 19142 <div class="header">Notes:</div> 8329 19143 <p xmlns="http://www.w3.org/1999/xhtml">It would probably be better for <em class="varname">result</em> … … 8355 19169 <div> 8356 19170 <div class="refsect1" lang="en" xml:lang="en"> 8357 <a xmlns="http://www.w3.org/1999/xhtml" id="id 502963"></a>19171 <a xmlns="http://www.w3.org/1999/xhtml" id="id674163"></a> 8358 19172 <div class="header">Value Type:</div> 8359 19173 <p xmlns="http://www.w3.org/1999/xhtml">A lisp process (thread).</p> 8360 19174 </div> 8361 19175 <div class="refsect1" lang="en" xml:lang="en"> 8362 <a xmlns="http://www.w3.org/1999/xhtml" id="id 502975"></a>19176 <a xmlns="http://www.w3.org/1999/xhtml" id="id674175"></a> 8363 19177 <div class="header">Initial Value:</div> 8364 19178 <p xmlns="http://www.w3.org/1999/xhtml">Bound separately in each process, to that process itself. … … 8366 19180 </div> 8367 19181 <div class="refsect1" lang="en" xml:lang="en"> 8368 <a xmlns="http://www.w3.org/1999/xhtml" id="id 502986"></a>19182 <a xmlns="http://www.w3.org/1999/xhtml" id="id674186"></a> 8369 19183 <div class="header">Description:</div> 8370 19184 <p xmlns="http://www.w3.org/1999/xhtml">Used when lisp code needs to find out what process it is … … 8372 19186 </div> 8373 19187 <div class="refsect1" lang="en" xml:lang="en"> 8374 <a xmlns="http://www.w3.org/1999/xhtml" id="id 502998"></a>19188 <a xmlns="http://www.w3.org/1999/xhtml" id="id674198"></a> 8375 19189 <div class="header">See Also:</div> 8376 19190 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"> … … 8396 19210 <div> 8397 19211 <div class="refsect1" lang="en" xml:lang="en"> 8398 <a xmlns="http://www.w3.org/1999/xhtml" id="id 503068"></a>19212 <a xmlns="http://www.w3.org/1999/xhtml" id="id674269"></a> 8399 19213 <div class="header">Arguments and Values:</div> 8400 19214 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">process</span></i>---a lisp process (thread).</p> … … 8403 19217 </div> 8404 19218 <div class="refsect1" lang="en" xml:lang="en"> 8405 <a xmlns="http://www.w3.org/1999/xhtml" id="id 503125"></a>19219 <a xmlns="http://www.w3.org/1999/xhtml" id="id674325"></a> 8406 19220 <div class="header">Description:</div> 8407 19221 <p xmlns="http://www.w3.org/1999/xhtml">Causes <em class="varname">process</em> to cleanly exit … … 8430 19244 </div> 8431 19245 <div class="refsect1" lang="en" xml:lang="en"> 8432 <a xmlns="http://www.w3.org/1999/xhtml" id="id 503192"></a>19246 <a xmlns="http://www.w3.org/1999/xhtml" id="id674392"></a> 8433 19247 <div class="header">See Also:</div> 8434 19248 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_process-kill" title="Function PROCESS-KILL"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-kill</b></a>, <a class="xref" href="#f_process-abort" title="Function PROCESS-ABORT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-abort</b></a></span> … … 8450 19264 <div> 8451 19265 <div class="refsect1" lang="en" xml:lang="en"> 8452 <a xmlns="http://www.w3.org/1999/xhtml" id="id 503265"></a>19266 <a xmlns="http://www.w3.org/1999/xhtml" id="id674465"></a> 8453 19267 <div class="header">Arguments and Values:</div> 8454 19268 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">process</span></i>---a lisp process (thread), which … … 8457 19271 </div> 8458 19272 <div class="refsect1" lang="en" xml:lang="en"> 8459 <a xmlns="http://www.w3.org/1999/xhtml" id="id 503307"></a>19273 <a xmlns="http://www.w3.org/1999/xhtml" id="id674507"></a> 8460 19274 <div class="header">Description:</div> 8461 19275 <p xmlns="http://www.w3.org/1999/xhtml"> … … 8465 19279 </div> 8466 19280 <div class="refsect1" lang="en" xml:lang="en"> 8467 <a xmlns="http://www.w3.org/1999/xhtml" id="id 503319"></a>19281 <a xmlns="http://www.w3.org/1999/xhtml" id="id674519"></a> 8468 19282 <div class="header">See Also:</div> 8469 19283 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_process-reset" title="Function PROCESS-RESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-reset</b></a>, <a class="xref" href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a></span> … … 8485 19299 <div> 8486 19300 <div class="refsect1" lang="en" xml:lang="en"> 8487 <a xmlns="http://www.w3.org/1999/xhtml" id="id 503392"></a>19301 <a xmlns="http://www.w3.org/1999/xhtml" id="id674592"></a> 8488 19302 <div class="header">Arguments and Values:</div> 8489 19303 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">process</span></i>---a lisp process (thread).</p> … … 8491 19305 </div> 8492 19306 <div class="refsect1" lang="en" xml:lang="en"> 8493 <a xmlns="http://www.w3.org/1999/xhtml" id="id 503433"></a>19307 <a xmlns="http://www.w3.org/1999/xhtml" id="id674633"></a> 8494 19308 <div class="header">Description:</div> 8495 19309 <p xmlns="http://www.w3.org/1999/xhtml"> … … 8499 19313 </div> 8500 19314 <div class="refsect1" lang="en" xml:lang="en"> 8501 <a xmlns="http://www.w3.org/1999/xhtml" id="id 503448"></a>19315 <a xmlns="http://www.w3.org/1999/xhtml" id="id674648"></a> 8502 19316 <div class="header">See Also:</div> 8503 19317 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_process-reset" title="Function PROCESS-RESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-reset</b></a>, <a class="xref" href="#f_process-abort" title="Function PROCESS-ABORT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-abort</b></a></span> … … 8521 19335 <div> 8522 19336 <div class="refsect1" lang="en" xml:lang="en"> 8523 <a xmlns="http://www.w3.org/1999/xhtml" id="id 503531"></a>19337 <a xmlns="http://www.w3.org/1999/xhtml" id="id674731"></a> 8524 19338 <div class="header">Arguments and Values:</div> 8525 19339 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">process</span></i>---a lisp process (thread).</p> … … 8527 19341 </div> 8528 19342 <div class="refsect1" lang="en" xml:lang="en"> 8529 <a xmlns="http://www.w3.org/1999/xhtml" id="id 503572"></a>19343 <a xmlns="http://www.w3.org/1999/xhtml" id="id674772"></a> 8530 19344 <div class="header">Description:</div> 8531 19345 <p xmlns="http://www.w3.org/1999/xhtml">Entirely equivalent to calling … … 8541 19355 </div> 8542 19356 <div class="refsect1" lang="en" xml:lang="en"> 8543 <a xmlns="http://www.w3.org/1999/xhtml" id="id 503636"></a>19357 <a xmlns="http://www.w3.org/1999/xhtml" id="id674836"></a> 8544 19358 <div class="header">See Also:</div> 8545 19359 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_process-reset" title="Function PROCESS-RESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-reset</b></a>, <a class="xref" href="#f_process-kill" title="Function PROCESS-KILL"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-kill</b></a></span> … … 8560 19374 <div> 8561 19375 <div class="refsect1" lang="en" xml:lang="en"> 8562 <a xmlns="http://www.w3.org/1999/xhtml" id="id 503694"></a>19376 <a xmlns="http://www.w3.org/1999/xhtml" id="id674894"></a> 8563 19377 <div class="header">Value Type:</div> 8564 19378 <p xmlns="http://www.w3.org/1999/xhtml">A positive integer.</p> 8565 19379 </div> 8566 19380 <div class="refsect1" lang="en" xml:lang="en"> 8567 <a xmlns="http://www.w3.org/1999/xhtml" id="id 503705"></a>19381 <a xmlns="http://www.w3.org/1999/xhtml" id="id674906"></a> 8568 19382 <div class="header">Initial Value:</div> 8569 19383 <p xmlns="http://www.w3.org/1999/xhtml">The clock resolution of the OS scheduler. Currently, … … 8572 19386 </div> 8573 19387 <div class="refsect1" lang="en" xml:lang="en"> 8574 <a xmlns="http://www.w3.org/1999/xhtml" id="id 503718"></a>19388 <a xmlns="http://www.w3.org/1999/xhtml" id="id674918"></a> 8575 19389 <div class="header">Description:</div> 8576 19390 <p xmlns="http://www.w3.org/1999/xhtml">This value is ordinarily of marginal interest at best, … … 8580 19394 </div> 8581 19395 <div class="refsect1" lang="en" xml:lang="en"> 8582 <a xmlns="http://www.w3.org/1999/xhtml" id="id 503730"></a>19396 <a xmlns="http://www.w3.org/1999/xhtml" id="id674931"></a> 8583 19397 <div class="header">See Also:</div> 8584 19398 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"> … … 8604 19418 <div> 8605 19419 <div class="refsect1" lang="en" xml:lang="en"> 8606 <a xmlns="http://www.w3.org/1999/xhtml" id="id 503834"></a>19420 <a xmlns="http://www.w3.org/1999/xhtml" id="id675035"></a> 8607 19421 <div class="header">Description:</div> 8608 19422 <p xmlns="http://www.w3.org/1999/xhtml">This information is primarily for the benefit of … … 8618 19432 </div> 8619 19433 <div class="refsect1" lang="en" xml:lang="en"> 8620 <a xmlns="http://www.w3.org/1999/xhtml" id="id 503876"></a>19434 <a xmlns="http://www.w3.org/1999/xhtml" id="id675077"></a> 8621 19435 <div class="header">See Also:</div> 8622 19436 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_process-wait" title="Function PROCESS-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait</b></a>, <a class="xref" href="#f_process-wait-with-timeout" title="Function PROCESS-WAIT-WITH-TIMEOUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait-with-timeout</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 8623 19437 </div> 8624 19438 <div class="refsect1" lang="en" xml:lang="en"> 8625 <a xmlns="http://www.w3.org/1999/xhtml" id="id 503907"></a>19439 <a xmlns="http://www.w3.org/1999/xhtml" id="id675107"></a> 8626 19440 <div class="header">Notes:</div> 8627 19441 <p xmlns="http://www.w3.org/1999/xhtml">This should arguably be SETFable, but doesn't seem to … … 8647 19461 <div> 8648 19462 <div class="refsect1" lang="en" xml:lang="en"> 8649 <a xmlns="http://www.w3.org/1999/xhtml" id="id 503965"></a>19463 <a xmlns="http://www.w3.org/1999/xhtml" id="id675165"></a> 8650 19464 <div class="header">Description:</div> 8651 19465 <p xmlns="http://www.w3.org/1999/xhtml">Advises the OS scheduler that the current thread has nothing … … 8656 19470 </div> 8657 19471 <div class="refsect1" lang="en" xml:lang="en"> 8658 <a xmlns="http://www.w3.org/1999/xhtml" id="id 503979"></a>19472 <a xmlns="http://www.w3.org/1999/xhtml" id="id675179"></a> 8659 19473 <div class="header">See Also:</div> 8660 19474 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 8661 19475 </div> 8662 19476 <div class="refsect1" lang="en" xml:lang="en"> 8663 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504027"></a>19477 <a xmlns="http://www.w3.org/1999/xhtml" id="id675227"></a> 8664 19478 <div class="header">Notes:</div> 8665 19479 <p xmlns="http://www.w3.org/1999/xhtml">This is a holdover from the days of cooperative … … 8684 19498 <div> 8685 19499 <div class="refsect1" lang="en" xml:lang="en"> 8686 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504091"></a>19500 <a xmlns="http://www.w3.org/1999/xhtml" id="id675290"></a> 8687 19501 <div class="header">Arguments and Values:</div> 8688 19502 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">whostate</span></i>---a string, which will be the value of … … 8697 19511 </div> 8698 19512 <div class="refsect1" lang="en" xml:lang="en"> 8699 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504170"></a>19513 <a xmlns="http://www.w3.org/1999/xhtml" id="id675369"></a> 8700 19514 <div class="header">Description:</div> 8701 19515 <p xmlns="http://www.w3.org/1999/xhtml">Causes the current lisp process (thread) to repeatedly … … 8714 19528 </div> 8715 19529 <div class="refsect1" lang="en" xml:lang="en"> 8716 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504206"></a>19530 <a xmlns="http://www.w3.org/1999/xhtml" id="id675405"></a> 8717 19531 <div class="header">See Also:</div> 8718 19532 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_process-whostate" title="Function PROCESS-WHOSTATE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-whostate</b></a>, <a class="xref" href="#f_process-wait-with-timeout" title="Function PROCESS-WAIT-WITH-TIMEOUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait-with-timeout</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> … … 8734 19548 <div> 8735 19549 <div class="refsect1" lang="en" xml:lang="en"> 8736 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504314"></a>19550 <a xmlns="http://www.w3.org/1999/xhtml" id="id675513"></a> 8737 19551 <div class="header">Arguments and Values:</div> 8738 19552 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">whostate</span></i>---a string, which will be the value of … … 8752 19566 </div> 8753 19567 <div class="refsect1" lang="en" xml:lang="en"> 8754 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504427"></a>19568 <a xmlns="http://www.w3.org/1999/xhtml" id="id675626"></a> 8755 19569 <div class="header">Description:</div> 8756 19570 <p xmlns="http://www.w3.org/1999/xhtml">If <em class="varname">ticks</em> is NIL, behaves exactly like … … 8769 19583 </div> 8770 19584 <div class="refsect1" lang="en" xml:lang="en"> 8771 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504477"></a>19585 <a xmlns="http://www.w3.org/1999/xhtml" id="id675676"></a> 8772 19586 <div class="header">See Also:</div> 8773 19587 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#v_ticks-per-second" title="Variable *TICKS-PER-SECOND*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*ticks-per-second*</b></a>, <a class="xref" href="#f_process-whostate" title="Function PROCESS-WHOSTATE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-whostate</b></a>, <a class="xref" href="#f_process-wait" title="Function PROCESS-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> … … 8789 19603 <div> 8790 19604 <div class="refsect1" lang="en" xml:lang="en"> 8791 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504594"></a>19605 <a xmlns="http://www.w3.org/1999/xhtml" id="id675793"></a> 8792 19606 <div class="header">Arguments and Values:</div> 8793 19607 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">body</span></i>---an implicit progn.</p> … … 8796 19610 </div> 8797 19611 <div class="refsect1" lang="en" xml:lang="en"> 8798 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504638"></a>19612 <a xmlns="http://www.w3.org/1999/xhtml" id="id675838"></a> 8799 19613 <div class="header">Description:</div> 8800 19614 <p xmlns="http://www.w3.org/1999/xhtml">Executes <em class="varname">body</em> … … 8811 19625 </div> 8812 19626 <div class="refsect1" lang="en" xml:lang="en"> 8813 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504670"></a>19627 <a xmlns="http://www.w3.org/1999/xhtml" id="id675870"></a> 8814 19628 <div class="header">See Also:</div> 8815 19629 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"> … … 8835 19649 <div> 8836 19650 <div class="refsect1" lang="en" xml:lang="en"> 8837 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504742"></a>19651 <a xmlns="http://www.w3.org/1999/xhtml" id="id675941"></a> 8838 19652 <div class="header">Arguments and Values:</div> 8839 19653 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">body</span></i>---an implicit progn.</p> … … 8842 19656 </div> 8843 19657 <div class="refsect1" lang="en" xml:lang="en"> 8844 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504786"></a>19658 <a xmlns="http://www.w3.org/1999/xhtml" id="id675986"></a> 8845 19659 <div class="header">Description:</div> 8846 19660 <p xmlns="http://www.w3.org/1999/xhtml">Executes <em class="varname">body</em> … … 8865 19679 <div> 8866 19680 <div class="refsect1" lang="en" xml:lang="en"> 8867 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504858"></a>19681 <a xmlns="http://www.w3.org/1999/xhtml" id="id676057"></a> 8868 19682 <div class="header">Arguments and Values:</div> 8869 19683 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">name</span></i>---any lisp object; saved as part of … … 8875 19689 </div> 8876 19690 <div class="refsect1" lang="en" xml:lang="en"> 8877 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504910"></a>19691 <a xmlns="http://www.w3.org/1999/xhtml" id="id676110"></a> 8878 19692 <div class="header">Description:</div> 8879 19693 <p xmlns="http://www.w3.org/1999/xhtml">Creates and returns a lock object, which can … … 8885 19699 </div> 8886 19700 <div class="refsect1" lang="en" xml:lang="en"> 8887 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504927"></a>19701 <a xmlns="http://www.w3.org/1999/xhtml" id="id676126"></a> 8888 19702 <div class="header">See Also:</div> 8889 19703 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#m_with-lock-grabbed" title="Macro WITH-LOCK-GRABBED"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-lock-grabbed</b></a>, <a class="xref" href="#f_grab-lock" title="Function GRAB-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">grab-lock</b></a>, <a class="xref" href="#f_release-lock" title="Function RELEASE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">release-lock</b></a>, <a class="xref" href="#f_try-lock" title="Function TRY-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">try-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> … … 8905 19719 <div> 8906 19720 <div class="refsect1" lang="en" xml:lang="en"> 8907 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505044"></a>19721 <a xmlns="http://www.w3.org/1999/xhtml" id="id676244"></a> 8908 19722 <div class="header">Arguments and Values:</div> 8909 19723 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">lock</span></i>---an object of type CCL:LOCK.</p> … … 8913 19727 </div> 8914 19728 <div class="refsect1" lang="en" xml:lang="en"> 8915 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505104"></a>19729 <a xmlns="http://www.w3.org/1999/xhtml" id="id676303"></a> 8916 19730 <div class="header">Description:</div> 8917 19731 <p xmlns="http://www.w3.org/1999/xhtml">Waits until <em class="varname">lock</em> is either free or … … 8924 19738 </div> 8925 19739 <div class="refsect1" lang="en" xml:lang="en"> 8926 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505136"></a>19740 <a xmlns="http://www.w3.org/1999/xhtml" id="id676336"></a> 8927 19741 <div class="header">See Also:</div> 8928 19742 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_grab-lock" title="Function GRAB-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">grab-lock</b></a>, <a class="xref" href="#f_release-lock" title="Function RELEASE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">release-lock</b></a>, <a class="xref" href="#f_try-lock" title="Function TRY-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">try-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> … … 8943 19757 <div> 8944 19758 <div class="refsect1" lang="en" xml:lang="en"> 8945 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505249"></a>19759 <a xmlns="http://www.w3.org/1999/xhtml" id="id676449"></a> 8946 19760 <div class="header">Arguments and Values:</div> 8947 19761 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">lock</span></i>---an object of type CCL:LOCK.</p> 8948 19762 </div> 8949 19763 <div class="refsect1" lang="en" xml:lang="en"> 8950 <a xmlns="http://www.w3.org/1999/xhtml" id="id 519056"></a>19764 <a xmlns="http://www.w3.org/1999/xhtml" id="id676475"></a> 8951 19765 <div class="header">Description:</div> 8952 19766 <p xmlns="http://www.w3.org/1999/xhtml">Blocks until <em class="varname">lock</em> is owned by the … … 8959 19773 </div> 8960 19774 <div class="refsect1" lang="en" xml:lang="en"> 8961 <a xmlns="http://www.w3.org/1999/xhtml" id="id 519089"></a>19775 <a xmlns="http://www.w3.org/1999/xhtml" id="id676514"></a> 8962 19776 <div class="header">See Also:</div> 8963 19777 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#m_with-lock-grabbed" title="Macro WITH-LOCK-GRABBED"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-lock-grabbed</b></a>, <a class="xref" href="#f_release-lock" title="Function RELEASE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">release-lock</b></a>, <a class="xref" href="#f_try-lock" title="Function TRY-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">try-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> … … 8977 19791 <div> 8978 19792 <div class="refsect1" lang="en" xml:lang="en"> 8979 <a xmlns="http://www.w3.org/1999/xhtml" id="id 519188"></a>19793 <a xmlns="http://www.w3.org/1999/xhtml" id="id676626"></a> 8980 19794 <div class="header">Arguments and Values:</div> 8981 19795 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">lock</span></i>---an object of type CCL:LOCK.</p> 8982 19796 </div> 8983 19797 <div class="refsect1" lang="en" xml:lang="en"> 8984 <a xmlns="http://www.w3.org/1999/xhtml" id="id 519211"></a>19798 <a xmlns="http://www.w3.org/1999/xhtml" id="id676653"></a> 8985 19799 <div class="header">Description:</div> 8986 19800 <p xmlns="http://www.w3.org/1999/xhtml">Signals an error of type CCL:LOCK-NOT-OWNER if … … 8995 19809 </div> 8996 19810 <div class="refsect1" lang="en" xml:lang="en"> 8997 <a xmlns="http://www.w3.org/1999/xhtml" id="id 519244"></a>19811 <a xmlns="http://www.w3.org/1999/xhtml" id="id676691"></a> 8998 19812 <div class="header">See Also:</div> 8999 19813 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#m_with-lock-grabbed" title="Macro WITH-LOCK-GRABBED"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-lock-grabbed</b></a>, <a class="xref" href="#f_grab-lock" title="Function GRAB-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">grab-lock</b></a>, <a class="xref" href="#f_try-lock" title="Function TRY-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">try-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> … … 9014 19828 <div> 9015 19829 <div class="refsect1" lang="en" xml:lang="en"> 9016 <a xmlns="http://www.w3.org/1999/xhtml" id="id 519345"></a>19830 <a xmlns="http://www.w3.org/1999/xhtml" id="id676805"></a> 9017 19831 <div class="header">Arguments and Values:</div> 9018 19832 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">lock</span></i>---an object of type CCL:LOCK.</p> … … 9021 19835 </div> 9022 19836 <div class="refsect1" lang="en" xml:lang="en"> 9023 <a xmlns="http://www.w3.org/1999/xhtml" id="id 519383"></a>19837 <a xmlns="http://www.w3.org/1999/xhtml" id="id676849"></a> 9024 19838 <div class="header">Description:</div> 9025 19839 <p xmlns="http://www.w3.org/1999/xhtml">Tests whether <em class="varname">lock</em> … … 9034 19848 </div> 9035 19849 <div class="refsect1" lang="en" xml:lang="en"> 9036 <a xmlns="http://www.w3.org/1999/xhtml" id="id 519406"></a>19850 <a xmlns="http://www.w3.org/1999/xhtml" id="id676875"></a> 9037 19851 <div class="header">See Also:</div> 9038 19852 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#m_with-lock-grabbed" title="Macro WITH-LOCK-GRABBED"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-lock-grabbed</b></a>, <a class="xref" href="#f_grab-lock" title="Function GRAB-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">grab-lock</b></a>, <a class="xref" href="#f_release-lock" title="Function RELEASE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">release-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> … … 9054 19868 <div> 9055 19869 <div class="refsect1" lang="en" xml:lang="en"> 9056 <a xmlns="http://www.w3.org/1999/xhtml" id="id 519506"></a>19870 <a xmlns="http://www.w3.org/1999/xhtml" id="id676988"></a> 9057 19871 <div class="header">Arguments and Values:</div> 9058 19872 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">read-write-lock</span></i>---a newly-allocated object of type … … 9060 19874 </div> 9061 19875 <div class="refsect1" lang="en" xml:lang="en"> 9062 <a xmlns="http://www.w3.org/1999/xhtml" id="id 519529"></a>19876 <a xmlns="http://www.w3.org/1999/xhtml" id="id677015"></a> 9063 19877 <div class="header">Description:</div> 9064 19878 <p xmlns="http://www.w3.org/1999/xhtml">Creates and returns an object of type CCL::READ-WRITE-LOCK. … … 9071 19885 </div> 9072 19886 <div class="refsect1" lang="en" xml:lang="en"> 9073 <a xmlns="http://www.w3.org/1999/xhtml" id="id 519545"></a>19887 <a xmlns="http://www.w3.org/1999/xhtml" id="id677033"></a> 9074 19888 <div class="header">See Also:</div> 9075 19889 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#m_with-read-lock" title="Macro WITH-READ-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-read-lock</b></a>, <a class="xref" href="#m_with-write-lock" title="Macro WITH-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-write-lock</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 9076 19890 </div> 9077 19891 <div class="refsect1" lang="en" xml:lang="en"> 9078 <a xmlns="http://www.w3.org/1999/xhtml" id="id 519593"></a>19892 <a xmlns="http://www.w3.org/1999/xhtml" id="id677086"></a> 9079 19893 <div class="header">Notes:</div> 9080 19894 <p xmlns="http://www.w3.org/1999/xhtml">There probably should be some way to … … 9099 19913 <div> 9100 19914 <div class="refsect1" lang="en" xml:lang="en"> 9101 <a xmlns="http://www.w3.org/1999/xhtml" id="id 519650"></a>19915 <a xmlns="http://www.w3.org/1999/xhtml" id="id677151"></a> 9102 19916 <div class="header">Arguments and Values:</div> 9103 19917 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">read-write-lock</span></i>---an object of type … … 9108 19922 </div> 9109 19923 <div class="refsect1" lang="en" xml:lang="en"> 9110 <a xmlns="http://www.w3.org/1999/xhtml" id="id 519701"></a>19924 <a xmlns="http://www.w3.org/1999/xhtml" id="id677210"></a> 9111 19925 <div class="header">Description:</div> 9112 19926 <p xmlns="http://www.w3.org/1999/xhtml">Waits until <em class="varname">read-write-lock</em> has no … … 9122 19936 </div> 9123 19937 <div class="refsect1" lang="en" xml:lang="en"> 9124 <a xmlns="http://www.w3.org/1999/xhtml" id="id 519741"></a>19938 <a xmlns="http://www.w3.org/1999/xhtml" id="id677256"></a> 9125 19939 <div class="header">See Also:</div> 9126 19940 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#m_with-write-lock" title="Macro WITH-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-write-lock</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> … … 9142 19956 <div> 9143 19957 <div class="refsect1" lang="en" xml:lang="en"> 9144 <a xmlns="http://www.w3.org/1999/xhtml" id="id 519834"></a>19958 <a xmlns="http://www.w3.org/1999/xhtml" id="id677361"></a> 9145 19959 <div class="header">Arguments and Values:</div> 9146 19960 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">read-write-lock</span></i>---an object of type … … 9151 19965 </div> 9152 19966 <div class="refsect1" lang="en" xml:lang="en"> 9153 <a xmlns="http://www.w3.org/1999/xhtml" id="id 519885"></a>19967 <a xmlns="http://www.w3.org/1999/xhtml" id="id677421"></a> 9154 19968 <div class="header">Description:</div> 9155 19969 <p xmlns="http://www.w3.org/1999/xhtml">Waits until <em class="varname">read-write-lock</em> has no … … 9166 19980 </div> 9167 19981 <div class="refsect1" lang="en" xml:lang="en"> 9168 <a xmlns="http://www.w3.org/1999/xhtml" id="id 519930"></a>19982 <a xmlns="http://www.w3.org/1999/xhtml" id="id677472"></a> 9169 19983 <div class="header">See Also:</div> 9170 19984 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#m_with-read-lock" title="Macro WITH-READ-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-read-lock</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> … … 9186 20000 <div> 9187 20001 <div class="refsect1" lang="en" xml:lang="en"> 9188 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520020"></a>20002 <a xmlns="http://www.w3.org/1999/xhtml" id="id677573"></a> 9189 20003 <div class="header">Arguments and Values:</div> 9190 20004 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">semaphore</span></i>---a newly-allocated object of type CCL:SEMAPHORE.</p> 9191 20005 </div> 9192 20006 <div class="refsect1" lang="en" xml:lang="en"> 9193 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520042"></a>20007 <a xmlns="http://www.w3.org/1999/xhtml" id="id677599"></a> 9194 20008 <div class="header">Description:</div> 9195 20009 <p xmlns="http://www.w3.org/1999/xhtml">Creates and returns an object of type CCL:SEMAPHORE. … … 9200 20014 </div> 9201 20015 <div class="refsect1" lang="en" xml:lang="en"> 9202 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520057"></a>20016 <a xmlns="http://www.w3.org/1999/xhtml" id="id677616"></a> 9203 20017 <div class="header">See Also:</div> 9204 20018 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_signal-semaphore" title="Function SIGNAL-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">signal-semaphore</b></a>, <a class="xref" href="#f_wait-on-semaphore" title="Function WAIT-ON-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">wait-on-semaphore</b></a>, <a class="xref" href="#f_timed-wait-on-semaphore" title="Function TIMED-WAIT-ON-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">timed-wait-on-semaphore</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> … … 9220 20034 <div> 9221 20035 <div class="refsect1" lang="en" xml:lang="en"> 9222 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520152"></a>20036 <a xmlns="http://www.w3.org/1999/xhtml" id="id677724"></a> 9223 20037 <div class="header">Arguments and Values:</div> 9224 20038 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">semaphore</span></i>---an object of type CCL:SEMAPHORE.</p> … … 9227 20041 </div> 9228 20042 <div class="refsect1" lang="en" xml:lang="en"> 9229 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520188"></a>20043 <a xmlns="http://www.w3.org/1999/xhtml" id="id677766"></a> 9230 20044 <div class="header">Description:</div> 9231 20045 <p xmlns="http://www.w3.org/1999/xhtml">Atomically increments <em class="varname">semaphore</em>'s … … 9234 20048 </div> 9235 20049 <div class="refsect1" lang="en" xml:lang="en"> 9236 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520202"></a>20050 <a xmlns="http://www.w3.org/1999/xhtml" id="id677781"></a> 9237 20051 <div class="header">See Also:</div> 9238 20052 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_wait-on-semaphore" title="Function WAIT-ON-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">wait-on-semaphore</b></a>, <a class="xref" href="#f_timed-wait-on-semaphore" title="Function TIMED-WAIT-ON-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">timed-wait-on-semaphore</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 9239 20053 </div> 9240 20054 <div class="refsect1" lang="en" xml:lang="en"> 9241 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520255"></a>20055 <a xmlns="http://www.w3.org/1999/xhtml" id="id677841"></a> 9242 20056 <div class="header">Notes:</div> 9243 20057 <p xmlns="http://www.w3.org/1999/xhtml"><em class="varname">result</em> should probably be interpreted … … 9262 20076 <div> 9263 20077 <div class="refsect1" lang="en" xml:lang="en"> 9264 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520315"></a>20078 <a xmlns="http://www.w3.org/1999/xhtml" id="id677910"></a> 9265 20079 <div class="header">Arguments and Values:</div> 9266 20080 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">semaphore</span></i>---an object of type CCL:SEMAPHORE.</p> … … 9269 20083 </div> 9270 20084 <div class="refsect1" lang="en" xml:lang="en"> 9271 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520351"></a>20085 <a xmlns="http://www.w3.org/1999/xhtml" id="id677951"></a> 9272 20086 <div class="header">Description:</div> 9273 20087 <p xmlns="http://www.w3.org/1999/xhtml">Waits until <em class="varname">semaphore</em> … … 9277 20091 </div> 9278 20092 <div class="refsect1" lang="en" xml:lang="en"> 9279 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520366"></a>20093 <a xmlns="http://www.w3.org/1999/xhtml" id="id677968"></a> 9280 20094 <div class="header">See Also:</div> 9281 20095 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_signal-semaphore" title="Function SIGNAL-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">signal-semaphore</b></a>, <a class="xref" href="#f_timed-wait-on-semaphore" title="Function TIMED-WAIT-ON-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">timed-wait-on-semaphore</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 9282 20096 </div> 9283 20097 <div class="refsect1" lang="en" xml:lang="en"> 9284 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520419"></a>20098 <a xmlns="http://www.w3.org/1999/xhtml" id="id678027"></a> 9285 20099 <div class="header">Notes:</div> 9286 20100 <p xmlns="http://www.w3.org/1999/xhtml"><em class="varname">result</em> should probably be interpreted … … 9306 20120 <div> 9307 20121 <div class="refsect1" lang="en" xml:lang="en"> 9308 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520479"></a>20122 <a xmlns="http://www.w3.org/1999/xhtml" id="id678096"></a> 9309 20123 <div class="header">Arguments and Values:</div> 9310 20124 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">semaphore</span></i>---An object of type CCL:SEMAPHORE.</p> … … 9319 20133 </div> 9320 20134 <div class="refsect1" lang="en" xml:lang="en"> 9321 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520545"></a>20135 <a xmlns="http://www.w3.org/1999/xhtml" id="id678173"></a> 9322 20136 <div class="header">Description:</div> 9323 20137 <p xmlns="http://www.w3.org/1999/xhtml">Waits until <em class="varname">semaphore</em> … … 9328 20142 </div> 9329 20143 <div class="refsect1" lang="en" xml:lang="en"> 9330 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520562"></a>20144 <a xmlns="http://www.w3.org/1999/xhtml" id="id678192"></a> 9331 20145 <div class="header">See Also:</div> 9332 20146 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_wait-on-semaphore" title="Function WAIT-ON-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">wait-on-semaphore</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> … … 9348 20162 <div> 9349 20163 <div class="refsect1" lang="en" xml:lang="en"> 9350 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520655"></a>20164 <a xmlns="http://www.w3.org/1999/xhtml" id="id678297"></a> 9351 20165 <div class="header">Arguments and Values:</div> 9352 20166 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">fd</span></i>---a file descriptor, which is a non-negative integer … … 9356 20170 </div> 9357 20171 <div class="refsect1" lang="en" xml:lang="en"> 9358 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520697"></a>20172 <a xmlns="http://www.w3.org/1999/xhtml" id="id678345"></a> 9359 20173 <div class="header">Description:</div> 9360 20174 <p xmlns="http://www.w3.org/1999/xhtml">Wait until input is available on <em class="varname">fd</em>. … … 9372 20186 </div> 9373 20187 <div class="refsect1" lang="en" xml:lang="en"> 9374 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520730"></a>20188 <a xmlns="http://www.w3.org/1999/xhtml" id="id678382"></a> 9375 20189 <div class="header">See Also:</div> 9376 20190 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 9377 20191 </div> 9378 20192 <div class="refsect1" lang="en" xml:lang="en"> 9379 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520768"></a>20193 <a xmlns="http://www.w3.org/1999/xhtml" id="id678424"></a> 9380 20194 <div class="header">Notes:</div> 9381 20195 <p xmlns="http://www.w3.org/1999/xhtml"> … … 9402 20216 <div> 9403 20217 <div class="refsect1" lang="en" xml:lang="en"> 9404 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520832"></a>20218 <a xmlns="http://www.w3.org/1999/xhtml" id="id678498"></a> 9405 20219 <div class="header">Arguments and Values:</div> 9406 20220 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">fd</span></i>---a file descriptor, which is a non-negative integer … … 9410 20224 </div> 9411 20225 <div class="refsect1" lang="en" xml:lang="en"> 9412 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520874"></a>20226 <a xmlns="http://www.w3.org/1999/xhtml" id="id678545"></a> 9413 20227 <div class="header">Description:</div> 9414 20228 <p xmlns="http://www.w3.org/1999/xhtml">Wait until output is possible on <em class="varname">fd</em> or until <em class="varname">timeout</em>, if … … 9423 20237 </div> 9424 20238 <div class="refsect1" lang="en" xml:lang="en"> 9425 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520907"></a>20239 <a xmlns="http://www.w3.org/1999/xhtml" id="id678583"></a> 9426 20240 <div class="header">See Also:</div> 9427 20241 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 9428 20242 </div> 9429 20243 <div class="refsect1" lang="en" xml:lang="en"> 9430 <a xmlns="http://www.w3.org/1999/xhtml" id="id 520944"></a>20244 <a xmlns="http://www.w3.org/1999/xhtml" id="id678625"></a> 9431 20245 <div class="header">Notes:</div> 9432 20246 <p xmlns="http://www.w3.org/1999/xhtml"> … … 9453 20267 <div> 9454 20268 <div class="refsect1" lang="en" xml:lang="en"> 9455 <a xmlns="http://www.w3.org/1999/xhtml" id="id 521009"></a>20269 <a xmlns="http://www.w3.org/1999/xhtml" id="id678699"></a> 9456 20270 <div class="header">Arguments and Values:</div> 9457 20271 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">body</span></i>---an implicit progn.</p> … … 9460 20274 </div> 9461 20275 <div class="refsect1" lang="en" xml:lang="en"> 9462 <a xmlns="http://www.w3.org/1999/xhtml" id="id 521048"></a>20276 <a xmlns="http://www.w3.org/1999/xhtml" id="id678743"></a> 9463 20277 <div class="header">Description:</div> 9464 20278 <p xmlns="http://www.w3.org/1999/xhtml">Requests exclusive read access to the standard terminal … … 9468 20282 </div> 9469 20283 <div class="refsect1" lang="en" xml:lang="en"> 9470 <a xmlns="http://www.w3.org/1999/xhtml" id="id 521064"></a>20284 <a xmlns="http://www.w3.org/1999/xhtml" id="id678762"></a> 9471 20285 <div class="header">See Also:</div> 9472 20286 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#v_request-terminal-input-via-break" title="Variable *REQUEST-TERMINAL-INPUT-VIA-BREAK*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*request-terminal-input-via-break*</b></a>, <a class="xref" href="#cmd_y" title="Toplevel Command :Y"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">:y</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a></span> … … 9487 20301 <div> 9488 20302 <div class="refsect1" lang="en" xml:lang="en"> 9489 <a xmlns="http://www.w3.org/1999/xhtml" id="id 521141"></a>20303 <a xmlns="http://www.w3.org/1999/xhtml" id="id678850"></a> 9490 20304 <div class="header">Value Type:</div> 9491 20305 <p xmlns="http://www.w3.org/1999/xhtml">A boolean.</p> 9492 20306 </div> 9493 20307 <div class="refsect1" lang="en" xml:lang="en"> 9494 <a xmlns="http://www.w3.org/1999/xhtml" id="id 521151"></a>20308 <a xmlns="http://www.w3.org/1999/xhtml" id="id678861"></a> 9495 20309 <div class="header">Initial Value:</div> 9496 20310 <p xmlns="http://www.w3.org/1999/xhtml">NIL.</p> 9497 20311 </div> 9498 20312 <div class="refsect1" lang="en" xml:lang="en"> 9499 <a xmlns="http://www.w3.org/1999/xhtml" id="id 521161"></a>20313 <a xmlns="http://www.w3.org/1999/xhtml" id="id678873"></a> 9500 20314 <div class="header">Description:</div> 9501 20315 <p xmlns="http://www.w3.org/1999/xhtml">Controls how attempts to obtain ownership of terminal input … … 9509 20323 </div> 9510 20324 <div class="refsect1" lang="en" xml:lang="en"> 9511 <a xmlns="http://www.w3.org/1999/xhtml" id="id 521174"></a>20325 <a xmlns="http://www.w3.org/1999/xhtml" id="id678888"></a> 9512 20326 <div class="header">See Also:</div> 9513 20327 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a>, <a class="xref" href="#cmd_y" title="Toplevel Command :Y"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">:y</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a></span> … … 9528 20342 <div> 9529 20343 <div class="refsect1" lang="en" xml:lang="en"> 9530 <a xmlns="http://www.w3.org/1999/xhtml" id="id 521265"></a>20344 <a xmlns="http://www.w3.org/1999/xhtml" id="id678991"></a> 9531 20345 <div class="header">Arguments and Values:</div> 9532 20346 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">p</span></i>---a lisp process (thread), designated either by … … 9537 20351 </div> 9538 20352 <div class="refsect1" lang="en" xml:lang="en"> 9539 <a xmlns="http://www.w3.org/1999/xhtml" id="id 521304"></a>20353 <a xmlns="http://www.w3.org/1999/xhtml" id="id679036"></a> 9540 20354 <div class="header">Description:</div> 9541 20355 <p xmlns="http://www.w3.org/1999/xhtml">:Y is a toplevel command, not a function. As such, it … … 9548 20362 </div> 9549 20363 <div class="refsect1" lang="en" xml:lang="en"> 9550 <a xmlns="http://www.w3.org/1999/xhtml" id="id 521326"></a>20364 <a xmlns="http://www.w3.org/1999/xhtml" id="id679060"></a> 9551 20365 <div class="header">See Also:</div> 9552 20366 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a>, <a class="xref" href="#v_request-terminal-input-via-break" title="Variable *REQUEST-TERMINAL-INPUT-VIA-BREAK*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*request-terminal-input-via-break*</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a></span> … … 9569 20383 <div> 9570 20384 <div class="refsect1" lang="en" xml:lang="en"> 9571 <a xmlns="http://www.w3.org/1999/xhtml" id="id 521419"></a>20385 <a xmlns="http://www.w3.org/1999/xhtml" id="id679166"></a> 9572 20386 <div class="header">Arguments and Values:</div> 9573 20387 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">process</span></i>---a process, typically created by <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#f_process-run-function" title="Function PROCESS-RUN-FUNCTION"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-run-function</b></a> or by <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#f_make-process" title="Function MAKE-PROCESS"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-process</b></a></p> … … 9579 20393 </div> 9580 20394 <div class="refsect1" lang="en" xml:lang="en"> 9581 <a xmlns="http://www.w3.org/1999/xhtml" id="id 521477"></a>20395 <a xmlns="http://www.w3.org/1999/xhtml" id="id679232"></a> 9582 20396 <div class="header">Description:</div> 9583 20397 <p xmlns="http://www.w3.org/1999/xhtml">Waits for the specified process to terminate. If the … … 9601 20415 <div> 9602 20416 <div> 9603 <h2 class="title"><a id="Programming-with-Sockets"></a>Chapter 7. Programming with Sockets</h2>20417 <h2 class="title"><a id="Programming-with-Sockets"></a>Chapter 8. Programming with Sockets</h2> 9604 20418 </div> 9605 20419 </div> … … 9609 20423 <dt> 9610 20424 <span class="sect1"> 9611 <a href="#Sockets-Overview"> 7.1. Overview</a>20425 <a href="#Sockets-Overview">8.1. Overview</a> 9612 20426 </span> 9613 20427 </dt> 9614 20428 <dt> 9615 20429 <span class="sect1"> 9616 <a href="#Sockets-Dictionary"> 7.2. Sockets Dictionary</a>20430 <a href="#Sockets-Dictionary">8.2. Sockets Dictionary</a> 9617 20431 </span> 9618 20432 </dt> … … 9623 20437 <div> 9624 20438 <div> 9625 <h2 class="title" style="clear: both"><a id="Sockets-Overview"></a> 7.1. Overview</h2>20439 <h2 class="title" style="clear: both"><a id="Sockets-Overview"></a>8.1. Overview</h2> 9626 20440 </div> 9627 20441 </div> … … 9699 20513 <div> 9700 20514 <div> 9701 <h2 class="title" style="clear: both"><a id="Sockets-Dictionary"></a> 7.2. Sockets Dictionary</h2>20515 <h2 class="title" style="clear: both"><a id="Sockets-Dictionary"></a>8.2. Sockets Dictionary</h2> 9702 20516 </div> 9703 20517 </div> … … 9720 20534 <div> 9721 20535 <div class="refsect1" lang="en" xml:lang="en"> 9722 <a xmlns="http://www.w3.org/1999/xhtml" id="id 458958"></a>20536 <a xmlns="http://www.w3.org/1999/xhtml" id="id629854"></a> 9723 20537 <div class="header">Arguments and Values:</div> 9724 20538 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">address-family</span></i>---The address/protocol family of this socket. Currently … … 9793 20607 specified number of seconds, an 9794 20608 <code xmlns="http://www.w3.org/1999/xhtml" class="literal">input-timeout</code> error is signalled. 9795 (see <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#Stream-Timeouts-And-Deadlines" title=" 9.1.4. Stream Timeouts and Deadlines">Section 9.1.4, âStream Timeouts and Deadlinesâ</a>)</p>20609 (see <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#Stream-Timeouts-And-Deadlines" title="10.1.4. Stream Timeouts and Deadlines">Section 10.1.4, âStream Timeouts and Deadlinesâ</a>)</p> 9796 20610 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">output-timeout</span></i>---The number of seconds before an output operation 9797 20611 times out. Must be a real number between zero and one … … 9799 20613 specified number of seconds, an 9800 20614 <code xmlns="http://www.w3.org/1999/xhtml" class="literal">output-timeout</code> error is signalled. 9801 (see <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#Stream-Timeouts-And-Deadlines" title=" 9.1.4. Stream Timeouts and Deadlines">Section 9.1.4, âStream Timeouts and Deadlinesâ</a>)</p>20615 (see <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#Stream-Timeouts-And-Deadlines" title="10.1.4. Stream Timeouts and Deadlines">Section 10.1.4, âStream Timeouts and Deadlinesâ</a>)</p> 9802 20616 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">connect-timeout</span></i>---The number of seconds before a connection 9803 20617 attempt times out. [TODO: what are acceptable values?] … … 9817 20631 <code xmlns="http://www.w3.org/1999/xhtml" class="literal">COMMUNICATION-DEADLINE-EXPIRED</code> 9818 20632 error is signalled. A deadline takes precedence over 9819 any input/output timeouts that may be set. (see <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#Stream-Timeouts-And-Deadlines" title=" 9.1.4. Stream Timeouts and Deadlines">Section 9.1.4, âStream Timeouts and Deadlinesâ</a>)</p>20633 any input/output timeouts that may be set. (see <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#Stream-Timeouts-And-Deadlines" title="10.1.4. Stream Timeouts and Deadlines">Section 10.1.4, âStream Timeouts and Deadlinesâ</a>)</p> 9820 20634 </div> 9821 20635 <div class="refsect1" lang="en" xml:lang="en"> 9822 <a xmlns="http://www.w3.org/1999/xhtml" id="id 492760"></a>20636 <a xmlns="http://www.w3.org/1999/xhtml" id="id610203"></a> 9823 20637 <div class="header">Description:</div> 9824 20638 <p xmlns="http://www.w3.org/1999/xhtml">Creates and returns a new socket</p> … … 9839 20653 <div> 9840 20654 <div class="refsect1" lang="en" xml:lang="en"> 9841 <a xmlns="http://www.w3.org/1999/xhtml" id="id 492822"></a>20655 <a xmlns="http://www.w3.org/1999/xhtml" id="id631425"></a> 9842 20656 <div class="header">Arguments and Values:</div> 9843 20657 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket</span></i>---The listener-socket to listen on.</p> … … 9847 20661 </div> 9848 20662 <div class="refsect1" lang="en" xml:lang="en"> 9849 <a xmlns="http://www.w3.org/1999/xhtml" id="id 492864"></a>20663 <a xmlns="http://www.w3.org/1999/xhtml" id="id631468"></a> 9850 20664 <div class="header">Description:</div> 9851 20665 <p xmlns="http://www.w3.org/1999/xhtml">Extracts the first connection on the queue of pending … … 9873 20687 <div> 9874 20688 <div class="refsect1" lang="en" xml:lang="en"> 9875 <a xmlns="http://www.w3.org/1999/xhtml" id="id 492929"></a>20689 <a xmlns="http://www.w3.org/1999/xhtml" id="id652151"></a> 9876 20690 <div class="header">Arguments and Values:</div> 9877 20691 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">dotted</span></i>---A string representing an IP address in the … … 9881 20695 </div> 9882 20696 <div class="refsect1" lang="en" xml:lang="en"> 9883 <a xmlns="http://www.w3.org/1999/xhtml" id="id 501834"></a>20697 <a xmlns="http://www.w3.org/1999/xhtml" id="id652192"></a> 9884 20698 <div class="header">Description:</div> 9885 20699 <p xmlns="http://www.w3.org/1999/xhtml">Converts a dotted-string representation of a host address to … … 9901 20715 <div> 9902 20716 <div class="refsect1" lang="en" xml:lang="en"> 9903 <a xmlns="http://www.w3.org/1999/xhtml" id="id 501896"></a>20717 <a xmlns="http://www.w3.org/1999/xhtml" id="id652254"></a> 9904 20718 <div class="header">Arguments and Values:</div> 9905 20719 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">ipaddr</span></i>---A 32-bit integer representing an internet host address</p> … … 9910 20724 </div> 9911 20725 <div class="refsect1" lang="en" xml:lang="en"> 9912 <a xmlns="http://www.w3.org/1999/xhtml" id="id 501938"></a>20726 <a xmlns="http://www.w3.org/1999/xhtml" id="id658993"></a> 9913 20727 <div class="header">Description:</div> 9914 20728 <p xmlns="http://www.w3.org/1999/xhtml">Converts a 32-bit unsigned IP address into octets.</p> … … 9929 20743 <div> 9930 20744 <div class="refsect1" lang="en" xml:lang="en"> 9931 <a xmlns="http://www.w3.org/1999/xhtml" id="id 501999"></a>20745 <a xmlns="http://www.w3.org/1999/xhtml" id="id659054"></a> 9932 20746 <div class="header">Arguments and Values:</div> 9933 20747 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">ipaddr</span></i>---a 32-bit integer representing an internet host address</p> … … 9936 20750 </div> 9937 20751 <div class="refsect1" lang="en" xml:lang="en"> 9938 <a xmlns="http://www.w3.org/1999/xhtml" id="id 502039"></a>20752 <a xmlns="http://www.w3.org/1999/xhtml" id="id659094"></a> 9939 20753 <div class="header">Description:</div> 9940 20754 <p xmlns="http://www.w3.org/1999/xhtml">Converts a 32-bit unsigned IP address into a host name … … 9956 20770 <div> 9957 20771 <div class="refsect1" lang="en" xml:lang="en"> 9958 <a xmlns="http://www.w3.org/1999/xhtml" id="id 502097"></a>20772 <a xmlns="http://www.w3.org/1999/xhtml" id="id652025"></a> 9959 20773 <div class="header">Arguments and Values:</div> 9960 20774 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">host</span></i>---Specifies the host. It can be either a host name … … 9964 20778 </div> 9965 20779 <div class="refsect1" lang="en" xml:lang="en"> 9966 <a xmlns="http://www.w3.org/1999/xhtml" id="id 502124"></a>20780 <a xmlns="http://www.w3.org/1999/xhtml" id="id652053"></a> 9967 20781 <div class="header">Description:</div> 9968 20782 <p xmlns="http://www.w3.org/1999/xhtml">Converts a host spec in any of the acceptable formats into a … … 9984 20798 <div> 9985 20799 <div class="refsect1" lang="en" xml:lang="en"> 9986 <a xmlns="http://www.w3.org/1999/xhtml" id="id 502182"></a>20800 <a xmlns="http://www.w3.org/1999/xhtml" id="id659294"></a> 9987 20801 <div class="header">Arguments and Values:</div> 9988 20802 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">port</span></i>---Specifies the port. It can be either a string, such as … … 9993 20807 </div> 9994 20808 <div class="refsect1" lang="en" xml:lang="en"> 9995 <a xmlns="http://www.w3.org/1999/xhtml" id="id 502225"></a>20809 <a xmlns="http://www.w3.org/1999/xhtml" id="id659336"></a> 9996 20810 <div class="header">Description:</div> 9997 20811 <p xmlns="http://www.w3.org/1999/xhtml">Finds the port number for the specified port and protocol</p> … … 10013 20827 <div> 10014 20828 <div class="refsect1" lang="en" xml:lang="en"> 10015 <a xmlns="http://www.w3.org/1999/xhtml" id="id 494361"></a>20829 <a xmlns="http://www.w3.org/1999/xhtml" id="id659397"></a> 10016 20830 <div class="header">Arguments and Values:</div> 10017 20831 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket</span></i>---The socket to read from</p> … … 10030 20844 </div> 10031 20845 <div class="refsect1" lang="en" xml:lang="en"> 10032 <a xmlns="http://www.w3.org/1999/xhtml" id="id 494452"></a>20846 <a xmlns="http://www.w3.org/1999/xhtml" id="id673384"></a> 10033 20847 <div class="header">Description:</div> 10034 20848 <p xmlns="http://www.w3.org/1999/xhtml">Reads a UDP packet from a socket. If no packets are … … 10067 20881 <div> 10068 20882 <div class="refsect1" lang="en" xml:lang="en"> 10069 <a xmlns="http://www.w3.org/1999/xhtml" id="id 494552"></a>20883 <a xmlns="http://www.w3.org/1999/xhtml" id="id649408"></a> 10070 20884 <div class="header">Arguments and Values:</div> 10071 20885 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket</span></i>---The socket to write to</p> … … 10082 20896 </div> 10083 20897 <div class="refsect1" lang="en" xml:lang="en"> 10084 <a xmlns="http://www.w3.org/1999/xhtml" id="id 494654"></a>20898 <a xmlns="http://www.w3.org/1999/xhtml" id="id649511"></a> 10085 20899 <div class="header">Description:</div> 10086 20900 <p xmlns="http://www.w3.org/1999/xhtml">Send a UDP packet over a socket.</p> … … 10101 20915 <div> 10102 20916 <div class="refsect1" lang="en" xml:lang="en"> 10103 <a xmlns="http://www.w3.org/1999/xhtml" id="id 494716"></a>20917 <a xmlns="http://www.w3.org/1999/xhtml" id="id684594"></a> 10104 20918 <div class="header">Arguments and Values:</div> 10105 20919 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket</span></i>---The socket to shut down (typically a tcp-stream)</p> … … 10108 20922 </div> 10109 20923 <div class="refsect1" lang="en" xml:lang="en"> 10110 <a xmlns="http://www.w3.org/1999/xhtml" id="id 494756"></a>20924 <a xmlns="http://www.w3.org/1999/xhtml" id="id684634"></a> 10111 20925 <div class="header">Description:</div> 10112 20926 <p xmlns="http://www.w3.org/1999/xhtml">Shuts down part of a bidirectional connection. This is … … 10129 20943 <div> 10130 20944 <div class="refsect1" lang="en" xml:lang="en"> 10131 <a xmlns="http://www.w3.org/1999/xhtml" id="id 500590"></a>20945 <a xmlns="http://www.w3.org/1999/xhtml" id="id684693"></a> 10132 20946 <div class="header">Arguments and Values:</div> 10133 20947 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket</span></i>---The socket</p> 10134 20948 </div> 10135 20949 <div class="refsect1" lang="en" xml:lang="en"> 10136 <a xmlns="http://www.w3.org/1999/xhtml" id="id 500616"></a>20950 <a xmlns="http://www.w3.org/1999/xhtml" id="id659854"></a> 10137 20951 <div class="header">Description:</div> 10138 20952 <p xmlns="http://www.w3.org/1999/xhtml">Returns the native OS's representation of the socket, or … … 10159 20973 <div> 10160 20974 <div class="refsect1" lang="en" xml:lang="en"> 10161 <a xmlns="http://www.w3.org/1999/xhtml" id="id 500677"></a>20975 <a xmlns="http://www.w3.org/1999/xhtml" id="id659915"></a> 10162 20976 <div class="header">Arguments and Values:</div> 10163 20977 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket</span></i>---The socket</p> 10164 20978 </div> 10165 20979 <div class="refsect1" lang="en" xml:lang="en"> 10166 <a xmlns="http://www.w3.org/1999/xhtml" id="id 500704"></a>20980 <a xmlns="http://www.w3.org/1999/xhtml" id="id659941"></a> 10167 20981 <div class="header">Description:</div> 10168 20982 <p xmlns="http://www.w3.org/1999/xhtml">Returns the 32-bit unsigned IP address of the remote host, … … 10184 20998 <div> 10185 20999 <div class="refsect1" lang="en" xml:lang="en"> 10186 <a xmlns="http://www.w3.org/1999/xhtml" id="id 500762"></a>21000 <a xmlns="http://www.w3.org/1999/xhtml" id="id659999"></a> 10187 21001 <div class="header">Arguments and Values:</div> 10188 21002 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket</span></i>---The socket</p> 10189 21003 </div> 10190 21004 <div class="refsect1" lang="en" xml:lang="en"> 10191 <a xmlns="http://www.w3.org/1999/xhtml" id="id 500788"></a>21005 <a xmlns="http://www.w3.org/1999/xhtml" id="id644038"></a> 10192 21006 <div class="header">Description:</div> 10193 21007 <p xmlns="http://www.w3.org/1999/xhtml">Returns the remote port number, or NIL if the socket is not … … 10209 21023 <div> 10210 21024 <div class="refsect1" lang="en" xml:lang="en"> 10211 <a xmlns="http://www.w3.org/1999/xhtml" id="id 500845"></a>21025 <a xmlns="http://www.w3.org/1999/xhtml" id="id644095"></a> 10212 21026 <div class="header">Arguments and Values:</div> 10213 21027 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket</span></i>---The socket</p> 10214 21028 </div> 10215 21029 <div class="refsect1" lang="en" xml:lang="en"> 10216 <a xmlns="http://www.w3.org/1999/xhtml" id="id 500871"></a>21030 <a xmlns="http://www.w3.org/1999/xhtml" id="id644122"></a> 10217 21031 <div class="header">Description:</div> 10218 21032 <p xmlns="http://www.w3.org/1999/xhtml">Returns 32-bit unsigned IP address of the local host.</p> … … 10233 21047 <div> 10234 21048 <div class="refsect1" lang="en" xml:lang="en"> 10235 <a xmlns="http://www.w3.org/1999/xhtml" id="id 500928"></a>21049 <a xmlns="http://www.w3.org/1999/xhtml" id="id644179"></a> 10236 21050 <div class="header">Arguments and Values:</div> 10237 21051 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket</span></i>---The socket</p> 10238 21052 </div> 10239 21053 <div class="refsect1" lang="en" xml:lang="en"> 10240 <a xmlns="http://www.w3.org/1999/xhtml" id="id 500954"></a>21054 <a xmlns="http://www.w3.org/1999/xhtml" id="id644205"></a> 10241 21055 <div class="header">Description:</div> 10242 21056 <p xmlns="http://www.w3.org/1999/xhtml">Returns the local port number</p> … … 10257 21071 <div> 10258 21072 <div class="refsect1" lang="en" xml:lang="en"> 10259 <a xmlns="http://www.w3.org/1999/xhtml" id="id 501012"></a>21073 <a xmlns="http://www.w3.org/1999/xhtml" id="id659156"></a> 10260 21074 <div class="header">Arguments and Values:</div> 10261 21075 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket</span></i>---The socket</p> 10262 21076 </div> 10263 21077 <div class="refsect1" lang="en" xml:lang="en"> 10264 <a xmlns="http://www.w3.org/1999/xhtml" id="id 501038"></a>21078 <a xmlns="http://www.w3.org/1999/xhtml" id="id659182"></a> 10265 21079 <div class="header">Description:</div> 10266 21080 <p xmlns="http://www.w3.org/1999/xhtml">Returns :internet or :file, as appropriate.</p> … … 10281 21095 <div> 10282 21096 <div class="refsect1" lang="en" xml:lang="en"> 10283 <a xmlns="http://www.w3.org/1999/xhtml" id="id 501095"></a>21097 <a xmlns="http://www.w3.org/1999/xhtml" id="id659239"></a> 10284 21098 <div class="header">Arguments and Values:</div> 10285 21099 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket</span></i>---The socket</p> 10286 21100 </div> 10287 21101 <div class="refsect1" lang="en" xml:lang="en"> 10288 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506532"></a>21102 <a xmlns="http://www.w3.org/1999/xhtml" id="id659266"></a> 10289 21103 <div class="header">Description:</div> 10290 21104 <p xmlns="http://www.w3.org/1999/xhtml">Returns :active for tcp-stream, :passive for … … 10306 21120 <div> 10307 21121 <div class="refsect1" lang="en" xml:lang="en"> 10308 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506590"></a>21122 <a xmlns="http://www.w3.org/1999/xhtml" id="id683891"></a> 10309 21123 <div class="header">Arguments and Values:</div> 10310 21124 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket</span></i>---The socket</p> 10311 21125 </div> 10312 21126 <div class="refsect1" lang="en" xml:lang="en"> 10313 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506616"></a>21127 <a xmlns="http://www.w3.org/1999/xhtml" id="id683917"></a> 10314 21128 <div class="header">Description:</div> 10315 21129 <p xmlns="http://www.w3.org/1999/xhtml">Returns the socket format as specified by the :format … … 10331 21145 <div> 10332 21146 <div class="refsect1" lang="en" xml:lang="en"> 10333 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506673"></a>21147 <a xmlns="http://www.w3.org/1999/xhtml" id="id683975"></a> 10334 21148 <div class="header">Arguments and Values:</div> 10335 21149 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket</span></i>---The socket</p> 10336 21150 </div> 10337 21151 <div class="refsect1" lang="en" xml:lang="en"> 10338 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506699"></a>21152 <a xmlns="http://www.w3.org/1999/xhtml" id="id684001"></a> 10339 21153 <div class="header">Description:</div> 10340 21154 <p xmlns="http://www.w3.org/1999/xhtml">returns :stream for tcp-stream and listener-socket, and … … 10355 21169 <div> 10356 21170 <div class="refsect1" lang="en" xml:lang="en"> 10357 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506742"></a>21171 <a xmlns="http://www.w3.org/1999/xhtml" id="id684044"></a> 10358 21172 <div class="header">Description:</div> 10359 21173 <p xmlns="http://www.w3.org/1999/xhtml">The class of OS errors signaled by socket functions</p> 10360 21174 </div> 10361 21175 <div class="refsect1" lang="en" xml:lang="en"> 10362 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506753"></a>21176 <a xmlns="http://www.w3.org/1999/xhtml" id="id684054"></a> 10363 21177 <div class="header">Superclasses:</div> 10364 21178 <p xmlns="http://www.w3.org/1999/xhtml">simple-error</p> … … 10379 21193 <div> 10380 21194 <div class="refsect1" lang="en" xml:lang="en"> 10381 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506810"></a>21195 <a xmlns="http://www.w3.org/1999/xhtml" id="id668842"></a> 10382 21196 <div class="header">Arguments and Values:</div> 10383 21197 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket-error</span></i>---the condition</p> 10384 21198 </div> 10385 21199 <div class="refsect1" lang="en" xml:lang="en"> 10386 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506836"></a>21200 <a xmlns="http://www.w3.org/1999/xhtml" id="id668868"></a> 10387 21201 <div class="header">Description:</div> 10388 21202 <p xmlns="http://www.w3.org/1999/xhtml">The OS error code of the error</p> … … 10403 21217 <div> 10404 21218 <div class="refsect1" lang="en" xml:lang="en"> 10405 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506894"></a>21219 <a xmlns="http://www.w3.org/1999/xhtml" id="id668926"></a> 10406 21220 <div class="header">Arguments and Values:</div> 10407 21221 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket-error</span></i>---the condition</p> 10408 21222 </div> 10409 21223 <div class="refsect1" lang="en" xml:lang="en"> 10410 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506921"></a>21224 <a xmlns="http://www.w3.org/1999/xhtml" id="id668953"></a> 10411 21225 <div class="header">Description:</div> 10412 21226 <p xmlns="http://www.w3.org/1999/xhtml">A symbol representing the error code in a more … … 10432 21246 <div> 10433 21247 <div class="refsect1" lang="en" xml:lang="en"> 10434 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506984"></a>21248 <a xmlns="http://www.w3.org/1999/xhtml" id="id669016"></a> 10435 21249 <div class="header">Arguments and Values:</div> 10436 21250 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket-error</span></i>---the condition</p> 10437 21251 </div> 10438 21252 <div class="refsect1" lang="en" xml:lang="en"> 10439 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507010"></a>21253 <a xmlns="http://www.w3.org/1999/xhtml" id="id669575"></a> 10440 21254 <div class="header">Description:</div> 10441 21255 <p xmlns="http://www.w3.org/1999/xhtml">A string describing the context where the error happened. On … … 10458 21272 <div> 10459 21273 <div class="refsect1" lang="en" xml:lang="en"> 10460 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507071"></a>21274 <a xmlns="http://www.w3.org/1999/xhtml" id="id669636"></a> 10461 21275 <div class="header">Arguments and Values:</div> 10462 21276 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket</span></i>---The socket to close</p> … … 10469 21283 </div> 10470 21284 <div class="refsect1" lang="en" xml:lang="en"> 10471 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507114"></a>21285 <a xmlns="http://www.w3.org/1999/xhtml" id="id669680"></a> 10472 21286 <div class="header">Description:</div> 10473 21287 <p xmlns="http://www.w3.org/1999/xhtml">The close generic function can be applied to sockets. It … … 10490 21304 <div> 10491 21305 <div class="refsect1" lang="en" xml:lang="en"> 10492 <a xmlns="http://www.w3.org/1999/xhtml" id="id 501155"></a>21306 <a xmlns="http://www.w3.org/1999/xhtml" id="id669742"></a> 10493 21307 <div class="header">Arguments and Values:</div> 10494 21308 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">var</span></i>---variable to bind</p> … … 10497 21311 </div> 10498 21312 <div class="refsect1" lang="en" xml:lang="en"> 10499 <a xmlns="http://www.w3.org/1999/xhtml" id="id 501211"></a>21313 <a xmlns="http://www.w3.org/1999/xhtml" id="id669798"></a> 10500 21314 <div class="header">Description:</div> 10501 21315 <p xmlns="http://www.w3.org/1999/xhtml">executes body with var bound to the result of applying … … 10510 21324 <div> 10511 21325 <div> 10512 <h2 class="title"><a id="Running-Other-Programs-as-Subprocesses"></a>Chapter 8. Running Other Programs as Subprocesses</h2>21326 <h2 class="title"><a id="Running-Other-Programs-as-Subprocesses"></a>Chapter 9. Running Other Programs as Subprocesses</h2> 10513 21327 </div> 10514 21328 </div> … … 10518 21332 <dt> 10519 21333 <span class="sect1"> 10520 <a href="#Subprocess-Overview"> 8.1. Overview</a>21334 <a href="#Subprocess-Overview">9.1. Overview</a> 10521 21335 </span> 10522 21336 </dt> 10523 21337 <dt> 10524 21338 <span class="sect1"> 10525 <a href="#Subprocess-Examples"> 8.2. Examples</a>21339 <a href="#Subprocess-Examples">9.2. Examples</a> 10526 21340 </span> 10527 21341 </dt> 10528 21342 <dt> 10529 21343 <span class="sect1"> 10530 <a href="#Limitations-and-known-bugs"> 8.3. Limitations and known bugs</a>21344 <a href="#Limitations-and-known-bugs">9.3. Limitations and known bugs</a> 10531 21345 </span> 10532 21346 </dt> 10533 21347 <dt> 10534 21348 <span class="sect1"> 10535 <a href="#External-Program-Dictionary"> 8.4. External-Program Dictionary</a>21349 <a href="#External-Program-Dictionary">9.4. External-Program Dictionary</a> 10536 21350 </span> 10537 21351 </dt> … … 10542 21356 <div> 10543 21357 <div> 10544 <h2 class="title" style="clear: both"><a id="Subprocess-Overview"></a> 8.1. Overview</h2>21358 <h2 class="title" style="clear: both"><a id="Subprocess-Overview"></a>9.1. Overview</h2> 10545 21359 </div> 10546 21360 </div> … … 10559 21373 <div> 10560 21374 <div> 10561 <h2 class="title" style="clear: both"><a id="Subprocess-Examples"></a> 8.2. Examples</h2>21375 <h2 class="title" style="clear: both"><a id="Subprocess-Examples"></a>9.2. Examples</h2> 10562 21376 </div> 10563 21377 </div> … … 10583 21397 <div> 10584 21398 <div> 10585 <h2 class="title" style="clear: both"><a id="Limitations-and-known-bugs"></a> 8.3. Limitations and known bugs</h2>21399 <h2 class="title" style="clear: both"><a id="Limitations-and-known-bugs"></a>9.3. Limitations and known bugs</h2> 10586 21400 </div> 10587 21401 </div> … … 10608 21422 <div> 10609 21423 <div> 10610 <h2 class="title" style="clear: both"><a id="External-Program-Dictionary"></a> 8.4. External-Program Dictionary</h2>21424 <h2 class="title" style="clear: both"><a id="External-Program-Dictionary"></a>9.4. External-Program Dictionary</h2> 10611 21425 </div> 10612 21426 </div> … … 10629 21443 <div> 10630 21444 <div class="refsect1" lang="en" xml:lang="en"> 10631 <a xmlns="http://www.w3.org/1999/xhtml" id="id 482804"></a>21445 <a xmlns="http://www.w3.org/1999/xhtml" id="id613494"></a> 10632 21446 <div class="header">Arguments and Values:</div> 10633 21447 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">program</span></i>---A string or pathname which denotes an executable file. … … 10680 21494 </div> 10681 21495 <div class="refsect1" lang="en" xml:lang="en"> 10682 <a xmlns="http://www.w3.org/1999/xhtml" id="id 483958"></a>21496 <a xmlns="http://www.w3.org/1999/xhtml" id="id604999"></a> 10683 21497 <div class="header">Description:</div> 10684 21498 <p xmlns="http://www.w3.org/1999/xhtml">Runs the specified program in an external (Unix) process, … … 10700 21514 <div> 10701 21515 <div class="refsect1" lang="en" xml:lang="en"> 10702 <a xmlns="http://www.w3.org/1999/xhtml" id="id 484017"></a>21516 <a xmlns="http://www.w3.org/1999/xhtml" id="id641076"></a> 10703 21517 <div class="header">Arguments and Values:</div> 10704 21518 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">proc</span></i>---An EXTERNAL-PROCESS, as returned by RUN-PROGRAM.</p> … … 10706 21520 </div> 10707 21521 <div class="refsect1" lang="en" xml:lang="en"> 10708 <a xmlns="http://www.w3.org/1999/xhtml" id="id 463425"></a>21522 <a xmlns="http://www.w3.org/1999/xhtml" id="id641117"></a> 10709 21523 <div class="header">Description:</div> 10710 21524 <p xmlns="http://www.w3.org/1999/xhtml">Sends the specified "signal" to the specified … … 10729 21543 <div> 10730 21544 <div class="refsect1" lang="en" xml:lang="en"> 10731 <a xmlns="http://www.w3.org/1999/xhtml" id="id 463486"></a>21545 <a xmlns="http://www.w3.org/1999/xhtml" id="id625357"></a> 10732 21546 <div class="header">Arguments and Values:</div> 10733 21547 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">proc</span></i>---An EXTERNAL-PROCESS, as returned by RUN-PROGRAM.</p> 10734 21548 </div> 10735 21549 <div class="refsect1" lang="en" xml:lang="en"> 10736 <a xmlns="http://www.w3.org/1999/xhtml" id="id 463512"></a>21550 <a xmlns="http://www.w3.org/1999/xhtml" id="id625383"></a> 10737 21551 <div class="header">Description:</div> 10738 21552 <p xmlns="http://www.w3.org/1999/xhtml">Returns the <span class="emphasis"><em>process id</em></span> assigned to … … 10756 21570 <div> 10757 21571 <div class="refsect1" lang="en" xml:lang="en"> 10758 <a xmlns="http://www.w3.org/1999/xhtml" id="id 502635"></a>21572 <a xmlns="http://www.w3.org/1999/xhtml" id="id639197"></a> 10759 21573 <div class="header">Arguments and Values:</div> 10760 21574 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">proc</span></i>---An EXTERNAL-PROCESS, as returned by RUN-PROGRAM.</p> 10761 21575 </div> 10762 21576 <div class="refsect1" lang="en" xml:lang="en"> 10763 <a xmlns="http://www.w3.org/1999/xhtml" id="id 502661"></a>21577 <a xmlns="http://www.w3.org/1999/xhtml" id="id639222"></a> 10764 21578 <div class="header">Description:</div> 10765 21579 <p xmlns="http://www.w3.org/1999/xhtml">Returns the stream created when the input argument to … … 10782 21596 <div> 10783 21597 <div class="refsect1" lang="en" xml:lang="en"> 10784 <a xmlns="http://www.w3.org/1999/xhtml" id="id 458510"></a>21598 <a xmlns="http://www.w3.org/1999/xhtml" id="id683611"></a> 10785 21599 <div class="header">Arguments and Values:</div> 10786 21600 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">proc</span></i>---An EXTERNAL-PROCESS, as returned by RUN-PROGRAM.</p> 10787 21601 </div> 10788 21602 <div class="refsect1" lang="en" xml:lang="en"> 10789 <a xmlns="http://www.w3.org/1999/xhtml" id="id 458536"></a>21603 <a xmlns="http://www.w3.org/1999/xhtml" id="id683637"></a> 10790 21604 <div class="header">Description:</div> 10791 21605 <p xmlns="http://www.w3.org/1999/xhtml">Returns the stream created when the output argument to … … 10809 21623 <div> 10810 21624 <div class="refsect1" lang="en" xml:lang="en"> 10811 <a xmlns="http://www.w3.org/1999/xhtml" id="id 458597"></a>21625 <a xmlns="http://www.w3.org/1999/xhtml" id="id625165"></a> 10812 21626 <div class="header">Arguments and Values:</div> 10813 21627 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">proc</span></i>---An EXTERNAL-PROCESS, as returned by RUN-PROGRAM.</p> 10814 21628 </div> 10815 21629 <div class="refsect1" lang="en" xml:lang="en"> 10816 <a xmlns="http://www.w3.org/1999/xhtml" id="id 488650"></a>21630 <a xmlns="http://www.w3.org/1999/xhtml" id="id625190"></a> 10817 21631 <div class="header">Description:</div> 10818 21632 <p xmlns="http://www.w3.org/1999/xhtml">Returns the stream created when the error argument to … … 10836 21650 <div> 10837 21651 <div class="refsect1" lang="en" xml:lang="en"> 10838 <a xmlns="http://www.w3.org/1999/xhtml" id="id 488710"></a>21652 <a xmlns="http://www.w3.org/1999/xhtml" id="id625251"></a> 10839 21653 <div class="header">Arguments and Values:</div> 10840 21654 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">proc</span></i>---An EXTERNAL-PROCESS, as returned by RUN-PROGRAM.</p> 10841 21655 </div> 10842 21656 <div class="refsect1" lang="en" xml:lang="en"> 10843 <a xmlns="http://www.w3.org/1999/xhtml" id="id 488736"></a>21657 <a xmlns="http://www.w3.org/1999/xhtml" id="id617122"></a> 10844 21658 <div class="header">Description:</div> 10845 21659 <p xmlns="http://www.w3.org/1999/xhtml">Returns, as multiple values, a keyword denoting the status … … 10856 21670 <div> 10857 21671 <div> 10858 <h2 class="title"><a id="Streams"></a>Chapter 9. Streams</h2>21672 <h2 class="title"><a id="Streams"></a>Chapter 10. Streams</h2> 10859 21673 </div> 10860 21674 </div> … … 10864 21678 <dt> 10865 21679 <span class="sect1"> 10866 <a href="#CCL-Stream-Extensions"> 9.1. Stream Extensions</a>21680 <a href="#CCL-Stream-Extensions">10.1. Stream Extensions</a> 10867 21681 </span> 10868 21682 </dt> … … 10871 21685 <dt> 10872 21686 <span class="sect2"> 10873 <a href="#id 488242">9.1.1. Stream External Format</a>21687 <a href="#id612831">10.1.1. Stream External Format</a> 10874 21688 </span> 10875 21689 </dt> 10876 21690 <dt> 10877 21691 <span class="sect2"> 10878 <a href="#Additional-Open-Keywords"> 9.1.2. Additional keywords for OPEN and MAKE-SOCKET</a>21692 <a href="#Additional-Open-Keywords">10.1.2. Additional keywords for OPEN and MAKE-SOCKET</a> 10879 21693 </span> 10880 21694 </dt> 10881 21695 <dt> 10882 21696 <span class="sect2"> 10883 <a href="#Basic-Versus-Fundamental-Streams"> 9.1.3. Basic Versus Fundamental Streams</a>21697 <a href="#Basic-Versus-Fundamental-Streams">10.1.3. Basic Versus Fundamental Streams</a> 10884 21698 </span> 10885 21699 </dt> 10886 21700 <dt> 10887 21701 <span class="sect2"> 10888 <a href="#Stream-Timeouts-And-Deadlines"> 9.1.4. Stream Timeouts and Deadlines</a>21702 <a href="#Stream-Timeouts-And-Deadlines">10.1.4. Stream Timeouts and Deadlines</a> 10889 21703 </span> 10890 21704 </dt> 10891 21705 <dt> 10892 21706 <span class="sect2"> 10893 <a href="#Open-File-Streams"> 9.1.5. Open File Streams</a>21707 <a href="#Open-File-Streams">10.1.5. Open File Streams</a> 10894 21708 </span> 10895 21709 </dt> … … 10898 21712 <dt> 10899 21713 <span class="sect1"> 10900 <a href="#Creating-Your-Own-Stream-Classes-with-Gray-Streams"> 9.2. Creating Your Own Stream Classes with Gray Streams</a>21714 <a href="#Creating-Your-Own-Stream-Classes-with-Gray-Streams">10.2. Creating Your Own Stream Classes with Gray Streams</a> 10901 21715 </span> 10902 21716 </dt> … … 10905 21719 <dt> 10906 21720 <span class="sect2"> 10907 <a href="#Streams-Overview"> 9.2.1. Overview</a>21721 <a href="#Streams-Overview">10.2.1. Overview</a> 10908 21722 </span> 10909 21723 </dt> 10910 21724 <dt> 10911 21725 <span class="sect2"> 10912 <a href="#Extending-READ-SEQUENCE-and-WRITE-SEQUENCE"> 9.2.2. Extending READ-SEQUENCE and WRITE-SEQUENCE</a>21726 <a href="#Extending-READ-SEQUENCE-and-WRITE-SEQUENCE">10.2.2. Extending READ-SEQUENCE and WRITE-SEQUENCE</a> 10913 21727 </span> 10914 21728 </dt> 10915 21729 <dt> 10916 21730 <span class="sect2"> 10917 <a href="#Multibyte-I-O"> 9.2.3. Multibyte I/O</a>21731 <a href="#Multibyte-I-O">10.2.3. Multibyte I/O</a> 10918 21732 </span> 10919 21733 </dt> 10920 21734 <dt> 10921 21735 <span class="sect2"> 10922 <a href="#Gray-Streams-Dictionary"> 9.2.4. Gray Streams Dictionary</a>21736 <a href="#Gray-Streams-Dictionary">10.2.4. Gray Streams Dictionary</a> 10923 21737 </span> 10924 21738 </dt> … … 10931 21745 <div> 10932 21746 <div> 10933 <h2 class="title" style="clear: both"><a id="CCL-Stream-Extensions"></a> 9.1. Stream Extensions</h2>21747 <h2 class="title" style="clear: both"><a id="CCL-Stream-Extensions"></a>10.1. Stream Extensions</h2> 10934 21748 </div> 10935 21749 </div> … … 10939 21753 <div> 10940 21754 <div> 10941 <h3 class="title"><a id="id 488242"></a>9.1.1. Stream External Format</h3>21755 <h3 class="title"><a id="id612831"></a>10.1.1. Stream External Format</h3> 10942 21756 </div> 10943 21757 </div> … … 10955 21769 <div> 10956 21770 <div> 10957 <h3 class="title"><a id="Additional-Open-Keywords"></a> 9.1.2. Additional keywords for OPEN and MAKE-SOCKET</h3>21771 <h3 class="title"><a id="Additional-Open-Keywords"></a>10.1.2. Additional keywords for OPEN and MAKE-SOCKET</h3> 10958 21772 </div> 10959 21773 </div> … … 11047 21861 a Gray stream, i.e. whether or not the stream is an instance 11048 21862 of <code class="literal">FUNDAMENTAL-STREAM</code> or 11049 <code class="literal">CCL::BASIC-STREAM</code>(see <a class="xref" href="#Basic-Versus-Fundamental-Streams" title=" 9.1.3. Basic Versus Fundamental Streams">Section 9.1.3, âBasic Versus Fundamental Streamsâ</a>). Defaults to21863 <code class="literal">CCL::BASIC-STREAM</code>(see <a class="xref" href="#Basic-Versus-Fundamental-Streams" title="10.1.3. Basic Versus Fundamental Streams">Section 10.1.3, âBasic Versus Fundamental Streamsâ</a>). Defaults to 11050 21864 <code class="literal">T</code>.</p> 11051 21865 </dd> … … 11057 21871 <div> 11058 21872 <div> 11059 <h3 class="title"><a id="Basic-Versus-Fundamental-Streams"></a> 9.1.3. Basic Versus Fundamental Streams</h3>11060 </div> 11061 </div> 11062 </div> 11063 <p xmlns="http://www.w3.org/1999/xhtml">Gray streams (see <a class="xref" href="#Creating-Your-Own-Stream-Classes-with-Gray-Streams" title=" 9.2. Creating Your Own Stream Classes with Gray Streams">Section 9.2, âCreating Your Own Stream Classes with Gray Streamsâ</a>)21873 <h3 class="title"><a id="Basic-Versus-Fundamental-Streams"></a>10.1.3. Basic Versus Fundamental Streams</h3> 21874 </div> 21875 </div> 21876 </div> 21877 <p xmlns="http://www.w3.org/1999/xhtml">Gray streams (see <a class="xref" href="#Creating-Your-Own-Stream-Classes-with-Gray-Streams" title="10.2. Creating Your Own Stream Classes with Gray Streams">Section 10.2, âCreating Your Own Stream Classes with Gray Streamsâ</a>) 11064 21878 all inherit from <code class="literal">FUNDAMENTAL-STREAM</code> whereas 11065 21879 basic streams inherit from <code class="literal">CCL::BASIC-STREAM</code>. … … 11098 21912 <div> 11099 21913 <div> 11100 <h3 class="title"><a id="Stream-Timeouts-And-Deadlines"></a> 9.1.4. Stream Timeouts and Deadlines</h3>11101 </div> 11102 </div> 11103 </div> 11104 <a xmlns="http://www.w3.org/1999/xhtml" id="id 481519" class="indexterm"></a>11105 <a xmlns="http://www.w3.org/1999/xhtml" id="id 481529" class="indexterm"></a>11106 <a xmlns="http://www.w3.org/1999/xhtml" id="id 481539" class="indexterm"></a>11107 <a xmlns="http://www.w3.org/1999/xhtml" id="id 481548" class="indexterm"></a>11108 <a xmlns="http://www.w3.org/1999/xhtml" id="id 500066" class="indexterm"></a>11109 <a xmlns="http://www.w3.org/1999/xhtml" id="id 500075" class="indexterm"></a>21914 <h3 class="title"><a id="Stream-Timeouts-And-Deadlines"></a>10.1.4. Stream Timeouts and Deadlines</h3> 21915 </div> 21916 </div> 21917 </div> 21918 <a xmlns="http://www.w3.org/1999/xhtml" id="id669160" class="indexterm"></a> 21919 <a xmlns="http://www.w3.org/1999/xhtml" id="id669170" class="indexterm"></a> 21920 <a xmlns="http://www.w3.org/1999/xhtml" id="id669180" class="indexterm"></a> 21921 <a xmlns="http://www.w3.org/1999/xhtml" id="id669190" class="indexterm"></a> 21922 <a xmlns="http://www.w3.org/1999/xhtml" id="id673877" class="indexterm"></a> 21923 <a xmlns="http://www.w3.org/1999/xhtml" id="id673886" class="indexterm"></a> 11110 21924 <p xmlns="http://www.w3.org/1999/xhtml">A stream that is associated with a file descriptor has 11111 21925 attributes and accessors: … … 11132 21946 <div> 11133 21947 <div> 11134 <h3 class="title"><a id="Open-File-Streams"></a> 9.1.5. Open File Streams</h3>21948 <h3 class="title"><a id="Open-File-Streams"></a>10.1.5. Open File Streams</h3> 11135 21949 </div> 11136 21950 </div> … … 11160 21974 <div> 11161 21975 <div class="refsect1" lang="en" xml:lang="en"> 11162 <a xmlns="http://www.w3.org/1999/xhtml" id="id 500241"></a>21976 <a xmlns="http://www.w3.org/1999/xhtml" id="id674052"></a> 11163 21977 <div class="header">Values:</div> 11164 21978 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">stream-list</span></i>---A list of open file streams. This is a copy of … … 11167 21981 </div> 11168 21982 <div class="refsect1" lang="en" xml:lang="en"> 11169 <a xmlns="http://www.w3.org/1999/xhtml" id="id 500268"></a>21983 <a xmlns="http://www.w3.org/1999/xhtml" id="id674079"></a> 11170 21984 <div class="header">Description:</div> 11171 21985 <p xmlns="http://www.w3.org/1999/xhtml">Returns a list of open file streams.</p> 11172 21986 </div> 11173 21987 <div class="refsect1" lang="en" xml:lang="en"> 11174 <a xmlns="http://www.w3.org/1999/xhtml" id="id 500279"></a>21988 <a xmlns="http://www.w3.org/1999/xhtml" id="id674090"></a> 11175 21989 <div class="header">See Also:</div> 11176 21990 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_note-open-file-stream" title="Function NOTE-OPEN-FILE-STREAM"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">note-open-file-stream</b></a>, <a class="xref" href="#f_remove-open-file-stream" title="Function REMOVE-OPEN-FILE-STREAM"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">remove-open-file-stream</b></a></span> … … 11195 22009 <div> 11196 22010 <div class="refsect1" lang="en" xml:lang="en"> 11197 <a xmlns="http://www.w3.org/1999/xhtml" id="id 500360"></a>22011 <a xmlns="http://www.w3.org/1999/xhtml" id="id671998"></a> 11198 22012 <div class="header">Arguments:</div> 11199 22013 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">file-stream</span></i>---A file stream.</p> 11200 22014 </div> 11201 22015 <div class="refsect1" lang="en" xml:lang="en"> 11202 <a xmlns="http://www.w3.org/1999/xhtml" id="id 500386"></a>22016 <a xmlns="http://www.w3.org/1999/xhtml" id="id672024"></a> 11203 22017 <div class="header">Description:</div> 11204 22018 <p xmlns="http://www.w3.org/1999/xhtml">Adds a file stream to the internal list of open … … 11209 22023 </div> 11210 22024 <div class="refsect1" lang="en" xml:lang="en"> 11211 <a xmlns="http://www.w3.org/1999/xhtml" id="id 500405"></a>22025 <a xmlns="http://www.w3.org/1999/xhtml" id="id672043"></a> 11212 22026 <div class="header">See Also:</div> 11213 22027 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_open-file-streams" title="Function OPEN-FILE-STREAMS"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">open-file-streams</b></a>, <a class="xref" href="#f_remove-open-file-stream" title="Function REMOVE-OPEN-FILE-STREAM"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">remove-open-file-stream</b></a></span> … … 11232 22046 <div> 11233 22047 <div class="refsect1" lang="en" xml:lang="en"> 11234 <a xmlns="http://www.w3.org/1999/xhtml" id="id 500486"></a>22048 <a xmlns="http://www.w3.org/1999/xhtml" id="id672124"></a> 11235 22049 <div class="header">Arguments:</div> 11236 22050 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">file-stream</span></i>---A file stream.</p> 11237 22051 </div> 11238 22052 <div class="refsect1" lang="en" xml:lang="en"> 11239 <a xmlns="http://www.w3.org/1999/xhtml" id="id 500512"></a>22053 <a xmlns="http://www.w3.org/1999/xhtml" id="id672151"></a> 11240 22054 <div class="header">Description:</div> 11241 22055 <p xmlns="http://www.w3.org/1999/xhtml">Remove file stream from the internal list of open file … … 11246 22060 </div> 11247 22061 <div class="refsect1" lang="en" xml:lang="en"> 11248 <a xmlns="http://www.w3.org/1999/xhtml" id="id 500531"></a>22062 <a xmlns="http://www.w3.org/1999/xhtml" id="id672170"></a> 11249 22063 <div class="header">See Also:</div> 11250 22064 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_open-file-streams" title="Function OPEN-FILE-STREAMS"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">open-file-streams</b></a>, <a class="xref" href="#f_note-open-file-stream" title="Function NOTE-OPEN-FILE-STREAM"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">note-open-file-stream</b></a></span> … … 11258 22072 <div> 11259 22073 <div> 11260 <h2 class="title" style="clear: both"><a id="Creating-Your-Own-Stream-Classes-with-Gray-Streams"></a> 9.2. Creating Your Own Stream Classes with Gray Streams</h2>22074 <h2 class="title" style="clear: both"><a id="Creating-Your-Own-Stream-Classes-with-Gray-Streams"></a>10.2. Creating Your Own Stream Classes with Gray Streams</h2> 11261 22075 </div> 11262 22076 </div> … … 11266 22080 <div> 11267 22081 <div> 11268 <h3 class="title"><a id="Streams-Overview"></a> 9.2.1. Overview</h3>22082 <h3 class="title"><a id="Streams-Overview"></a>10.2.1. Overview</h3> 11269 22083 </div> 11270 22084 </div> … … 11567 22381 <div> 11568 22382 <div> 11569 <h3 class="title"><a id="Extending-READ-SEQUENCE-and-WRITE-SEQUENCE"></a> 9.2.2. Extending READ-SEQUENCE and WRITE-SEQUENCE</h3>22383 <h3 class="title"><a id="Extending-READ-SEQUENCE-and-WRITE-SEQUENCE"></a>10.2.2. Extending READ-SEQUENCE and WRITE-SEQUENCE</h3> 11570 22384 </div> 11571 22385 </div> … … 11575 22389 <div> 11576 22390 <div> 11577 <h4 class="title"><a id="extending-read-write-overview"></a> 9.2.2.1. Overview</h4>22391 <h4 class="title"><a id="extending-read-write-overview"></a>10.2.2.1. Overview</h4> 11578 22392 </div> 11579 22393 </div> … … 11596 22410 <div> 11597 22411 <div> 11598 <h4 class="title"><a id="Notes"></a> 9.2.2.2. Notes</h4>22412 <h4 class="title"><a id="Notes"></a>10.2.2.2. Notes</h4> 11599 22413 </div> 11600 22414 </div> … … 11610 22424 <div> 11611 22425 <div> 11612 <h4 class="title"><a id="Example"></a> 9.2.2.3. Example</h4>22426 <h4 class="title"><a id="Example"></a>10.2.2.3. Example</h4> 11613 22427 </div> 11614 22428 </div> … … 11638 22452 <div> 11639 22453 <div> 11640 <h3 class="title"><a id="Multibyte-I-O"></a> 9.2.3. Multibyte I/O</h3>22454 <h3 class="title"><a id="Multibyte-I-O"></a>10.2.3. Multibyte I/O</h3> 11641 22455 </div> 11642 22456 </div> … … 11662 22476 <div> 11663 22477 <div> 11664 <h3 class="title"><a id="Gray-Streams-Dictionary"></a> 9.2.4. Gray Streams Dictionary</h3>22478 <h3 class="title"><a id="Gray-Streams-Dictionary"></a>10.2.4. Gray Streams Dictionary</h3> 11665 22479 </div> 11666 22480 </div> … … 11679 22493 <div> 11680 22494 <div class="refsect1" lang="en" xml:lang="en"> 11681 <a xmlns="http://www.w3.org/1999/xhtml" id="id 513059"></a>22495 <a xmlns="http://www.w3.org/1999/xhtml" id="id672756"></a> 11682 22496 <div class="header">Arguments and Values:</div> 11683 22497 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">stream</span></i>---a stream, presumably a fundamental-input-stream.</p> … … 11690 22504 </div> 11691 22505 <div class="refsect1" lang="en" xml:lang="en"> 11692 <a xmlns="http://www.w3.org/1999/xhtml" id="id 513117"></a>22506 <a xmlns="http://www.w3.org/1999/xhtml" id="id672815"></a> 11693 22507 <div class="header">Description:</div> 11694 22508 <p xmlns="http://www.w3.org/1999/xhtml">Should try to read up to count elements from stream into the … … 11711 22525 <div> 11712 22526 <div class="refsect1" lang="en" xml:lang="en"> 11713 <a xmlns="http://www.w3.org/1999/xhtml" id="id 513176"></a>22527 <a xmlns="http://www.w3.org/1999/xhtml" id="id672874"></a> 11714 22528 <div class="header">Arguments and Values:</div> 11715 22529 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">stream</span></i>---a stream, presumably a fundamental-output-stream.</p> … … 11722 22536 </div> 11723 22537 <div class="refsect1" lang="en" xml:lang="en"> 11724 <a xmlns="http://www.w3.org/1999/xhtml" id="id 513234"></a>22538 <a xmlns="http://www.w3.org/1999/xhtml" id="id672932"></a> 11725 22539 <div class="header">Description:</div> 11726 22540 <p xmlns="http://www.w3.org/1999/xhtml">should try to write the first count elements of list to … … 11742 22556 <div> 11743 22557 <div class="refsect1" lang="en" xml:lang="en"> 11744 <a xmlns="http://www.w3.org/1999/xhtml" id="id 513293"></a>22558 <a xmlns="http://www.w3.org/1999/xhtml" id="id672990"></a> 11745 22559 <div class="header">Arguments and Values:</div> 11746 22560 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">stream</span></i>---a stream, presumably a fundamental-input-stream</p> … … 11758 22572 </div> 11759 22573 <div class="refsect1" lang="en" xml:lang="en"> 11760 <a xmlns="http://www.w3.org/1999/xhtml" id="id 513368"></a>22574 <a xmlns="http://www.w3.org/1999/xhtml" id="id673066"></a> 11761 22575 <div class="header">Description:</div> 11762 22576 <p xmlns="http://www.w3.org/1999/xhtml">should try to read successive elements from stream into … … 11781 22595 <div> 11782 22596 <div class="refsect1" lang="en" xml:lang="en"> 11783 <a xmlns="http://www.w3.org/1999/xhtml" id="id 513428"></a>22597 <a xmlns="http://www.w3.org/1999/xhtml" id="id673126"></a> 11784 22598 <div class="header">Arguments and Values:</div> 11785 22599 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">stream</span></i>---a stream, presumably a fundamental-output-stream</p> … … 11797 22611 </div> 11798 22612 <div class="refsect1" lang="en" xml:lang="en"> 11799 <a xmlns="http://www.w3.org/1999/xhtml" id="id 513503"></a>22613 <a xmlns="http://www.w3.org/1999/xhtml" id="id673201"></a> 11800 22614 <div class="header">Description:</div> 11801 22615 <p xmlns="http://www.w3.org/1999/xhtml">should try to write successive elements of vector to stream, … … 11819 22633 <div> 11820 22634 <div class="refsect1" lang="en" xml:lang="en"> 11821 <a xmlns="http://www.w3.org/1999/xhtml" id="id 513563"></a>22635 <a xmlns="http://www.w3.org/1999/xhtml" id="id673261"></a> 11822 22636 <div class="header">Method Signatures:</div> 11823 22637 <div class="synopsis"><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>ccl::stream-device</strong></span> <i> … … 11825 22639 </div> 11826 22640 <div class="refsect1" lang="en" xml:lang="en"> 11827 <a xmlns="http://www.w3.org/1999/xhtml" id="id 513581"></a>22641 <a xmlns="http://www.w3.org/1999/xhtml" id="id673279"></a> 11828 22642 <div class="header">Arguments and Values:</div> 11829 22643 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">s</span></i>---a stream.</p> … … 11836 22650 </div> 11837 22651 <div class="refsect1" lang="en" xml:lang="en"> 11838 <a xmlns="http://www.w3.org/1999/xhtml" id="id 513647"></a>22652 <a xmlns="http://www.w3.org/1999/xhtml" id="id682159"></a> 11839 22653 <div class="header">Description:</div> 11840 22654 <p xmlns="http://www.w3.org/1999/xhtml">Returns the file descriptor associated with … … 11860 22674 <div> 11861 22675 <div class="refsect1" lang="en" xml:lang="en"> 11862 <a xmlns="http://www.w3.org/1999/xhtml" id="id 513716"></a>22676 <a xmlns="http://www.w3.org/1999/xhtml" id="id682229"></a> 11863 22677 <div class="header">Description:</div> 11864 22678 <p xmlns="http://www.w3.org/1999/xhtml">Reads up to max-octets octets from stream into ivector, … … 11867 22681 </div> 11868 22682 <div class="refsect1" lang="en" xml:lang="en"> 11869 <a xmlns="http://www.w3.org/1999/xhtml" id="id 513728"></a>22683 <a xmlns="http://www.w3.org/1999/xhtml" id="id682241"></a> 11870 22684 <div class="header">Arguments:</div> 11871 22685 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">stream</span></i>---An input stream. The method defined on … … 11892 22706 <div> 11893 22707 <div class="refsect1" lang="en" xml:lang="en"> 11894 <a xmlns="http://www.w3.org/1999/xhtml" id="id 513848"></a>22708 <a xmlns="http://www.w3.org/1999/xhtml" id="id682360"></a> 11895 22709 <div class="header">Description:</div> 11896 22710 <p xmlns="http://www.w3.org/1999/xhtml">Writes max-octets octets to stream from ivector, starting at … … 11898 22712 </div> 11899 22713 <div class="refsect1" lang="en" xml:lang="en"> 11900 <a xmlns="http://www.w3.org/1999/xhtml" id="id 513860"></a>22714 <a xmlns="http://www.w3.org/1999/xhtml" id="id682372"></a> 11901 22715 <div class="header">Arguments:</div> 11902 22716 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">stream</span></i>---An input stream. The method defined on … … 11908 22722 </div> 11909 22723 <div class="refsect1" lang="en" xml:lang="en"> 11910 <a xmlns="http://www.w3.org/1999/xhtml" id="id 513932"></a>22724 <a xmlns="http://www.w3.org/1999/xhtml" id="id682444"></a> 11911 22725 <div class="header">Examples:</div> 11912 22726 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> … … 11951 22765 <div> 11952 22766 <div> 11953 <h2 class="title"><a id="Writing-Portable-Extensions-to-the-Object-System-using-the-MetaObject-Protocol"></a>Chapter 1 0. Writing Portable Extensions to the Object System using the MetaObject Protocol</h2>22767 <h2 class="title"><a id="Writing-Portable-Extensions-to-the-Object-System-using-the-MetaObject-Protocol"></a>Chapter 11. Writing Portable Extensions to the Object System using the MetaObject Protocol</h2> 11954 22768 </div> 11955 22769 </div> … … 11959 22773 <dt> 11960 22774 <span class="sect1"> 11961 <a href="#MOP-Overview">1 0.1. Overview</a>22775 <a href="#MOP-Overview">11.1. Overview</a> 11962 22776 </span> 11963 22777 </dt> 11964 22778 <dt> 11965 22779 <span class="sect1"> 11966 <a href="#MOP-Implementation-status">1 0.2. Implementation status</a>22780 <a href="#MOP-Implementation-status">11.2. Implementation status</a> 11967 22781 </span> 11968 22782 </dt> 11969 22783 <dt> 11970 22784 <span class="sect1"> 11971 <a href="#Concurrency-issues">1 0.3. Concurrency issues</a>22785 <a href="#Concurrency-issues">11.3. Concurrency issues</a> 11972 22786 </span> 11973 22787 </dt> … … 11978 22792 <div> 11979 22793 <div> 11980 <h2 class="title" style="clear: both"><a id="MOP-Overview"></a>1 0.1. Overview</h2>22794 <h2 class="title" style="clear: both"><a id="MOP-Overview"></a>11.1. Overview</h2> 11981 22795 </div> 11982 22796 </div> … … 11993 22807 <div> 11994 22808 <div> 11995 <h2 class="title" style="clear: both"><a id="MOP-Implementation-status"></a>1 0.2. Implementation status</h2>22809 <h2 class="title" style="clear: both"><a id="MOP-Implementation-status"></a>11.2. Implementation status</h2> 11996 22810 </div> 11997 22811 </div> … … 12608 23422 <div> 12609 23423 <div> 12610 <h2 class="title" style="clear: both"><a id="Concurrency-issues"></a>1 0.3. Concurrency issues</h2>23424 <h2 class="title" style="clear: both"><a id="Concurrency-issues"></a>11.3. Concurrency issues</h2> 12611 23425 </div> 12612 23426 </div> … … 12645 23459 <div> 12646 23460 <div> 12647 <h2 class="title"><a id="Profiling"></a>Chapter 1 1. Profiling</h2>23461 <h2 class="title"><a id="Profiling"></a>Chapter 12. Profiling</h2> 12648 23462 </div> 12649 23463 </div> … … 12653 23467 <dt> 12654 23468 <span class="sect1"> 12655 <a href="#Profiling-Using-the-Linux-oprofile-system-level-profiler">1 1.1. Using the Linux oprofile system-level profiler</a>23469 <a href="#Profiling-Using-the-Linux-oprofile-system-level-profiler">12.1. Using the Linux oprofile system-level profiler</a> 12656 23470 </span> 12657 23471 </dt> … … 12660 23474 <dt> 12661 23475 <span class="sect2"> 12662 <a href="#Profiling-oprofile-generating-a-lisp-image-for-use-with-oprofile">1 1.1.1. Generating a lisp image for use with oprofile</a>23476 <a href="#Profiling-oprofile-generating-a-lisp-image-for-use-with-oprofile">12.1.1. Generating a lisp image for use with oprofile</a> 12663 23477 </span> 12664 23478 </dt> 12665 23479 <dt> 12666 23480 <span class="sect2"> 12667 <a href="#Profiling-oprofile-prerequisites">1 1.1.2. Prerequisites</a>23481 <a href="#Profiling-oprofile-prerequisites">12.1.2. Prerequisites</a> 12668 23482 </span> 12669 23483 </dt> 12670 23484 <dt> 12671 23485 <span class="sect2"> 12672 <a href="#Profiling-oprofile-generating-elf-symbols-for-lisp-functions">1 1.1.3. Generating ELF symbols for Lisp functions</a>23486 <a href="#Profiling-oprofile-generating-elf-symbols-for-lisp-functions">12.1.3. Generating ELF symbols for Lisp functions</a> 12673 23487 </span> 12674 23488 </dt> 12675 23489 <dt> 12676 23490 <span class="sect2"> 12677 <a href="#Profiling-oprofile-example">1 1.1.4. Example</a>23491 <a href="#Profiling-oprofile-example">12.1.4. Example</a> 12678 23492 </span> 12679 23493 </dt> 12680 23494 <dt> 12681 23495 <span class="sect2"> 12682 <a href="#Profiling-oprofile-Issues">1 1.1.5. Issues</a>23496 <a href="#Profiling-oprofile-Issues">12.1.5. Issues</a> 12683 23497 </span> 12684 23498 </dt> … … 12687 23501 <dt> 12688 23502 <span class="sect1"> 12689 <a href="#Profiling-Using-Apples-CHUD-metering-tools">1 1.2. Using Apple's CHUD metering tools</a>23503 <a href="#Profiling-Using-Apples-CHUD-metering-tools">12.2. Using Apple's CHUD metering tools</a> 12690 23504 </span> 12691 23505 </dt> … … 12694 23508 <dt> 12695 23509 <span class="sect2"> 12696 <a href="#Profiling-CHUD-prerequisites">1 1.2.1. Prerequisites</a>23510 <a href="#Profiling-CHUD-prerequisites">12.2.1. Prerequisites</a> 12697 23511 </span> 12698 23512 </dt> 12699 23513 <dt> 12700 23514 <span class="sect2"> 12701 <a href="#id 501560">11.2.2. Generating a lisp image for use with Shark</a>23515 <a href="#id637856">12.2.2. Generating a lisp image for use with Shark</a> 12702 23516 </span> 12703 23517 </dt> 12704 23518 <dt> 12705 23519 <span class="sect2"> 12706 <a href="#Profiling-CHUD-usage-synopsis">1 1.2.3. Usage synopsis</a>23520 <a href="#Profiling-CHUD-usage-synopsis">12.2.3. Usage synopsis</a> 12707 23521 </span> 12708 23522 </dt> 12709 23523 <dt> 12710 23524 <span class="sect2"> 12711 <a href="#Profiling-CHUD-profiling-configurations">1 1.2.4. Profiling "configurations"</a>23525 <a href="#Profiling-CHUD-profiling-configurations">12.2.4. Profiling "configurations"</a> 12712 23526 </span> 12713 23527 </dt> 12714 23528 <dt> 12715 23529 <span class="sect2"> 12716 <a href="#Profiling-CHUD-Reference">1 1.2.5. Reference</a>23530 <a href="#Profiling-CHUD-Reference">12.2.5. Reference</a> 12717 23531 </span> 12718 23532 </dt> 12719 23533 <dt> 12720 23534 <span class="sect2"> 12721 <a href="#Profiling-CHUD-Acknowledgments">1 1.2.6. Acknowledgement</a>23535 <a href="#Profiling-CHUD-Acknowledgments">12.2.6. Acknowledgement</a> 12722 23536 </span> 12723 23537 </dt> … … 12730 23544 <div> 12731 23545 <div> 12732 <h2 class="title" style="clear: both"><a id="Profiling-Using-the-Linux-oprofile-system-level-profiler"></a>1 1.1. Using the Linux oprofile system-level profiler</h2>23546 <h2 class="title" style="clear: both"><a id="Profiling-Using-the-Linux-oprofile-system-level-profiler"></a>12.1. Using the Linux oprofile system-level profiler</h2> 12733 23547 </div> 12734 23548 </div> … … 12745 23559 <div> 12746 23560 <div> 12747 <h3 class="title"><a id="Profiling-oprofile-generating-a-lisp-image-for-use-with-oprofile"></a>1 1.1.1. Generating a lisp image for use with oprofile</h3>23561 <h3 class="title"><a id="Profiling-oprofile-generating-a-lisp-image-for-use-with-oprofile"></a>12.1.1. Generating a lisp image for use with oprofile</h3> 12748 23562 </div> 12749 23563 </div> … … 12762 23576 <div> 12763 23577 <div> 12764 <h3 class="title"><a id="Profiling-oprofile-prerequisites"></a>1 1.1.2. Prerequisites</h3>23578 <h3 class="title"><a id="Profiling-oprofile-prerequisites"></a>12.1.2. Prerequisites</h3> 12765 23579 </div> 12766 23580 </div> … … 12794 23608 <div> 12795 23609 <div> 12796 <h3 class="title"><a id="Profiling-oprofile-generating-elf-symbols-for-lisp-functions"></a>1 1.1.3. Generating ELF symbols for Lisp functions</h3>23610 <h3 class="title"><a id="Profiling-oprofile-generating-elf-symbols-for-lisp-functions"></a>12.1.3. Generating ELF symbols for Lisp functions</h3> 12797 23611 </div> 12798 23612 </div> … … 12849 23663 <div> 12850 23664 <div> 12851 <h3 class="title"><a id="Profiling-oprofile-example"></a>1 1.1.4. Example</h3>23665 <h3 class="title"><a id="Profiling-oprofile-example"></a>12.1.4. Example</h3> 12852 23666 </div> 12853 23667 </div> … … 12918 23732 <div> 12919 23733 <div> 12920 <h3 class="title"><a id="Profiling-oprofile-Issues"></a>1 1.1.5. Issues</h3>23734 <h3 class="title"><a id="Profiling-oprofile-Issues"></a>12.1.5. Issues</h3> 12921 23735 </div> 12922 23736 </div> … … 12938 23752 <div> 12939 23753 <div> 12940 <h2 class="title" style="clear: both"><a id="Profiling-Using-Apples-CHUD-metering-tools"></a>1 1.2. Using Apple's CHUD metering tools</h2>23754 <h2 class="title" style="clear: both"><a id="Profiling-Using-Apples-CHUD-metering-tools"></a>12.2. Using Apple's CHUD metering tools</h2> 12941 23755 </div> 12942 23756 </div> … … 12958 23772 <div> 12959 23773 <div> 12960 <h3 class="title"><a id="Profiling-CHUD-prerequisites"></a>1 1.2.1. Prerequisites</h3>23774 <h3 class="title"><a id="Profiling-CHUD-prerequisites"></a>12.2.1. Prerequisites</h3> 12961 23775 </div> 12962 23776 </div> … … 12977 23791 <div> 12978 23792 <div> 12979 <h3 class="title"><a id="id 501560"></a>11.2.2. Generating a lisp image for use with Shark</h3>23793 <h3 class="title"><a id="id637856"></a>12.2.2. Generating a lisp image for use with Shark</h3> 12980 23794 </div> 12981 23795 </div> … … 12998 23812 <div> 12999 23813 <div> 13000 <h3 class="title"><a id="Profiling-CHUD-usage-synopsis"></a>1 1.2.3. Usage synopsis</h3>23814 <h3 class="title"><a id="Profiling-CHUD-usage-synopsis"></a>12.2.3. Usage synopsis</h3> 13001 23815 </div> 13002 23816 </div> … … 13051 23865 <div> 13052 23866 <div> 13053 <h3 class="title"><a id="Profiling-CHUD-profiling-configurations"></a>1 1.2.4. Profiling "configurations"</h3>23867 <h3 class="title"><a id="Profiling-CHUD-profiling-configurations"></a>12.2.4. Profiling "configurations"</h3> 13054 23868 </div> 13055 23869 </div> … … 13084 23898 <div> 13085 23899 <div> 13086 <h3 class="title"><a id="Profiling-CHUD-Reference"></a>1 1.2.5. Reference</h3>13087 </div> 13088 </div> 13089 </div> 13090 <p xmlns="http://www.w3.org/1999/xhtml"><a id="id 506187" class="indexterm"></a>23900 <h3 class="title"><a id="Profiling-CHUD-Reference"></a>12.2.5. Reference</h3> 23901 </div> 23902 </div> 23903 </div> 23904 <p xmlns="http://www.w3.org/1999/xhtml"><a id="id638080" class="indexterm"></a> 13091 23905 <span class="command"><strong><em class="varname"><a id="chud_shark-config-file"></a>CHUD:*SHARK-CONFIG-FILE*</em> 13092 23906 [Variable]</strong></span></p> … … 13094 23908 profiling configuration file created by the "Config Editor" in 13095 23909 Shark.app.</p> 13096 <p xmlns="http://www.w3.org/1999/xhtml"><a id="id 506211" class="indexterm"></a> <span class="command"><strong><em class="varname"><a id="chud_meter"></a>CHUD:METER</em> form <em class="varname">&key</em> (reset nil)23910 <p xmlns="http://www.w3.org/1999/xhtml"><a id="id648993" class="indexterm"></a> <span class="command"><strong><em class="varname"><a id="chud_meter"></a>CHUD:METER</em> form <em class="varname">&key</em> (reset nil) 13097 23911 (debug-output nil) [Macro]</strong></span></p> 13098 23912 <p xmlns="http://www.w3.org/1999/xhtml">Executes FORM (an arbitrary lisp form) and returns whatever … … 13135 23949 <div> 13136 23950 <div> 13137 <h3 class="title"><a id="Profiling-CHUD-Acknowledgments"></a>1 1.2.6. Acknowledgement</h3>23951 <h3 class="title"><a id="Profiling-CHUD-Acknowledgments"></a>12.2.6. Acknowledgement</h3> 13138 23952 </div> 13139 23953 </div> … … 13150 23964 <div> 13151 23965 <div> 13152 <h2 class="title"><a id="The-Foreign-Function-Interface"></a>Chapter 1 2. The Foreign-Function Interface</h2>23966 <h2 class="title"><a id="The-Foreign-Function-Interface"></a>Chapter 13. The Foreign-Function Interface</h2> 13153 23967 </div> 13154 23968 </div> … … 13158 23972 <dt> 13159 23973 <span class="sect1"> 13160 <a href="#Specifying-And-Using-Foreign-Types">1 2.1. Specifying And Using Foreign Types</a>23974 <a href="#Specifying-And-Using-Foreign-Types">13.1. Specifying And Using Foreign Types</a> 13161 23975 </span> 13162 23976 </dt> … … 13165 23979 <dt> 13166 23980 <span class="sect2"> 13167 <a href="#Overview-foreign-types">1 2.1.1. Overview</a>23981 <a href="#Overview-foreign-types">13.1.1. Overview</a> 13168 23982 </span> 13169 23983 </dt> 13170 23984 <dt> 13171 23985 <span class="sect2"> 13172 <a href="#Syntax-of-Foreign-Type-Specifiers">1 2.1.2. Syntax of Foreign Type Specifiers</a>23986 <a href="#Syntax-of-Foreign-Type-Specifiers">13.1.2. Syntax of Foreign Type Specifiers</a> 13173 23987 </span> 13174 23988 </dt> … … 13177 23991 <dt> 13178 23992 <span class="sect1"> 13179 <a href="#Foreign-Function-Calls">1 2.2. Foreign Function Calls</a>23993 <a href="#Foreign-Function-Calls">13.2. Foreign Function Calls</a> 13180 23994 </span> 13181 23995 </dt> … … 13184 23998 <dt> 13185 23999 <span class="sect2"> 13186 <a href="#Overview-foreign-calls">1 2.2.1. Overview</a>24000 <a href="#Overview-foreign-calls">13.2.1. Overview</a> 13187 24001 </span> 13188 24002 </dt> 13189 24003 <dt> 13190 24004 <span class="sect2"> 13191 <a href="#Return-Conventions-for-C-Structures">1 2.2.2. Return Conventions for C Structures</a>24005 <a href="#Return-Conventions-for-C-Structures">13.2.2. Return Conventions for C Structures</a> 13192 24006 </span> 13193 24007 </dt> … … 13196 24010 <dt> 13197 24011 <span class="sect1"> 13198 <a href="#Referencing-and-Using-Foreign-Memory-Addresses">1 2.3. Referencing and Using Foreign Memory Addresses</a>24012 <a href="#Referencing-and-Using-Foreign-Memory-Addresses">13.3. Referencing and Using Foreign Memory Addresses</a> 13199 24013 </span> 13200 24014 </dt> … … 13203 24017 <dt> 13204 24018 <span class="sect2"> 13205 <a href="#Overview-memory-addresses">1 2.3.1. Overview</a>24019 <a href="#Overview-memory-addresses">13.3.1. Overview</a> 13206 24020 </span> 13207 24021 </dt> 13208 24022 <dt> 13209 24023 <span class="sect2"> 13210 <a href="#Foreign-Memory-Addresses-Dictionary">1 2.3.2. Foreign-Memory-Addresses Dictionary</a>24024 <a href="#Foreign-Memory-Addresses-Dictionary">13.3.2. Foreign-Memory-Addresses Dictionary</a> 13211 24025 </span> 13212 24026 </dt> … … 13215 24029 <dt> 13216 24030 <span class="sect1"> 13217 <a href="#The-Interface-Database">1 2.4. The Interface Database</a>24031 <a href="#The-Interface-Database">13.4. The Interface Database</a> 13218 24032 </span> 13219 24033 </dt> … … 13222 24036 <dt> 13223 24037 <span class="sect2"> 13224 <a href="#interface-database-Overview">1 2.4.1. Overview</a>24038 <a href="#interface-database-Overview">13.4.1. Overview</a> 13225 24039 </span> 13226 24040 </dt> 13227 24041 <dt> 13228 24042 <span class="sect2"> 13229 <a href="#Other-issues">1 2.4.2. Other issues:</a>24043 <a href="#Other-issues">13.4.2. Other issues:</a> 13230 24044 </span> 13231 24045 </dt> … … 13234 24048 <dt> 13235 24049 <span class="sect1"> 13236 <a href="#Using-Interface-Directories">1 2.5. Using Interface Directories</a>24050 <a href="#Using-Interface-Directories">13.5. Using Interface Directories</a> 13237 24051 </span> 13238 24052 </dt> … … 13241 24055 <dt> 13242 24056 <span class="sect2"> 13243 <a href="#Interface-Directory-Overview">1 2.5.1. Overview</a>24057 <a href="#Interface-Directory-Overview">13.5.1. Overview</a> 13244 24058 </span> 13245 24059 </dt> 13246 24060 <dt> 13247 24061 <span class="sect2"> 13248 <a href="#Creating-new-interface-directories">1 2.5.2. Creating new interface directories</a>24062 <a href="#Creating-new-interface-directories">13.5.2. Creating new interface directories</a> 13249 24063 </span> 13250 24064 </dt> … … 13253 24067 <dt> 13254 24068 <span class="sect1"> 13255 <a href="#Using-Shared-Libraries">1 2.6. Using Shared Libraries</a>24069 <a href="#Using-Shared-Libraries">13.6. Using Shared Libraries</a> 13256 24070 </span> 13257 24071 </dt> … … 13260 24074 <dt> 13261 24075 <span class="sect2"> 13262 <a href="#Shared-Library-Overview">1 2.6.1. Overview</a>24076 <a href="#Shared-Library-Overview">13.6.1. Overview</a> 13263 24077 </span> 13264 24078 </dt> 13265 24079 <dt> 13266 24080 <span class="sect2"> 13267 <a href="#Limitations-and-known-bugs--1-">1 2.6.2. Limitations and known bugs</a>24081 <a href="#Limitations-and-known-bugs--1-">13.6.2. Limitations and known bugs</a> 13268 24082 </span> 13269 24083 </dt> 13270 24084 <dt> 13271 24085 <span class="sect2"> 13272 <a href="#Darwin-Notes">1 2.6.3. >Darwin Notes</a>24086 <a href="#Darwin-Notes">13.6.3. >Darwin Notes</a> 13273 24087 </span> 13274 24088 </dt> … … 13277 24091 <dt> 13278 24092 <span class="sect1"> 13279 <a href="#The-Interface-Translator">1 2.7. The Interface Translator</a>24093 <a href="#The-Interface-Translator">13.7. The Interface Translator</a> 13280 24094 </span> 13281 24095 </dt> … … 13284 24098 <dt> 13285 24099 <span class="sect2"> 13286 <a href="#Interface-translator-overview">1 2.7.1. Overview</a>24100 <a href="#Interface-translator-overview">13.7.1. Overview</a> 13287 24101 </span> 13288 24102 </dt> 13289 24103 <dt> 13290 24104 <span class="sect2"> 13291 <a href="#Details--rebuilding-the-CDB-databases--step-by-step">1 2.7.2. Details: rebuilding the CDB databases, step by step</a>24105 <a href="#Details--rebuilding-the-CDB-databases--step-by-step">13.7.2. Details: rebuilding the CDB databases, step by step</a> 13292 24106 </span> 13293 24107 </dt> … … 13296 24110 <dt> 13297 24111 <span class="sect1"> 13298 <a href="#Case-sensitivity-of-foreign-names-in-CCL">1 2.8. Case-sensitivity of foreign names in <code class="literal">CCL</code></a>24112 <a href="#Case-sensitivity-of-foreign-names-in-CCL">13.8. Case-sensitivity of foreign names in <code class="literal">CCL</code></a> 13299 24113 </span> 13300 24114 </dt> … … 13303 24117 <dt> 13304 24118 <span class="sect2"> 13305 <a href="#Case-sensitivity-overview">1 2.8.1. Overview</a>24119 <a href="#Case-sensitivity-overview">13.8.1. Overview</a> 13306 24120 </span> 13307 24121 </dt> 13308 24122 <dt> 13309 24123 <span class="sect2"> 13310 <a href="#Foreign-constant-and-function-names">1 2.8.2. Foreign constant and function names</a>24124 <a href="#Foreign-constant-and-function-names">13.8.2. Foreign constant and function names</a> 13311 24125 </span> 13312 24126 </dt> 13313 24127 <dt> 13314 24128 <span class="sect2"> 13315 <a href="#Foreign-type--record--and-field-names">1 2.8.3. Foreign type, record, and field names</a>24129 <a href="#Foreign-type--record--and-field-names">13.8.3. Foreign type, record, and field names</a> 13316 24130 </span> 13317 24131 </dt> 13318 24132 <dt> 13319 24133 <span class="sect2"> 13320 <a href="#Examples--1-">1 2.8.4. Examples</a>24134 <a href="#Examples--1-">13.8.4. Examples</a> 13321 24135 </span> 13322 24136 </dt> … … 13325 24139 <dt> 13326 24140 <span class="sect1"> 13327 <a href="#Reading-Foreign-Names">1 2.9. Reading Foreign Names</a>24141 <a href="#Reading-Foreign-Names">13.9. Reading Foreign Names</a> 13328 24142 </span> 13329 24143 </dt> 13330 24144 <dt> 13331 24145 <span class="sect1"> 13332 <a href="#Tutorial--Using-Basic-Calls-and-Types">1 2.10. Tutorial: Using Basic Calls and Types</a>24146 <a href="#Tutorial--Using-Basic-Calls-and-Types">13.10. Tutorial: Using Basic Calls and Types</a> 13333 24147 </span> 13334 24148 </dt> … … 13337 24151 <dt> 13338 24152 <span class="sect2"> 13339 <a href="#Acknowledgement">1 2.10.1. Acknowledgement</a>24153 <a href="#Acknowledgement">13.10.1. Acknowledgement</a> 13340 24154 </span> 13341 24155 </dt> … … 13344 24158 <dt> 13345 24159 <span class="sect1"> 13346 <a href="#Tutorial--Allocating-Foreign-Data-on-the-Lisp-Heap">1 2.11. Tutorial: Allocating Foreign Data on the Lisp Heap </a>24160 <a href="#Tutorial--Allocating-Foreign-Data-on-the-Lisp-Heap">13.11. Tutorial: Allocating Foreign Data on the Lisp Heap </a> 13347 24161 </span> 13348 24162 </dt> … … 13351 24165 <dt> 13352 24166 <span class="sect2"> 13353 <a href="#Acknowledgement--1-">1 2.11.1. Acknowledgement</a>24167 <a href="#Acknowledgement--1-">13.11.1. Acknowledgement</a> 13354 24168 </span> 13355 24169 </dt> … … 13358 24172 <dt> 13359 24173 <span class="sect1"> 13360 <a href="#Foreign-Function-Interface-Dictionary">1 2.12. The Foreign-Function-Interface Dictionary</a>24174 <a href="#Foreign-Function-Interface-Dictionary">13.12. The Foreign-Function-Interface Dictionary</a> 13361 24175 </span> 13362 24176 </dt> … … 13367 24181 <div> 13368 24182 <div> 13369 <h2 class="title" style="clear: both"><a id="Specifying-And-Using-Foreign-Types"></a>1 2.1. Specifying And Using Foreign Types</h2>24183 <h2 class="title" style="clear: both"><a id="Specifying-And-Using-Foreign-Types"></a>13.1. Specifying And Using Foreign Types</h2> 13370 24184 </div> 13371 24185 </div> … … 13375 24189 <div> 13376 24190 <div> 13377 <h3 class="title"><a id="Overview-foreign-types"></a>1 2.1.1. Overview</h3>24191 <h3 class="title"><a id="Overview-foreign-types"></a>13.1.1. Overview</h3> 13378 24192 </div> 13379 24193 </div> … … 13399 24213 <div> 13400 24214 <div> 13401 <h4 class="title"><a id="type-annotations"></a>1 2.1.1.1. Type Annotations</h4>24215 <h4 class="title"><a id="type-annotations"></a>13.1.1.1. Type Annotations</h4> 13402 24216 </div> 13403 24217 </div> … … 13423 24237 <div> 13424 24238 <div> 13425 <h4 class="title"><a id="foreign-type-classes"></a>1 2.1.1.2. Foreign Types as Classes</h4>24239 <h4 class="title"><a id="foreign-type-classes"></a>13.1.1.2. Foreign Types as Classes</h4> 13426 24240 </div> 13427 24241 </div> … … 13524 24338 <div> 13525 24339 <div> 13526 <h3 class="title"><a id="Syntax-of-Foreign-Type-Specifiers"></a>1 2.1.2. Syntax of Foreign Type Specifiers</h3>24340 <h3 class="title"><a id="Syntax-of-Foreign-Type-Specifiers"></a>13.1.2. Syntax of Foreign Type Specifiers</h3> 13527 24341 </div> 13528 24342 </div> … … 13596 24410 <div> 13597 24411 <div> 13598 <h2 class="title" style="clear: both"><a id="Foreign-Function-Calls"></a>1 2.2. Foreign Function Calls</h2>24412 <h2 class="title" style="clear: both"><a id="Foreign-Function-Calls"></a>13.2. Foreign Function Calls</h2> 13599 24413 </div> 13600 24414 </div> … … 13604 24418 <div> 13605 24419 <div> 13606 <h3 class="title"><a id="Overview-foreign-calls"></a>1 2.2.1. Overview</h3>24420 <h3 class="title"><a id="Overview-foreign-calls"></a>13.2.1. Overview</h3> 13607 24421 </div> 13608 24422 </div> … … 13627 24441 <div> 13628 24442 <div> 13629 <h4 class="title"><a id="Type-Designators-for-Arguments-and-Return-Values"></a>1 2.2.1.1. Type Designators for Arguments and Return Values</h4>24443 <h4 class="title"><a id="Type-Designators-for-Arguments-and-Return-Values"></a>13.2.1.1. Type Designators for Arguments and Return Values</h4> 13630 24444 </div> 13631 24445 </div> … … 13701 24515 <dd> 13702 24516 <p>The argument/return values 13703 is <a class="link" href="#Referencing-and-Using-Foreign-Memory-Addresses" title="1 2.3. Referencing and Using Foreign Memory Addresses">a MACPTR</a>.</p>24517 is <a class="link" href="#Referencing-and-Using-Foreign-Memory-Addresses" title="13.3. Referencing and Using Foreign Memory Addresses">a MACPTR</a>.</p> 13704 24518 </dd> 13705 24519 <dt> … … 13728 24542 <div> 13729 24543 <div> 13730 <h4 class="title"><a id="External-Entrypoints-and-Named-External-Entrypoints"></a>1 2.2.1.2. External Entrypoints and Named External Entrypoints</h4>24544 <h4 class="title"><a id="External-Entrypoints-and-Named-External-Entrypoints"></a>13.2.1.2. External Entrypoints and Named External Entrypoints</h4> 13731 24545 </div> 13732 24546 </div> … … 13757 24571 <div> 13758 24572 <div> 13759 <h3 class="title"><a id="Return-Conventions-for-C-Structures"></a>1 2.2.2. Return Conventions for C Structures</h3>24573 <h3 class="title"><a id="Return-Conventions-for-C-Structures"></a>13.2.2. Return Conventions for C Structures</h3> 13760 24574 </div> 13761 24575 </div> … … 13776 24590 <div> 13777 24591 <div> 13778 <h2 class="title" style="clear: both"><a id="Referencing-and-Using-Foreign-Memory-Addresses"></a>1 2.3. Referencing and Using Foreign Memory Addresses</h2>24592 <h2 class="title" style="clear: both"><a id="Referencing-and-Using-Foreign-Memory-Addresses"></a>13.3. Referencing and Using Foreign Memory Addresses</h2> 13779 24593 </div> 13780 24594 </div> … … 13784 24598 <div> 13785 24599 <div> 13786 <h3 class="title"><a id="Overview-memory-addresses"></a>1 2.3.1. Overview</h3>24600 <h3 class="title"><a id="Overview-memory-addresses"></a>13.3.1. Overview</h3> 13787 24601 </div> 13788 24602 </div> … … 13792 24606 <div> 13793 24607 <div> 13794 <h4 class="title"><a id="Basics"></a>1 2.3.1.1. Basics</h4>24608 <h4 class="title"><a id="Basics"></a>13.3.1.1. Basics</h4> 13795 24609 </div> 13796 24610 </div> … … 13874 24688 <div> 13875 24689 <div> 13876 <h4 class="title"><a id="Stack-allocation-of---and-destructive-operations-on---MACPTRs-"></a>1 2.3.1.2. Stack allocation ofâand destructive operations onâMACPTRs.</h4>24690 <h4 class="title"><a id="Stack-allocation-of---and-destructive-operations-on---MACPTRs-"></a>13.3.1.2. Stack allocation ofâand destructive operations onâMACPTRs.</h4> 13877 24691 </div> 13878 24692 </div> … … 13944 24758 <div> 13945 24759 <div> 13946 <h4 class="title"><a id="Stack-allocated-memory--and-stack-allocated-pointers-to-it--"></a>1 2.3.1.3. Stack-allocated memory (and stack-allocated pointers to it.)</h4>24760 <h4 class="title"><a id="Stack-allocated-memory--and-stack-allocated-pointers-to-it--"></a>13.3.1.3. Stack-allocated memory (and stack-allocated pointers to it.)</h4> 13947 24761 </div> 13948 24762 </div> … … 13987 24801 <div> 13988 24802 <div> 13989 <h4 class="title"><a id="Caveats-"></a>1 2.3.1.4. Caveats</h4>24803 <h4 class="title"><a id="Caveats-"></a>13.3.1.4. Caveats</h4> 13990 24804 </div> 13991 24805 </div> … … 14007 24821 <div> 14008 24822 <div> 14009 <h3 class="title"><a id="Foreign-Memory-Addresses-Dictionary"></a>1 2.3.2. Foreign-Memory-Addresses Dictionary</h3>24823 <h3 class="title"><a id="Foreign-Memory-Addresses-Dictionary"></a>13.3.2. Foreign-Memory-Addresses Dictionary</h3> 14010 24824 </div> 14011 24825 </div> … … 14017 24831 <div> 14018 24832 <div> 14019 <h4 class="title"><a id="Scalar-memory-reference"></a>1 2.3.2.1. Scalar memory reference</h4>24833 <h4 class="title"><a id="Scalar-memory-reference"></a>13.3.2.1. Scalar memory reference</h4> 14020 24834 </div> 14021 24835 </div> … … 14080 24894 <div> 14081 24895 <div> 14082 <h4 class="title"><a id="iget-bit--Function-"></a>1 2.3.2.2. %get-bit [Function]</h4>24896 <h4 class="title"><a id="iget-bit--Function-"></a>13.3.2.2. %get-bit [Function]</h4> 14083 24897 </div> 14084 24898 </div> … … 14130 24944 <div> 14131 24945 <div> 14132 <h4 class="title"><a id="iget-bitfield--Function-"></a>1 2.3.2.3. %get-bitfield [Function]</h4>24946 <h4 class="title"><a id="iget-bitfield--Function-"></a>13.3.2.3. %get-bitfield [Function]</h4> 14133 24947 </div> 14134 24948 </div> … … 14186 25000 <div> 14187 25001 <div> 14188 <h4 class="title"><a id="id 516259"></a>12.3.2.4. %int-to-ptr [Function]</h4>25002 <h4 class="title"><a id="id653384"></a>13.3.2.4. %int-to-ptr [Function]</h4> 14189 25003 </div> 14190 25004 </div> … … 14227 25041 <div> 14228 25042 <div> 14229 <h4 class="title"><a id="id 516334"></a>12.3.2.5. %inc-ptr [Function]</h4>25043 <h4 class="title"><a id="id653458"></a>13.3.2.5. %inc-ptr [Function]</h4> 14230 25044 </div> 14231 25045 </div> … … 14277 25091 <div> 14278 25092 <div> 14279 <h4 class="title"><a id="id 516425"></a>12.3.2.6. %ptr-to-int [Function]</h4>25093 <h4 class="title"><a id="id653550"></a>13.3.2.6. %ptr-to-int [Function]</h4> 14280 25094 </div> 14281 25095 </div> … … 14319 25133 <div> 14320 25134 <div> 14321 <h4 class="title"><a id="id 516501"></a>12.3.2.7. %null-ptr [Macro]</h4>25135 <h4 class="title"><a id="id653625"></a>13.3.2.7. %null-ptr [Macro]</h4> 14322 25136 </div> 14323 25137 </div> … … 14344 25158 <div> 14345 25159 <div> 14346 <h4 class="title"><a id="id 516542"></a>12.3.2.8. %null-ptr-p [Function]</h4>25160 <h4 class="title"><a id="id653666"></a>13.3.2.8. %null-ptr-p [Function]</h4> 14347 25161 </div> 14348 25162 </div> … … 14386 25200 <div> 14387 25201 <div> 14388 <h4 class="title"><a id="id 516617"></a>12.3.2.9. %setf-macptr [Function]</h4>25202 <h4 class="title"><a id="id653742"></a>13.3.2.9. %setf-macptr [Function]</h4> 14389 25203 </div> 14390 25204 </div> … … 14434 25248 <div> 14435 25249 <div> 14436 <h4 class="title"><a id="id 516708"></a>12.3.2.10. %incf-ptr [Macro]</h4>25250 <h4 class="title"><a id="id653832"></a>13.3.2.10. %incf-ptr [Macro]</h4> 14437 25251 </div> 14438 25252 </div> … … 14482 25296 <div> 14483 25297 <div> 14484 <h4 class="title"><a id="id 516798"></a>12.3.2.11. with-macptrs [Macro]</h4>25298 <h4 class="title"><a id="id653923"></a>13.3.2.11. with-macptrs [Macro]</h4> 14485 25299 </div> 14486 25300 </div> … … 14532 25346 <div> 14533 25347 <div> 14534 <h4 class="title"><a id="id 516890"></a>12.3.2.12. %stack-block [Macro]</h4>25348 <h4 class="title"><a id="id654014"></a>13.3.2.12. %stack-block [Macro]</h4> 14535 25349 </div> 14536 25350 </div> … … 14583 25397 <div> 14584 25398 <div> 14585 <h4 class="title"><a id="id 516982"></a>12.3.2.13. make-cstring [Function]</h4>25399 <h4 class="title"><a id="id654107"></a>13.3.2.13. make-cstring [Function]</h4> 14586 25400 </div> 14587 25401 </div> … … 14626 25440 <div> 14627 25441 <div> 14628 <h4 class="title"><a id="id 517058"></a>12.3.2.14. with-cstrs [Macro]</h4>25442 <h4 class="title"><a id="id654183"></a>13.3.2.14. with-cstrs [Macro]</h4> 14629 25443 </div> 14630 25444 </div> … … 14676 25490 <div> 14677 25491 <div> 14678 <h4 class="title"><a id="id 517150"></a>12.3.2.15. with-encoded-cstrs [Macro]</h4>25492 <h4 class="title"><a id="id654275"></a>13.3.2.15. with-encoded-cstrs [Macro]</h4> 14679 25493 </div> 14680 25494 </div> … … 14739 25553 <div> 14740 25554 <div> 14741 <h4 class="title"><a id="id 517273"></a>12.3.2.16. %get-cstring [Function]</h4>25555 <h4 class="title"><a id="id654398"></a>13.3.2.16. %get-cstring [Function]</h4> 14742 25556 </div> 14743 25557 </div> … … 14781 25595 <div> 14782 25596 <div> 14783 <h4 class="title"><a id="id 533058"></a>12.3.2.17. %str-from-ptr [Function]</h4>25597 <h4 class="title"><a id="id712168"></a>13.3.2.17. %str-from-ptr [Function]</h4> 14784 25598 </div> 14785 25599 </div> … … 14833 25647 <div> 14834 25648 <div> 14835 <h2 class="title" style="clear: both"><a id="The-Interface-Database"></a>1 2.4. The Interface Database</h2>25649 <h2 class="title" style="clear: both"><a id="The-Interface-Database"></a>13.4. The Interface Database</h2> 14836 25650 </div> 14837 25651 </div> … … 14841 25655 <div> 14842 25656 <div> 14843 <h3 class="title"><a id="interface-database-Overview"></a>1 2.4.1. Overview</h3>25657 <h3 class="title"><a id="interface-database-Overview"></a>13.4.1. Overview</h3> 14844 25658 </div> 14845 25659 </div> … … 14888 25702 <div> 14889 25703 <div> 14890 <h3 class="title"><a id="Other-issues"></a>1 2.4.2. Other issues:</h3>25704 <h3 class="title"><a id="Other-issues"></a>13.4.2. Other issues:</h3> 14891 25705 </div> 14892 25706 </div> … … 14897 25711 <p><code class="literal">CCL</code> now preserves the case of external symbols in 14898 25712 its database 14899 files. See <a class="link" href="#Case-sensitivity-of-foreign-names-in-CCL" title="1 2.8. Case-sensitivity of foreign names in CCL">Case-sensitivity25713 files. See <a class="link" href="#Case-sensitivity-of-foreign-names-in-CCL" title="13.8. Case-sensitivity of foreign names in CCL">Case-sensitivity 14900 25714 of foreign names in <code class="literal">CCL</code></a> for information about 14901 25715 case in foreign symbol names.</p> … … 14912 25726 </div> 14913 25727 <p xmlns="http://www.w3.org/1999/xhtml">For information about building the database files, 14914 see <a class="xref" href="#The-Interface-Translator" title="1 2.7. The Interface Translator">Section 12.7, âThe Interface Translatorâ</a>.</p>25728 see <a class="xref" href="#The-Interface-Translator" title="13.7. The Interface Translator">Section 13.7, âThe Interface Translatorâ</a>.</p> 14915 25729 </div> 14916 25730 </div> … … 14919 25733 <div> 14920 25734 <div> 14921 <h2 class="title" style="clear: both"><a id="Using-Interface-Directories"></a>1 2.5. Using Interface Directories</h2>25735 <h2 class="title" style="clear: both"><a id="Using-Interface-Directories"></a>13.5. Using Interface Directories</h2> 14922 25736 </div> 14923 25737 </div> … … 14927 25741 <div> 14928 25742 <div> 14929 <h3 class="title"><a id="Interface-Directory-Overview"></a>1 2.5.1. Overview</h3>25743 <h3 class="title"><a id="Interface-Directory-Overview"></a>13.5.1. Overview</h3> 14930 25744 </div> 14931 25745 </div> … … 15014 25828 <div> 15015 25829 <div> 15016 <h3 class="title"><a id="Creating-new-interface-directories"></a>1 2.5.2. Creating new interface directories</h3>25830 <h3 class="title"><a id="Creating-new-interface-directories"></a>13.5.2. Creating new interface directories</h3> 15017 25831 </div> 15018 25832 </div> … … 15052 25866 </ol> 15053 25867 </div> 15054 <p xmlns="http://www.w3.org/1999/xhtml">Refer to <a class="xref" href="#The-Interface-Translator" title="1 2.7. The Interface Translator">Section 12.7, âThe Interface Translatorâ</a> for25868 <p xmlns="http://www.w3.org/1999/xhtml">Refer to <a class="xref" href="#The-Interface-Translator" title="13.7. The Interface Translator">Section 13.7, âThe Interface Translatorâ</a> for 15055 25869 information about running the interface translator and .ffi 15056 25870 parser.</p> … … 15071 25885 <div> 15072 25886 <div> 15073 <h2 class="title" style="clear: both"><a id="Using-Shared-Libraries"></a>1 2.6. Using Shared Libraries</h2>25887 <h2 class="title" style="clear: both"><a id="Using-Shared-Libraries"></a>13.6. Using Shared Libraries</h2> 15074 25888 </div> 15075 25889 </div> … … 15079 25893 <div> 15080 25894 <div> 15081 <h3 class="title"><a id="Shared-Library-Overview"></a>1 2.6.1. Overview</h3>25895 <h3 class="title"><a id="Shared-Library-Overview"></a>13.6.1. Overview</h3> 15082 25896 </div> 15083 25897 </div> … … 15140 25954 <div> 15141 25955 <div> 15142 <h3 class="title"><a id="Limitations-and-known-bugs--1-"></a>1 2.6.2. Limitations and known bugs</h3>25956 <h3 class="title"><a id="Limitations-and-known-bugs--1-"></a>13.6.2. Limitations and known bugs</h3> 15143 25957 </div> 15144 25958 </div> … … 15165 25979 <div> 15166 25980 <div> 15167 <h3 class="title"><a id="Darwin-Notes"></a>1 2.6.3. >Darwin Notes</h3>25981 <h3 class="title"><a id="Darwin-Notes"></a>13.6.3. >Darwin Notes</h3> 15168 25982 </div> 15169 25983 </div> … … 15201 26015 <div> 15202 26016 <div> 15203 <h2 class="title" style="clear: both"><a id="The-Interface-Translator"></a>1 2.7. The Interface Translator</h2>26017 <h2 class="title" style="clear: both"><a id="The-Interface-Translator"></a>13.7. The Interface Translator</h2> 15204 26018 </div> 15205 26019 </div> … … 15209 26023 <div> 15210 26024 <div> 15211 <h3 class="title"><a id="Interface-translator-overview"></a>1 2.7.1. Overview</h3>26025 <h3 class="title"><a id="Interface-translator-overview"></a>13.7.1. Overview</h3> 15212 26026 </div> 15213 26027 </div> … … 15263 26077 <div> 15264 26078 <div> 15265 <h3 class="title"><a id="Details--rebuilding-the-CDB-databases--step-by-step"></a>1 2.7.2. Details: rebuilding the CDB databases, step by step</h3>26079 <h3 class="title"><a id="Details--rebuilding-the-CDB-databases--step-by-step"></a>13.7.2. Details: rebuilding the CDB databases, step by step</h3> 15266 26080 </div> 15267 26081 </div> … … 15308 26122 <div> 15309 26123 <div> 15310 <h2 class="title" style="clear: both"><a id="Case-sensitivity-of-foreign-names-in-CCL"></a>1 2.8. Case-sensitivity of foreign names in <code class="literal">CCL</code></h2>26124 <h2 class="title" style="clear: both"><a id="Case-sensitivity-of-foreign-names-in-CCL"></a>13.8. Case-sensitivity of foreign names in <code class="literal">CCL</code></h2> 15311 26125 </div> 15312 26126 </div> … … 15316 26130 <div> 15317 26131 <div> 15318 <h3 class="title"><a id="Case-sensitivity-overview"></a>1 2.8.1. Overview</h3>26132 <h3 class="title"><a id="Case-sensitivity-overview"></a>13.8.1. Overview</h3> 15319 26133 </div> 15320 26134 </div> … … 15345 26159 <div> 15346 26160 <div> 15347 <h3 class="title"><a id="Foreign-constant-and-function-names"></a>1 2.8.2. Foreign constant and function names</h3>26161 <h3 class="title"><a id="Foreign-constant-and-function-names"></a>13.8.2. Foreign constant and function names</h3> 15348 26162 </div> 15349 26163 </div> … … 15375 26189 <div> 15376 26190 <div> 15377 <h3 class="title"><a id="Foreign-type--record--and-field-names"></a>1 2.8.3. Foreign type, record, and field names</h3>26191 <h3 class="title"><a id="Foreign-type--record--and-field-names"></a>13.8.3. Foreign type, record, and field names</h3> 15378 26192 </div> 15379 26193 </div> … … 15439 26253 <div> 15440 26254 <div> 15441 <h3 class="title"><a id="Examples--1-"></a>1 2.8.4. Examples</h3>26255 <h3 class="title"><a id="Examples--1-"></a>13.8.4. Examples</h3> 15442 26256 </div> 15443 26257 </div> … … 15458 26272 <div> 15459 26273 <div> 15460 <h2 class="title" style="clear: both"><a id="Reading-Foreign-Names"></a>1 2.9. Reading Foreign Names</h2>26274 <h2 class="title" style="clear: both"><a id="Reading-Foreign-Names"></a>13.9. Reading Foreign Names</h2> 15461 26275 </div> 15462 26276 </div> … … 15498 26312 <div> 15499 26313 <div> 15500 <h2 class="title" style="clear: both"><a id="Tutorial--Using-Basic-Calls-and-Types"></a>1 2.10. Tutorial: Using Basic Calls and Types</h2>26314 <h2 class="title" style="clear: both"><a id="Tutorial--Using-Basic-Calls-and-Types"></a>13.10. Tutorial: Using Basic Calls and Types</h2> 15501 26315 </div> 15502 26316 </div> … … 15867 26681 <div> 15868 26682 <div> 15869 <h3 class="title"><a id="Acknowledgement"></a>1 2.10.1. Acknowledgement</h3>26683 <h3 class="title"><a id="Acknowledgement"></a>13.10.1. Acknowledgement</h3> 15870 26684 </div> 15871 26685 </div> … … 15879 26693 <div> 15880 26694 <div> 15881 <h2 class="title" style="clear: both"><a id="Tutorial--Allocating-Foreign-Data-on-the-Lisp-Heap"></a>1 2.11. Tutorial: Allocating Foreign Data on the Lisp Heap </h2>26695 <h2 class="title" style="clear: both"><a id="Tutorial--Allocating-Foreign-Data-on-the-Lisp-Heap"></a>13.11. Tutorial: Allocating Foreign Data on the Lisp Heap </h2> 15882 26696 </div> 15883 26697 </div> … … 16199 27013 <div> 16200 27014 <div> 16201 <h3 class="title"><a id="Acknowledgement--1-"></a>1 2.11.1. Acknowledgement</h3>27015 <h3 class="title"><a id="Acknowledgement--1-"></a>13.11.1. Acknowledgement</h3> 16202 27016 </div> 16203 27017 </div> … … 16211 27025 <div> 16212 27026 <div> 16213 <h2 class="title" style="clear: both"><a id="Foreign-Function-Interface-Dictionary"></a>1 2.12. The Foreign-Function-Interface Dictionary</h2>27027 <h2 class="title" style="clear: both"><a id="Foreign-Function-Interface-Dictionary"></a>13.12. The Foreign-Function-Interface Dictionary</h2> 16214 27028 </div> 16215 27029 </div> … … 16227 27041 <div> 16228 27042 <div class="refsect1" lang="en" xml:lang="en"> 16229 <a xmlns="http://www.w3.org/1999/xhtml" id="id 535012"></a>27043 <a xmlns="http://www.w3.org/1999/xhtml" id="id714121"></a> 16230 27044 <div class="header">Description:</div> 16231 27045 <p xmlns="http://www.w3.org/1999/xhtml">Reads a symbol from the current input stream, with *PACKAGE* 16232 27046 bound to the "OS" package and with readtable-case preserved.</p> 16233 <p xmlns="http://www.w3.org/1999/xhtml">Does a lookup on that symbol in <a class="link" href="#The-Interface-Database" title="1 2.4. The Interface Database">the <code class="literal">CCL</code> interface27047 <p xmlns="http://www.w3.org/1999/xhtml">Does a lookup on that symbol in <a class="link" href="#The-Interface-Database" title="13.4. The Interface Database">the <code class="literal">CCL</code> interface 16234 27048 database</a>, signalling an error if no foreign function 16235 information can be found for the symbol in any active <a class="link" href="#Using-Interface-Directories" title="1 2.5. Using Interface Directories">interface27049 information can be found for the symbol in any active <a class="link" href="#Using-Interface-Directories" title="13.5. Using Interface Directories">interface 16236 27050 directory</a>.</p> 16237 27051 <p xmlns="http://www.w3.org/1999/xhtml">Notes the foreign function information, including the foreign … … 16279 27093 <div> 16280 27094 <div class="refsect1" lang="en" xml:lang="en"> 16281 <a xmlns="http://www.w3.org/1999/xhtml" id="id 535118"></a>27095 <a xmlns="http://www.w3.org/1999/xhtml" id="id714227"></a> 16282 27096 <div class="header">Description:</div> 16283 27097 <p xmlns="http://www.w3.org/1999/xhtml">In <code class="literal">CCL</code> 1.2 and later, the #& reader macro can be used to … … 16338 27152 <div> 16339 27153 <div class="refsect1" lang="en" xml:lang="en"> 16340 <a xmlns="http://www.w3.org/1999/xhtml" id="id 535236"></a>27154 <a xmlns="http://www.w3.org/1999/xhtml" id="id714345"></a> 16341 27155 <div class="header">Description:</div> 16342 27156 <p xmlns="http://www.w3.org/1999/xhtml">In <code class="literal">CCL</code> 0.14.2 and later, the #? reader macro can be used … … 16385 27199 <div> 16386 27200 <div class="refsect1" lang="en" xml:lang="en"> 16387 <a xmlns="http://www.w3.org/1999/xhtml" id="id 535318"></a>27201 <a xmlns="http://www.w3.org/1999/xhtml" id="id714427"></a> 16388 27202 <div class="header">Description:</div> 16389 27203 <p xmlns="http://www.w3.org/1999/xhtml">In <code class="literal">CCL</code> 1.2 and later, the #/ reader macro can be used to … … 16488 27302 <div> 16489 27303 <div class="refsect1" lang="en" xml:lang="en"> 16490 <a xmlns="http://www.w3.org/1999/xhtml" id="id 535457"></a>27304 <a xmlns="http://www.w3.org/1999/xhtml" id="id714566"></a> 16491 27305 <div class="header">Description:</div> 16492 27306 <p xmlns="http://www.w3.org/1999/xhtml">In <code class="literal">CCL</code> 1.2 and later, the #> reader macro reads … … 16517 27331 <div> 16518 27332 <div class="refsect1" lang="en" xml:lang="en"> 16519 <a xmlns="http://www.w3.org/1999/xhtml" id="id 535532"></a>27333 <a xmlns="http://www.w3.org/1999/xhtml" id="id714641"></a> 16520 27334 <div class="header">Values:</div> 16521 27335 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">library</span></i>---either an object of type SHLIB, or a string which … … 16524 27338 </div> 16525 27339 <div class="refsect1" lang="en" xml:lang="en"> 16526 <a xmlns="http://www.w3.org/1999/xhtml" id="id 535568"></a>27340 <a xmlns="http://www.w3.org/1999/xhtml" id="id714677"></a> 16527 27341 <div class="header">Description:</div> 16528 27342 <p xmlns="http://www.w3.org/1999/xhtml">If <em class="varname">completely</em> is T, sets the … … 16553 27367 <div> 16554 27368 <div class="refsect1" lang="en" xml:lang="en"> 16555 <a xmlns="http://www.w3.org/1999/xhtml" id="id 535644"></a>27369 <a xmlns="http://www.w3.org/1999/xhtml" id="id714753"></a> 16556 27370 <div class="header">Values:</div> 16557 27371 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">name</span></i>---A symbol which can be made into a special variable</p> 16558 27372 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">arg-type-specifer</span></i>---One of the foreign argument-type keywords, 16559 described above, or an equivalent <a xmlns="http://www.w3.org/1999/xhtml" class="link" href="#Specifying-And-Using-Foreign-Types" title="1 2.1. Specifying And Using Foreign Types">foreign27373 described above, or an equivalent <a xmlns="http://www.w3.org/1999/xhtml" class="link" href="#Specifying-And-Using-Foreign-Types" title="13.1. Specifying And Using Foreign Types">foreign 16560 27374 type specifier</a>. In addition, if the keyword 16561 27375 :WITHOUT-INTERRUPTS is specified, the callback will be … … 16570 27384 </div> 16571 27385 <div class="refsect1" lang="en" xml:lang="en"> 16572 <a xmlns="http://www.w3.org/1999/xhtml" id="id 535715"></a>27386 <a xmlns="http://www.w3.org/1999/xhtml" id="id714824"></a> 16573 27387 <div class="header">Description:</div> 16574 27388 <p xmlns="http://www.w3.org/1999/xhtml">Proclaims <em class="varname">name</em> … … 16606 27420 <div> 16607 27421 <div class="refsect1" lang="en" xml:lang="en"> 16608 <a xmlns="http://www.w3.org/1999/xhtml" id="id 535794"></a>27422 <a xmlns="http://www.w3.org/1999/xhtml" id="id714904"></a> 16609 27423 <div class="header">Values:</div> 16610 27424 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">name</span></i>---NIL or a keyword; the keyword may contain 16611 <a xmlns="http://www.w3.org/1999/xhtml" class="link" href="#Case-sensitivity-of-foreign-names-in-CCL" title="1 2.8. Case-sensitivity of foreign names in CCL">escaping constructs</a>.</p>27425 <a xmlns="http://www.w3.org/1999/xhtml" class="link" href="#Case-sensitivity-of-foreign-names-in-CCL" title="13.8. Case-sensitivity of foreign names in CCL">escaping constructs</a>.</p> 16612 27426 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">foreign-type-spec</span></i>---A foreign type specifier, whose syntax is (loosely) 16613 27427 defined above.</p> 16614 27428 </div> 16615 27429 <div class="refsect1" lang="en" xml:lang="en"> 16616 <a xmlns="http://www.w3.org/1999/xhtml" id="id 535836"></a>27430 <a xmlns="http://www.w3.org/1999/xhtml" id="id714945"></a> 16617 27431 <div class="header">Description:</div> 16618 27432 <p xmlns="http://www.w3.org/1999/xhtml">If name is non-NIL, defines name to be an alias for the … … 16648 27462 <div> 16649 27463 <div class="refsect1" lang="en" xml:lang="en"> 16650 <a xmlns="http://www.w3.org/1999/xhtml" id="id 535908"></a>27464 <a xmlns="http://www.w3.org/1999/xhtml" id="id715018"></a> 16651 27465 <div class="header">Values:</div> 16652 27466 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">name</span></i>--- … … 16661 27475 </div> 16662 27476 <div class="refsect1" lang="en" xml:lang="en"> 16663 <a xmlns="http://www.w3.org/1999/xhtml" id="id 535949"></a>27477 <a xmlns="http://www.w3.org/1999/xhtml" id="id715058"></a> 16664 27478 <div class="header">Description:</div> 16665 27479 <p xmlns="http://www.w3.org/1999/xhtml">If there is already an EXTERNAL-ENTRY-POINT for … … 16689 27503 <div> 16690 27504 <div class="refsect1" lang="en" xml:lang="en"> 16691 <a xmlns="http://www.w3.org/1999/xhtml" id="id 536018"></a>27505 <a xmlns="http://www.w3.org/1999/xhtml" id="id715127"></a> 16692 27506 <div class="header">Values:</div> 16693 27507 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">name</span></i>---A lisp string. See external, above.</p> 16694 27508 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">arg-type-specifer</span></i>---One of the foreign argument-type keywords, described 16695 above, or an equivalent <a xmlns="http://www.w3.org/1999/xhtml" class="link" href="#Specifying-And-Using-Foreign-Types" title="1 2.1. Specifying And Using Foreign Types">foreign27509 above, or an equivalent <a xmlns="http://www.w3.org/1999/xhtml" class="link" href="#Specifying-And-Using-Foreign-Types" title="13.1. Specifying And Using Foreign Types">foreign 16696 27510 type specifier</a>.</p> 16697 27511 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">arg</span></i>---A lisp value of type indicated by the corresponding 16698 27512 arg-type-specifier</p> 16699 27513 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">result-type-specifier</span></i>---One of the foreign argument-type keywords, described 16700 above, or an equivalent <a xmlns="http://www.w3.org/1999/xhtml" class="link" href="#Specifying-And-Using-Foreign-Types" title="1 2.1. Specifying And Using Foreign Types">foreign27514 above, or an equivalent <a xmlns="http://www.w3.org/1999/xhtml" class="link" href="#Specifying-And-Using-Foreign-Types" title="13.1. Specifying And Using Foreign Types">foreign 16701 27515 type specifier</a>.</p> 16702 27516 </div> 16703 27517 <div class="refsect1" lang="en" xml:lang="en"> 16704 <a xmlns="http://www.w3.org/1999/xhtml" id="id 536092"></a>27518 <a xmlns="http://www.w3.org/1999/xhtml" id="id715201"></a> 16705 27519 <div class="header">Description:</div> 16706 27520 <p xmlns="http://www.w3.org/1999/xhtml">Calls the foreign function at the address obtained by … … 16729 27543 <div> 16730 27544 <div class="refsect1" lang="en" xml:lang="en"> 16731 <a xmlns="http://www.w3.org/1999/xhtml" id="id 536151"></a>27545 <a xmlns="http://www.w3.org/1999/xhtml" id="id715260"></a> 16732 27546 <div class="header">Values:</div> 16733 27547 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">entrypoint</span></i>---A fixnum or MACPTR</p> … … 16740 27554 </div> 16741 27555 <div class="refsect1" lang="en" xml:lang="en"> 16742 <a xmlns="http://www.w3.org/1999/xhtml" id="id 536214"></a>27556 <a xmlns="http://www.w3.org/1999/xhtml" id="id715323"></a> 16743 27557 <div class="header">Description:</div> 16744 27558 <p xmlns="http://www.w3.org/1999/xhtml">Calls the foreign function at address entrypoint passing the … … 16766 27580 <div> 16767 27581 <div class="refsect1" lang="en" xml:lang="en"> 16768 <a xmlns="http://www.w3.org/1999/xhtml" id="id 536273"></a>27582 <a xmlns="http://www.w3.org/1999/xhtml" id="id715382"></a> 16769 27583 <div class="header">Values:</div> 16770 27584 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">entrypoint</span></i>---A fixnum or MACPTR</p> 16771 27585 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">arg-type-specifer</span></i>---One of the foreign argument-type keywords, described 16772 above, or an equivalent <a xmlns="http://www.w3.org/1999/xhtml" class="link" href="#Specifying-And-Using-Foreign-Types" title="1 2.1. Specifying And Using Foreign Types">foreign27586 above, or an equivalent <a xmlns="http://www.w3.org/1999/xhtml" class="link" href="#Specifying-And-Using-Foreign-Types" title="13.1. Specifying And Using Foreign Types">foreign 16773 27587 type specifier</a>.</p> 16774 27588 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">arg</span></i>---A lisp value of type indicated by the corresponding 16775 27589 arg-type-specifier</p> 16776 27590 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">result-type-specifier</span></i>---One of the foreign argument-type keywords, described 16777 above, or an equivalent <a xmlns="http://www.w3.org/1999/xhtml" class="link" href="#Specifying-And-Using-Foreign-Types" title="1 2.1. Specifying And Using Foreign Types">foreign27591 above, or an equivalent <a xmlns="http://www.w3.org/1999/xhtml" class="link" href="#Specifying-And-Using-Foreign-Types" title="13.1. Specifying And Using Foreign Types">foreign 16778 27592 type specifier</a>.</p> 16779 27593 </div> 16780 27594 <div class="refsect1" lang="en" xml:lang="en"> 16781 <a xmlns="http://www.w3.org/1999/xhtml" id="id 536346"></a>27595 <a xmlns="http://www.w3.org/1999/xhtml" id="id715456"></a> 16782 27596 <div class="header">Description:</div> 16783 27597 <p xmlns="http://www.w3.org/1999/xhtml">Calls the foreign function at address entrypoint passing the … … 16804 27618 <div> 16805 27619 <div class="refsect1" lang="en" xml:lang="en"> 16806 <a xmlns="http://www.w3.org/1999/xhtml" id="id 536402"></a>27620 <a xmlns="http://www.w3.org/1999/xhtml" id="id715512"></a> 16807 27621 <div class="header">Values:</div> 16808 27622 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">name</span></i>---A lisp string.</p> 16809 27623 </div> 16810 27624 <div class="refsect1" lang="en" xml:lang="en"> 16811 <a xmlns="http://www.w3.org/1999/xhtml" id="id 536425"></a>27625 <a xmlns="http://www.w3.org/1999/xhtml" id="id715534"></a> 16812 27626 <div class="header">Description:</div> 16813 27627 <p xmlns="http://www.w3.org/1999/xhtml">Tries to resolve the address of the foreign symbol 16814 27628 name. If successful, returns that address encapsulated in 16815 <a class="link" href="#Referencing-and-Using-Foreign-Memory-Addresses" title="1 2.3. Referencing and Using Foreign Memory Addresses">a27629 <a class="link" href="#Referencing-and-Using-Foreign-Memory-Addresses" title="13.3. Referencing and Using Foreign Memory Addresses">a 16816 27630 MACPTR</a>, else returns NIL.</p> 16817 27631 </div> … … 16832 27646 <div> 16833 27647 <div class="refsect1" lang="en" xml:lang="en"> 16834 <a xmlns="http://www.w3.org/1999/xhtml" id="id 536484"></a>27648 <a xmlns="http://www.w3.org/1999/xhtml" id="id715593"></a> 16835 27649 <div class="header">Values:</div> 16836 27650 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">name</span></i>---A lisp string.</p> 16837 27651 </div> 16838 27652 <div class="refsect1" lang="en" xml:lang="en"> 16839 <a xmlns="http://www.w3.org/1999/xhtml" id="id 536506"></a>27653 <a xmlns="http://www.w3.org/1999/xhtml" id="id715615"></a> 16840 27654 <div class="header">Description:</div> 16841 27655 <p xmlns="http://www.w3.org/1999/xhtml">Tries to resolve the address of the foreign symbol name. If … … 16859 27673 <div> 16860 27674 <div class="refsect1" lang="en" xml:lang="en"> 16861 <a xmlns="http://www.w3.org/1999/xhtml" id="id 536560"></a>27675 <a xmlns="http://www.w3.org/1999/xhtml" id="id715670"></a> 16862 27676 <div class="header">Values:</div> 16863 27677 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">ptr</span></i>---A <code xmlns="http://www.w3.org/1999/xhtml" class="code">MACPTR</code> that points to a block of … … 16865 27679 </div> 16866 27680 <div class="refsect1" lang="en" xml:lang="en"> 16867 <a xmlns="http://www.w3.org/1999/xhtml" id="id 536586"></a>27681 <a xmlns="http://www.w3.org/1999/xhtml" id="id715696"></a> 16868 27682 <div class="header">Description:</div> 16869 27683 <p xmlns="http://www.w3.org/1999/xhtml">In <code class="literal">CCL</code> 1.2 and later, the <code class="code">CCL:FREE</code> … … 16897 27711 <div> 16898 27712 <div class="refsect1" lang="en" xml:lang="en"> 16899 <a xmlns="http://www.w3.org/1999/xhtml" id="id 536679"></a>27713 <a xmlns="http://www.w3.org/1999/xhtml" id="id715789"></a> 16900 27714 <div class="header">Values:</div> 16901 27715 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">element-count</span></i>---A positive integer.</p> … … 16912 27726 </div> 16913 27727 <div class="refsect1" lang="en" xml:lang="en"> 16914 <a xmlns="http://www.w3.org/1999/xhtml" id="id 536754"></a>27728 <a xmlns="http://www.w3.org/1999/xhtml" id="id715864"></a> 16915 27729 <div class="header">Description:</div> 16916 27730 <p xmlns="http://www.w3.org/1999/xhtml"> … … 16947 27761 <div> 16948 27762 <div class="refsect1" lang="en" xml:lang="en"> 16949 <a xmlns="http://www.w3.org/1999/xhtml" id="id 536826"></a>27763 <a xmlns="http://www.w3.org/1999/xhtml" id="id715935"></a> 16950 27764 <div class="header">Values:</div> 16951 27765 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">typespec</span></i>---A foreign type specifier, or a keyword which is used … … 16964 27778 </div> 16965 27779 <div class="refsect1" lang="en" xml:lang="en"> 16966 <a xmlns="http://www.w3.org/1999/xhtml" id="id 536894"></a>27780 <a xmlns="http://www.w3.org/1999/xhtml" id="id716003"></a> 16967 27781 <div class="header">Description:</div> 16968 27782 <p xmlns="http://www.w3.org/1999/xhtml"> … … 17013 27827 <div> 17014 27828 <div class="refsect1" lang="en" xml:lang="en"> 17015 <a xmlns="http://www.w3.org/1999/xhtml" id="id 537016"></a>27829 <a xmlns="http://www.w3.org/1999/xhtml" id="id716125"></a> 17016 27830 <div class="header">Values:</div> 17017 27831 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">typespec</span></i>---A foreign type specifier, or a keyword which is used … … 17027 27841 </div> 17028 27842 <div class="refsect1" lang="en" xml:lang="en"> 17029 <a xmlns="http://www.w3.org/1999/xhtml" id="id 537074"></a>27843 <a xmlns="http://www.w3.org/1999/xhtml" id="id716183"></a> 17030 27844 <div class="header">Description:</div> 17031 27845 <p xmlns="http://www.w3.org/1999/xhtml"> … … 17068 27882 </div> 17069 27883 <div class="refsect1" lang="en" xml:lang="en"> 17070 <a xmlns="http://www.w3.org/1999/xhtml" id="id 537163"></a>27884 <a xmlns="http://www.w3.org/1999/xhtml" id="id716273"></a> 17071 27885 <div class="header">Notes:</div> 17072 27886 <p xmlns="http://www.w3.org/1999/xhtml"> … … 17080 27894 that would mean that any stand-alone application using it would 17081 27895 have to include a copy of the interface database 17082 (see <a class="xref" href="#The-Interface-Database" title="1 2.4. The Interface Database">Section 12.4, âThe Interface Databaseâ</a>), which is undesirable27896 (see <a class="xref" href="#The-Interface-Database" title="13.4. The Interface Database">Section 13.4, âThe Interface Databaseâ</a>), which is undesirable 17083 27897 because it's large. 17084 27898 </p> … … 17101 27915 <div> 17102 27916 <div class="refsect1" lang="en" xml:lang="en"> 17103 <a xmlns="http://www.w3.org/1999/xhtml" id="id 537247"></a>27917 <a xmlns="http://www.w3.org/1999/xhtml" id="id716356"></a> 17104 27918 <div class="header">Values:</div> 17105 27919 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">name</span></i>---A SIMPLE-STRING which is presumed to be the so-name of … … 17109 27923 </div> 17110 27924 <div class="refsect1" lang="en" xml:lang="en"> 17111 <a xmlns="http://www.w3.org/1999/xhtml" id="id 537287"></a>27925 <a xmlns="http://www.w3.org/1999/xhtml" id="id716396"></a> 17112 27926 <div class="header">Description:</div> 17113 27927 <p xmlns="http://www.w3.org/1999/xhtml">If the library denoted by <em class="varname">name</em> can … … 17120 27934 </div> 17121 27935 <div class="refsect1" lang="en" xml:lang="en"> 17122 <a xmlns="http://www.w3.org/1999/xhtml" id="id 537303"></a>27936 <a xmlns="http://www.w3.org/1999/xhtml" id="id716412"></a> 17123 27937 <div class="header">Examples:</div> 17124 27938 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting">;;; Try to do something simple. … … 17155 27969 </div> 17156 27970 <div class="refsect1" lang="en" xml:lang="en"> 17157 <a xmlns="http://www.w3.org/1999/xhtml" id="id 537323"></a>27971 <a xmlns="http://www.w3.org/1999/xhtml" id="id716433"></a> 17158 27972 <div class="header">Notes:</div> 17159 27973 <p xmlns="http://www.w3.org/1999/xhtml">It would be helpful to describe what an soname is and give … … 17178 27992 <div> 17179 27993 <div class="refsect1" lang="en" xml:lang="en"> 17180 <a xmlns="http://www.w3.org/1999/xhtml" id="id 537381"></a>27994 <a xmlns="http://www.w3.org/1999/xhtml" id="id716490"></a> 17181 27995 <div class="header">Values:</div> 17182 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">ptr</span></i>---<a xmlns="http://www.w3.org/1999/xhtml" class="link" href="#Referencing-and-Using-Foreign-Memory-Addresses" title="1 2.3. Referencing and Using Foreign Memory Addresses">a MACPTR</a>.</p>27996 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">ptr</span></i>---<a xmlns="http://www.w3.org/1999/xhtml" class="link" href="#Referencing-and-Using-Foreign-Memory-Addresses" title="13.3. Referencing and Using Foreign Memory Addresses">a MACPTR</a>.</p> 17183 27997 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">accessor-form</span></i>---a keyword which names a foreign type or record, as 17184 described in <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#Foreign-type--record--and-field-names" title="1 2.8.3. Foreign type, record, and field names">Section 12.8.3, âForeign type, record, and field namesâ</a>.27998 described in <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#Foreign-type--record--and-field-names" title="13.8.3. Foreign type, record, and field names">Section 13.8.3, âForeign type, record, and field namesâ</a>. 17185 27999 </p> 17186 28000 </div> 17187 28001 <div class="refsect1" lang="en" xml:lang="en"> 17188 <a xmlns="http://www.w3.org/1999/xhtml" id="id 537425"></a>28002 <a xmlns="http://www.w3.org/1999/xhtml" id="id716534"></a> 17189 28003 <div class="header">Description:</div> 17190 28004 <p xmlns="http://www.w3.org/1999/xhtml">References an instance of a foreign type (or a component of … … 17212 28026 <div> 17213 28027 <div class="refsect1" lang="en" xml:lang="en"> 17214 <a xmlns="http://www.w3.org/1999/xhtml" id="id 537490"></a>28028 <a xmlns="http://www.w3.org/1999/xhtml" id="id716600"></a> 17215 28029 <div class="header">Values:</div> 17216 28030 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">eep</span></i>---An EXTERNAL-ENTRY-POINT, as obtained by the EXTERNAL … … 17218 28032 </div> 17219 28033 <div class="refsect1" lang="en" xml:lang="en"> 17220 <a xmlns="http://www.w3.org/1999/xhtml" id="id 537514"></a>28034 <a xmlns="http://www.w3.org/1999/xhtml" id="id716623"></a> 17221 28035 <div class="header">Description:</div> 17222 28036 <p xmlns="http://www.w3.org/1999/xhtml">Tries to resolve the address of the EXTERNAL-ENTRY-POINT … … 17241 28055 <div> 17242 28056 <div class="refsect1" lang="en" xml:lang="en"> 17243 <a xmlns="http://www.w3.org/1999/xhtml" id="id 537585"></a>28057 <a xmlns="http://www.w3.org/1999/xhtml" id="id716694"></a> 17244 28058 <div class="header">Values:</div> 17245 28059 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">var</span></i>---A symbol (a lisp variable)</p> … … 17249 28063 </div> 17250 28064 <div class="refsect1" lang="en" xml:lang="en"> 17251 <a xmlns="http://www.w3.org/1999/xhtml" id="id 537636"></a>28065 <a xmlns="http://www.w3.org/1999/xhtml" id="id716745"></a> 17252 28066 <div class="header">Description:</div> 17253 28067 <p xmlns="http://www.w3.org/1999/xhtml">Executes <em class="varname">body</em> 17254 28068 in an environment in which each var is bound 17255 to <a class="link" href="#Referencing-and-Using-Foreign-Memory-Addresses" title="1 2.3. Referencing and Using Foreign Memory Addresses">a MACPTR</a> encapsulating the28069 to <a class="link" href="#Referencing-and-Using-Foreign-Memory-Addresses" title="13.3. Referencing and Using Foreign Memory Addresses">a MACPTR</a> encapsulating the 17256 28070 address of a stack-allocated foreign memory block, allocated and 17257 28071 initialized from typespec and initforms as per … … 17279 28093 <div> 17280 28094 <div class="refsect1" lang="en" xml:lang="en"> 17281 <a xmlns="http://www.w3.org/1999/xhtml" id="id 537717"></a>28095 <a xmlns="http://www.w3.org/1999/xhtml" id="id716826"></a> 17282 28096 <div class="header">Values:</div> 17283 28097 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">var</span></i>---A symbol (a lisp variable)</p> … … 17286 28100 </div> 17287 28101 <div class="refsect1" lang="en" xml:lang="en"> 17288 <a xmlns="http://www.w3.org/1999/xhtml" id="id 537765"></a>28102 <a xmlns="http://www.w3.org/1999/xhtml" id="id716874"></a> 17289 28103 <div class="header">Description:</div> 17290 28104 <p xmlns="http://www.w3.org/1999/xhtml">Executes body in an environment in which each var is 17291 bound to <a class="link" href="#Referencing-and-Using-Foreign-Memory-Addresses" title="1 2.3. Referencing and Using Foreign Memory Addresses">a28105 bound to <a class="link" href="#Referencing-and-Using-Foreign-Memory-Addresses" title="13.3. Referencing and Using Foreign Memory Addresses">a 17292 28106 MACPTR</a> encapsulating the address of a stack-allocated 17293 28107 foreign memory block, allocated and initialized from … … 17313 28127 <div> 17314 28128 <div class="refsect1" lang="en" xml:lang="en"> 17315 <a xmlns="http://www.w3.org/1999/xhtml" id="id 537832"></a>28129 <a xmlns="http://www.w3.org/1999/xhtml" id="id716941"></a> 17316 28130 <div class="header">Values:</div> 17317 28131 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">object</span></i>---A CLOS object of a class for which there exists … … 17321 28135 </div> 17322 28136 <div class="refsect1" lang="en" xml:lang="en"> 17323 <a xmlns="http://www.w3.org/1999/xhtml" id="id 537860"></a>28137 <a xmlns="http://www.w3.org/1999/xhtml" id="id716970"></a> 17324 28138 <div class="header">Description:</div> 17325 28139 <p xmlns="http://www.w3.org/1999/xhtml"> … … 17358 28172 </div> 17359 28173 <div class="refsect1" lang="en" xml:lang="en"> 17360 <a xmlns="http://www.w3.org/1999/xhtml" id="id 537917"></a>28174 <a xmlns="http://www.w3.org/1999/xhtml" id="id717026"></a> 17361 28175 <div class="header">Example:</div> 17362 28176 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> … … 17372 28186 </div> 17373 28187 <div class="refsect1" lang="en" xml:lang="en"> 17374 <a xmlns="http://www.w3.org/1999/xhtml" id="id 537931"></a>28188 <a xmlns="http://www.w3.org/1999/xhtml" id="id717041"></a> 17375 28189 <div class="header">See Also:</div> 17376 28190 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"> 17377 <a class="xref" href="#Tutorial--Allocating-Foreign-Data-on-the-Lisp-Heap" title="1 2.11. Tutorial: Allocating Foreign Data on the Lisp Heap">Section 12.11, âTutorial: Allocating Foreign Data on the Lisp Heap â</a>28191 <a class="xref" href="#Tutorial--Allocating-Foreign-Data-on-the-Lisp-Heap" title="13.11. Tutorial: Allocating Foreign Data on the Lisp Heap">Section 13.11, âTutorial: Allocating Foreign Data on the Lisp Heap â</a> 17378 28192 </span> 17379 28193 </div> … … 17394 28208 <div> 17395 28209 <div class="refsect1" lang="en" xml:lang="en"> 17396 <a xmlns="http://www.w3.org/1999/xhtml" id="id 537991"></a>28210 <a xmlns="http://www.w3.org/1999/xhtml" id="id717101"></a> 17397 28211 <div class="header">Values:</div> 17398 28212 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">dir-id</span></i>---A keyword whose pname, mapped to lower case, names a … … 17401 28215 </div> 17402 28216 <div class="refsect1" lang="en" xml:lang="en"> 17403 <a xmlns="http://www.w3.org/1999/xhtml" id="id 538015"></a>28217 <a xmlns="http://www.w3.org/1999/xhtml" id="id717124"></a> 17404 28218 <div class="header">Description:</div> 17405 28219 <p xmlns="http://www.w3.org/1999/xhtml">Tells <code class="literal">CCL</code> to remove the interface directory denoted by … … 17425 28239 <div> 17426 28240 <div class="refsect1" lang="en" xml:lang="en"> 17427 <a xmlns="http://www.w3.org/1999/xhtml" id="id 538075"></a>28241 <a xmlns="http://www.w3.org/1999/xhtml" id="id717184"></a> 17428 28242 <div class="header">Values:</div> 17429 28243 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">dir-id</span></i>---A keyword whose pname, mapped to lower case, names a … … 17432 28246 </div> 17433 28247 <div class="refsect1" lang="en" xml:lang="en"> 17434 <a xmlns="http://www.w3.org/1999/xhtml" id="id 538099"></a>28248 <a xmlns="http://www.w3.org/1999/xhtml" id="id717208"></a> 17435 28249 <div class="header">Description:</div> 17436 28250 <p xmlns="http://www.w3.org/1999/xhtml">Tells <code class="literal">CCL</code> to add the interface directory denoted by … … 17454 28268 </div> 17455 28269 <div class="refsect1" lang="en" xml:lang="en"> 17456 <a xmlns="http://www.w3.org/1999/xhtml" id="id 538137"></a>28270 <a xmlns="http://www.w3.org/1999/xhtml" id="id717246"></a> 17457 28271 <div class="header">Examples:</div> 17458 28272 <p xmlns="http://www.w3.org/1999/xhtml">One typically wants interface information to be … … 17479 28293 <div> 17480 28294 <div> 17481 <h2 class="title"><a id="The-Objective-C-Bridge"></a>Chapter 1 3. The Objective-C Bridge</h2>28295 <h2 class="title"><a id="The-Objective-C-Bridge"></a>Chapter 14. The Objective-C Bridge</h2> 17482 28296 </div> 17483 28297 </div> … … 17487 28301 <dt> 17488 28302 <span class="sect1"> 17489 <a href="#Objective-C-Changes-1.2">1 3.1. Changes in 1.2</a>28303 <a href="#Objective-C-Changes-1.2">14.1. Changes in 1.2</a> 17490 28304 </span> 17491 28305 </dt> 17492 28306 <dt> 17493 28307 <span class="sect1"> 17494 <a href="#Using-Objective-C-Classes">1 3.2. Using Objective-C Classes</a>28308 <a href="#Using-Objective-C-Classes">14.2. Using Objective-C Classes</a> 17495 28309 </span> 17496 28310 </dt> 17497 28311 <dt> 17498 28312 <span class="sect1"> 17499 <a href="#Instantiating-Objective-C-Objects">1 3.3. Instantiating Objective-C Objects</a>28313 <a href="#Instantiating-Objective-C-Objects">14.3. Instantiating Objective-C Objects</a> 17500 28314 </span> 17501 28315 </dt> 17502 28316 <dt> 17503 28317 <span class="sect1"> 17504 <a href="#Calling-Objective-C-Methods">1 3.4. Calling Objective-C Methods</a>28318 <a href="#Calling-Objective-C-Methods">14.4. Calling Objective-C Methods</a> 17505 28319 </span> 17506 28320 </dt> … … 17509 28323 <dt> 17510 28324 <span class="sect2"> 17511 <a href="#Type-Coercion-for-ObjC-Method-Calls">1 3.4.1. Type Coercion for Objective-C Method Calls</a>28325 <a href="#Type-Coercion-for-ObjC-Method-Calls">14.4.1. Type Coercion for Objective-C Method Calls</a> 17512 28326 </span> 17513 28327 </dt> 17514 28328 <dt> 17515 28329 <span class="sect2"> 17516 <a href="#Methods-which-Return-Structures">1 3.4.2. Methods which Return Structures</a>28330 <a href="#Methods-which-Return-Structures">14.4.2. Methods which Return Structures</a> 17517 28331 </span> 17518 28332 </dt> 17519 28333 <dt> 17520 28334 <span class="sect2"> 17521 <a href="#Variable-Arity-Messages">1 3.4.3. Variable-Arity Messages</a>28335 <a href="#Variable-Arity-Messages">14.4.3. Variable-Arity Messages</a> 17522 28336 </span> 17523 28337 </dt> 17524 28338 <dt> 17525 28339 <span class="sect2"> 17526 <a href="#Optimization">1 3.4.4. Optimization</a>28340 <a href="#Optimization">14.4.4. Optimization</a> 17527 28341 </span> 17528 28342 </dt> … … 17531 28345 <dt> 17532 28346 <span class="sect1"> 17533 <a href="#Defining-Objective-C-Classes">1 3.5. Defining Objective-C Classes</a>28347 <a href="#Defining-Objective-C-Classes">14.5. Defining Objective-C Classes</a> 17534 28348 </span> 17535 28349 </dt> … … 17538 28352 <dt> 17539 28353 <span class="sect2"> 17540 <a href="#Defining-classes-with-foreign-slots">1 3.5.1. Defining classes with foreign slots</a>28354 <a href="#Defining-classes-with-foreign-slots">14.5.1. Defining classes with foreign slots</a> 17541 28355 </span> 17542 28356 </dt> 17543 28357 <dt> 17544 28358 <span class="sect2"> 17545 <a href="#Defining-classes-with-Lisp-slots">1 3.5.2. Defining classes with Lisp slots</a>28359 <a href="#Defining-classes-with-Lisp-slots">14.5.2. Defining classes with Lisp slots</a> 17546 28360 </span> 17547 28361 </dt> … … 17550 28364 <dt> 17551 28365 <span class="sect1"> 17552 <a href="#Defining-Objective-C-Methods">1 3.6. Defining Objective-C Methods</a>28366 <a href="#Defining-Objective-C-Methods">14.6. Defining Objective-C Methods</a> 17553 28367 </span> 17554 28368 </dt> … … 17557 28371 <dt> 17558 28372 <span class="sect2"> 17559 <a href="#Using-define-objc-method">1 3.6.1. Using <code class="literal">define-objc-method</code></a>28373 <a href="#Using-define-objc-method">14.6.1. Using <code class="literal">define-objc-method</code></a> 17560 28374 </span> 17561 28375 </dt> 17562 28376 <dt> 17563 28377 <span class="sect2"> 17564 <a href="#Using-objc-defmethod">1 3.6.2. Using <code class="literal">objc:defmethod</code></a>28378 <a href="#Using-objc-defmethod">14.6.2. Using <code class="literal">objc:defmethod</code></a> 17565 28379 </span> 17566 28380 </dt> 17567 28381 <dt> 17568 28382 <span class="sect2"> 17569 <a href="#Method-Redefinition-Constraints">1 3.6.3. Method Redefinition Constraints</a>28383 <a href="#Method-Redefinition-Constraints">14.6.3. Method Redefinition Constraints</a> 17570 28384 </span> 17571 28385 </dt> … … 17574 28388 <dt> 17575 28389 <span class="sect1"> 17576 <a href="#Loading-Objc-Frameworks">1 3.7. Loading Frameworks</a>28390 <a href="#Loading-Objc-Frameworks">14.7. Loading Frameworks</a> 17577 28391 </span> 17578 28392 </dt> 17579 28393 <dt> 17580 28394 <span class="sect1"> 17581 <a href="#How-Objective-C-Names-are-Mapped-to-Lisp-Symbols">1 3.8. How Objective-C Names are Mapped to Lisp Symbols</a>28395 <a href="#How-Objective-C-Names-are-Mapped-to-Lisp-Symbols">14.8. How Objective-C Names are Mapped to Lisp Symbols</a> 17582 28396 </span> 17583 28397 </dt> … … 17605 28419 <div> 17606 28420 <div> 17607 <h2 class="title" style="clear: both"><a id="Objective-C-Changes-1.2"></a>1 3.1. Changes in 1.2</h2>28421 <h2 class="title" style="clear: both"><a id="Objective-C-Changes-1.2"></a>14.1. Changes in 1.2</h2> 17608 28422 </div> 17609 28423 </div> … … 17616 28430 with the Objective-C bridge. For a full description of these 17617 28431 reader-macros, see 17618 the <a class="link" href="#Foreign-Function-Interface-Dictionary" title="1 2.12. The Foreign-Function-Interface Dictionary">Foreign-Function-Interface28432 the <a class="link" href="#Foreign-Function-Interface-Dictionary" title="13.12. The Foreign-Function-Interface Dictionary">Foreign-Function-Interface 17619 28433 Dictionary</a>, especially the entries at the beginning, 17620 28434 describing reader macros.</p> … … 17659 28473 <div> 17660 28474 <div> 17661 <h2 class="title" style="clear: both"><a id="Using-Objective-C-Classes"></a>1 3.2. Using Objective-C Classes</h2>28475 <h2 class="title" style="clear: both"><a id="Using-Objective-C-Classes"></a>14.2. Using Objective-C Classes</h2> 17662 28476 </div> 17663 28477 </div> … … 17714 28528 <div> 17715 28529 <div> 17716 <h2 class="title" style="clear: both"><a id="Instantiating-Objective-C-Objects"></a>1 3.3. Instantiating Objective-C Objects</h2>28530 <h2 class="title" style="clear: both"><a id="Instantiating-Objective-C-Objects"></a>14.3. Instantiating Objective-C Objects</h2> 17717 28531 </div> 17718 28532 </div> … … 17792 28606 <div> 17793 28607 <div> 17794 <h2 class="title" style="clear: both"><a id="Calling-Objective-C-Methods"></a>1 3.4. Calling Objective-C Methods</h2>28608 <h2 class="title" style="clear: both"><a id="Calling-Objective-C-Methods"></a>14.4. Calling Objective-C Methods</h2> 17795 28609 </div> 17796 28610 </div> … … 17836 28650 <div> 17837 28651 <div> 17838 <h3 class="title"><a id="Type-Coercion-for-ObjC-Method-Calls"></a>1 3.4.1. Type Coercion for Objective-C Method Calls</h3>28652 <h3 class="title"><a id="Type-Coercion-for-ObjC-Method-Calls"></a>14.4.1. Type Coercion for Objective-C Method Calls</h3> 17839 28653 </div> 17840 28654 </div> … … 17854 28668 <div> 17855 28669 <div> 17856 <h3 class="title"><a id="Methods-which-Return-Structures"></a>1 3.4.2. Methods which Return Structures</h3>28670 <h3 class="title"><a id="Methods-which-Return-Structures"></a>14.4.2. Methods which Return Structures</h3> 17857 28671 </div> 17858 28672 </div> … … 17941 28755 <div> 17942 28756 <div> 17943 <h3 class="title"><a id="Variable-Arity-Messages"></a>1 3.4.3. Variable-Arity Messages</h3>28757 <h3 class="title"><a id="Variable-Arity-Messages"></a>14.4.3. Variable-Arity Messages</h3> 17944 28758 </div> 17945 28759 </div> … … 17975 28789 <div> 17976 28790 <div> 17977 <h3 class="title"><a id="Optimization"></a>1 3.4.4. Optimization</h3>28791 <h3 class="title"><a id="Optimization"></a>14.4.4. Optimization</h3> 17978 28792 </div> 17979 28793 </div> … … 18044 28858 <div> 18045 28859 <div> 18046 <h2 class="title" style="clear: both"><a id="Defining-Objective-C-Classes"></a>1 3.5. Defining Objective-C Classes</h2>28860 <h2 class="title" style="clear: both"><a id="Defining-Objective-C-Classes"></a>14.5. Defining Objective-C Classes</h2> 18047 28861 </div> 18048 28862 </div> … … 18082 28896 <div> 18083 28897 <div> 18084 <h3 class="title"><a id="Defining-classes-with-foreign-slots"></a>1 3.5.1. Defining classes with foreign slots</h3>28898 <h3 class="title"><a id="Defining-classes-with-foreign-slots"></a>14.5.1. Defining classes with foreign slots</h3> 18085 28899 </div> 18086 28900 </div> … … 18113 28927 <div> 18114 28928 <div> 18115 <h3 class="title"><a id="Defining-classes-with-Lisp-slots"></a>1 3.5.2. Defining classes with Lisp slots</h3>28929 <h3 class="title"><a id="Defining-classes-with-Lisp-slots"></a>14.5.2. Defining classes with Lisp slots</h3> 18116 28930 </div> 18117 28931 </div> … … 18145 28959 <div> 18146 28960 <div> 18147 <h2 class="title" style="clear: both"><a id="Defining-Objective-C-Methods"></a>1 3.6. Defining Objective-C Methods</h2>28961 <h2 class="title" style="clear: both"><a id="Defining-Objective-C-Methods"></a>14.6. Defining Objective-C Methods</h2> 18148 28962 </div> 18149 28963 </div> … … 18167 28981 <div> 18168 28982 <div> 18169 <h3 class="title"><a id="Using-define-objc-method"></a>1 3.6.1. Using <code class="literal">define-objc-method</code></h3>28983 <h3 class="title"><a id="Using-define-objc-method"></a>14.6.1. Using <code class="literal">define-objc-method</code></h3> 18170 28984 </div> 18171 28985 </div> 18172 28986 </div> 18173 28987 <p xmlns="http://www.w3.org/1999/xhtml">As described in the 18174 section <a class="link" href="#Calling-Objective-C-Methods" title="1 3.4. Calling Objective-C Methods">Calling28988 section <a class="link" href="#Calling-Objective-C-Methods" title="14.4. Calling Objective-C Methods">Calling 18175 28989 Objective-C Methods</a>, the names of Objective-C methods 18176 28990 are broken into pieces, each piece followed by a parameter. … … 18284 29098 <div> 18285 29099 <div> 18286 <h3 class="title"><a id="Using-objc-defmethod"></a>1 3.6.2. Using <code class="literal">objc:defmethod</code></h3>29100 <h3 class="title"><a id="Using-objc-defmethod"></a>14.6.2. Using <code class="literal">objc:defmethod</code></h3> 18287 29101 </div> 18288 29102 </div> … … 18382 29196 <div> 18383 29197 <div> 18384 <h3 class="title"><a id="Method-Redefinition-Constraints"></a>1 3.6.3. Method Redefinition Constraints</h3>29198 <h3 class="title"><a id="Method-Redefinition-Constraints"></a>14.6.3. Method Redefinition Constraints</h3> 18385 29199 </div> 18386 29200 </div> … … 18408 29222 <div> 18409 29223 <div> 18410 <h2 class="title" style="clear: both"><a id="Loading-Objc-Frameworks"></a>1 3.7. Loading Frameworks</h2>29224 <h2 class="title" style="clear: both"><a id="Loading-Objc-Frameworks"></a>14.7. Loading Frameworks</h2> 18411 29225 </div> 18412 29226 </div> … … 18440 29254 to use, you will need to create them. For more information about 18441 29255 creating interface databases, 18442 see <a class="link" href="#Creating-new-interface-directories" title="1 2.5.2. Creating new interface directories">Creating29256 see <a class="link" href="#Creating-new-interface-directories" title="13.5.2. Creating new interface directories">Creating 18443 29257 new interface directories</a>.</p> 18444 29258 </div> … … 18447 29261 <div> 18448 29262 <div> 18449 <h2 class="title" style="clear: both"><a id="How-Objective-C-Names-are-Mapped-to-Lisp-Symbols"></a>1 3.8. How Objective-C Names are Mapped to Lisp Symbols</h2>29263 <h2 class="title" style="clear: both"><a id="How-Objective-C-Names-are-Mapped-to-Lisp-Symbols"></a>14.8. How Objective-C Names are Mapped to Lisp Symbols</h2> 18450 29264 </div> 18451 29265 </div> … … 18529 29343 <div> 18530 29344 <div> 18531 <h2 class="title"><a id="Platform-specific-notes"></a>Chapter 1 4. Platform-specific notes</h2>29345 <h2 class="title"><a id="Platform-specific-notes"></a>Chapter 15. Platform-specific notes</h2> 18532 29346 </div> 18533 29347 </div> … … 18537 29351 <dt> 18538 29352 <span class="sect1"> 18539 <a href="#Platform-specific-overview">1 4.1. Overview</a>29353 <a href="#Platform-specific-overview">15.1. Overview</a> 18540 29354 </span> 18541 29355 </dt> … … 18544 29358 <dt> 18545 29359 <span class="sect2"> 18546 <a href="#differences-between-32-bit-and-64-bit-implementations">1 4.1.1. Differences Between 32-bit and 64-bit implementations</a>29360 <a href="#differences-between-32-bit-and-64-bit-implementations">15.1.1. Differences Between 32-bit and 64-bit implementations</a> 18547 29361 </span> 18548 29362 </dt> 18549 29363 <dt> 18550 29364 <span class="sect2"> 18551 <a href="#File-system-case">1 4.1.2. File-system case</a>29365 <a href="#File-system-case">15.1.2. File-system case</a> 18552 29366 </span> 18553 29367 </dt> 18554 29368 <dt> 18555 29369 <span class="sect2"> 18556 <a href="#Line-Termination-Characters">1 4.1.3. Line Termination Characters</a>29370 <a href="#Line-Termination-Characters">15.1.3. Line Termination Characters</a> 18557 29371 </span> 18558 29372 </dt> 18559 29373 <dt> 18560 29374 <span class="sect2"> 18561 <a href="#Single-precision-trig---transcendental-functions">1 4.1.4. Single-precision trig & transcendental functions</a>29375 <a href="#Single-precision-trig---transcendental-functions">15.1.4. Single-precision trig & transcendental functions</a> 18562 29376 </span> 18563 29377 </dt> 18564 29378 <dt> 18565 29379 <span class="sect2"> 18566 <a href="#Shared-libraries">1 4.1.5. Shared libraries</a>29380 <a href="#Shared-libraries">15.1.5. Shared libraries</a> 18567 29381 </span> 18568 29382 </dt> … … 18571 29385 <dt> 18572 29386 <span class="sect1"> 18573 <a href="#Unix-Posix-Darwin-Features">1 4.2. Unix/Posix/Darwin Features</a>29387 <a href="#Unix-Posix-Darwin-Features">15.2. Unix/Posix/Darwin Features</a> 18574 29388 </span> 18575 29389 </dt> 18576 29390 <dt> 18577 29391 <span class="sect1"> 18578 <a href="#Cocoa-Programming-in-CCL">1 4.3. Cocoa Programming in Clozure CL</a>29392 <a href="#Cocoa-Programming-in-CCL">15.3. Cocoa Programming in Clozure CL</a> 18579 29393 </span> 18580 29394 </dt> … … 18583 29397 <dt> 18584 29398 <span class="sect2"> 18585 <a href="#The-Command-Line-and-the-Window-System">1 4.3.1. The Command Line and the Window System</a>29399 <a href="#The-Command-Line-and-the-Window-System">15.3.1. The Command Line and the Window System</a> 18586 29400 </span> 18587 29401 </dt> 18588 29402 <dt> 18589 29403 <span class="sect2"> 18590 <a href="#Writing--and-reading--Cocoa-code">1 4.3.2. Writing (and reading) Cocoa code</a>29404 <a href="#Writing--and-reading--Cocoa-code">15.3.2. Writing (and reading) Cocoa code</a> 18591 29405 </span> 18592 29406 </dt> 18593 29407 <dt> 18594 29408 <span class="sect2"> 18595 <a href="#The-Application-Kit-and-Multiple-Threads">1 4.3.3. The Application Kit and Multiple Threads</a>29409 <a href="#The-Application-Kit-and-Multiple-Threads">15.3.3. The Application Kit and Multiple Threads</a> 18596 29410 </span> 18597 29411 </dt> 18598 29412 <dt> 18599 29413 <span class="sect2"> 18600 <a href="#Acknowledgement--2-">1 4.3.4. Acknowledgement</a>29414 <a href="#Acknowledgement--2-">15.3.4. Acknowledgement</a> 18601 29415 </span> 18602 29416 </dt> … … 18605 29419 <dt> 18606 29420 <span class="sect1"> 18607 <a href="#Building-an-Application-Bundle">1 4.4. Building an Application Bundle</a>29421 <a href="#Building-an-Application-Bundle">15.4. Building an Application Bundle</a> 18608 29422 </span> 18609 29423 </dt> 18610 29424 <dt> 18611 29425 <span class="sect1"> 18612 <a href="#Recommended-Reading">1 4.5. Recommended Reading</a>29426 <a href="#Recommended-Reading">15.5. Recommended Reading</a> 18613 29427 </span> 18614 29428 </dt> 18615 29429 <dt> 18616 29430 <span class="sect1"> 18617 <a href="#Operating-System-Dictionary">1 4.6. Operating-System Dictionary</a>29431 <a href="#Operating-System-Dictionary">15.6. Operating-System Dictionary</a> 18618 29432 </span> 18619 29433 </dt> … … 18624 29438 <div> 18625 29439 <div> 18626 <h2 class="title" style="clear: both"><a id="Platform-specific-overview"></a>1 4.1. Overview</h2>29440 <h2 class="title" style="clear: both"><a id="Platform-specific-overview"></a>15.1. Overview</h2> 18627 29441 </div> 18628 29442 </div> … … 18637 29451 <div> 18638 29452 <div> 18639 <h3 class="title"><a id="differences-between-32-bit-and-64-bit-implementations"></a>1 4.1.1. Differences Between 32-bit and 64-bit implementations</h3>29453 <h3 class="title"><a id="differences-between-32-bit-and-64-bit-implementations"></a>15.1.1. Differences Between 32-bit and 64-bit implementations</h3> 18640 29454 </div> 18641 29455 </div> … … 18644 29458 range -536870912 through 536870911. Fixnums on 64-bit 18645 29459 systems are 61 bits long, and are in the range 18646 -1152921504606846976 through 1152921504606846975. (see <a class="xref" href="#Tagging-scheme" title="1 6.2.4. Tagging scheme">Section 16.2.4, âTagging schemeâ</a>)</p>29460 -1152921504606846976 through 1152921504606846975. (see <a class="xref" href="#Tagging-scheme" title="17.2.4. Tagging scheme">Section 17.2.4, âTagging schemeâ</a>)</p> 18647 29461 <p xmlns="http://www.w3.org/1999/xhtml">Since we have much larger fixnums on 64-bit systems, 18648 29462 <em class="varname">INTERNAL-TIME-UNITS-PER-SECOND</em> is 1000000 … … 18654 29468 <div> 18655 29469 <div> 18656 <h3 class="title"><a id="File-system-case"></a>1 4.1.2. File-system case</h3>29470 <h3 class="title"><a id="File-system-case"></a>15.1.2. File-system case</h3> 18657 29471 </div> 18658 29472 </div> … … 18687 29501 <div> 18688 29502 <div> 18689 <h3 class="title"><a id="Line-Termination-Characters"></a>1 4.1.3. Line Termination Characters</h3>29503 <h3 class="title"><a id="Line-Termination-Characters"></a>15.1.3. Line Termination Characters</h3> 18690 29504 </div> 18691 29505 </div> … … 18734 29548 <div> 18735 29549 <div> 18736 <h3 class="title"><a id="Single-precision-trig---transcendental-functions"></a>1 4.1.4. Single-precision trig & transcendental functions</h3>29550 <h3 class="title"><a id="Single-precision-trig---transcendental-functions"></a>15.1.4. Single-precision trig & transcendental functions</h3> 18737 29551 </div> 18738 29552 </div> … … 18753 29567 <div> 18754 29568 <div> 18755 <h3 class="title"><a id="Shared-libraries"></a>1 4.1.5. Shared libraries</h3>29569 <h3 class="title"><a id="Shared-libraries"></a>15.1.5. Shared libraries</h3> 18756 29570 </div> 18757 29571 </div> … … 18772 29586 <div> 18773 29587 <div> 18774 <h2 class="title" style="clear: both"><a id="Unix-Posix-Darwin-Features"></a>1 4.2. Unix/Posix/Darwin Features</h2>29588 <h2 class="title" style="clear: both"><a id="Unix-Posix-Darwin-Features"></a>15.2. Unix/Posix/Darwin Features</h2> 18775 29589 </div> 18776 29590 </div> … … 18792 29606 <p xmlns="http://www.w3.org/1999/xhtml">For the <code class="literal">system()</code> function, there is 18793 29607 CCL::OS-COMMAND. Ordinarily, it is better - both more efficient 18794 and more predictable - to use the features described in <a class="xref" href="#Running-Other-Programs-as-Subprocesses" title="Chapter 8. Running Other Programs as Subprocesses">Chapter 8, <i>Running Other Programs as Subprocesses</i></a>. However,29608 and more predictable - to use the features described in <a class="xref" href="#Running-Other-Programs-as-Subprocesses" title="Chapter 9. Running Other Programs as Subprocesses">Chapter 9, <i>Running Other Programs as Subprocesses</i></a>. However, 18795 29609 sometimes you may want to specifically ask the shell to invoke a 18796 29610 command for you.</p> … … 18800 29614 <div> 18801 29615 <div> 18802 <h2 class="title" style="clear: both"><a id="Cocoa-Programming-in-CCL"></a>1 4.3. Cocoa Programming in Clozure CL</h2>29616 <h2 class="title" style="clear: both"><a id="Cocoa-Programming-in-CCL"></a>15.3. Cocoa Programming in Clozure CL</h2> 18803 29617 </div> 18804 29618 </div> … … 18822 29636 <div> 18823 29637 <div> 18824 <h3 class="title"><a id="The-Command-Line-and-the-Window-System"></a>1 4.3.1. The Command Line and the Window System</h3>29638 <h3 class="title"><a id="The-Command-Line-and-the-Window-System"></a>15.3.1. The Command Line and the Window System</h3> 18825 29639 </div> 18826 29640 </div> … … 18855 29669 <div> 18856 29670 <div> 18857 <h3 class="title"><a id="Writing--and-reading--Cocoa-code"></a>1 4.3.2. Writing (and reading) Cocoa code</h3>29671 <h3 class="title"><a id="Writing--and-reading--Cocoa-code"></a>15.3.2. Writing (and reading) Cocoa code</h3> 18858 29672 </div> 18859 29673 </div> … … 18905 29719 <div> 18906 29720 <div> 18907 <h3 class="title"><a id="The-Application-Kit-and-Multiple-Threads"></a>1 4.3.3. The Application Kit and Multiple Threads</h3>29721 <h3 class="title"><a id="The-Application-Kit-and-Multiple-Threads"></a>15.3.3. The Application Kit and Multiple Threads</h3> 18908 29722 </div> 18909 29723 </div> … … 18976 29790 <div> 18977 29791 <div> 18978 <h3 class="title"><a id="Acknowledgement--2-"></a>1 4.3.4. Acknowledgement</h3>29792 <h3 class="title"><a id="Acknowledgement--2-"></a>15.3.4. Acknowledgement</h3> 18979 29793 </div> 18980 29794 </div> … … 18988 29802 <div> 18989 29803 <div> 18990 <h2 class="title" style="clear: both"><a id="Building-an-Application-Bundle"></a>1 4.4. Building an Application Bundle</h2>29804 <h2 class="title" style="clear: both"><a id="Building-an-Application-Bundle"></a>15.4. Building an Application Bundle</h2> 18991 29805 </div> 18992 29806 </div> … … 19030 29844 <div> 19031 29845 <div> 19032 <h2 class="title" style="clear: both"><a id="Recommended-Reading"></a>1 4.5. Recommended Reading</h2>29846 <h2 class="title" style="clear: both"><a id="Recommended-Reading"></a>15.5. Recommended Reading</h2> 19033 29847 </div> 19034 29848 </div> … … 19091 29905 <div> 19092 29906 <div> 19093 <h2 class="title" style="clear: both"><a id="Operating-System-Dictionary"></a>1 4.6. Operating-System Dictionary</h2>29907 <h2 class="title" style="clear: both"><a id="Operating-System-Dictionary"></a>15.6. Operating-System Dictionary</h2> 19094 29908 </div> 19095 29909 </div> … … 19107 29921 <div> 19108 29922 <div class="refsect1" lang="en" xml:lang="en"> 19109 <a xmlns="http://www.w3.org/1999/xhtml" id="id 530643"></a>29923 <a xmlns="http://www.w3.org/1999/xhtml" id="id681727"></a> 19110 29924 <div class="header">Arguments and Values:</div> 19111 29925 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">name</span></i>---a string which is the name of an existing … … 19117 29931 </div> 19118 29932 <div class="refsect1" lang="en" xml:lang="en"> 19119 <a xmlns="http://www.w3.org/1999/xhtml" id="id 530688"></a>29933 <a xmlns="http://www.w3.org/1999/xhtml" id="id681772"></a> 19120 29934 <div class="header">Description:</div> 19121 29935 <p xmlns="http://www.w3.org/1999/xhtml"> … … 19138 29952 <div> 19139 29953 <div class="refsect1" lang="en" xml:lang="en"> 19140 <a xmlns="http://www.w3.org/1999/xhtml" id="id 530749"></a>29954 <a xmlns="http://www.w3.org/1999/xhtml" id="id681833"></a> 19141 29955 <div class="header">Arguments and Values:</div> 19142 29956 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">name</span></i>---a string which is the name of a new or existing … … 19151 29965 </div> 19152 29966 <div class="refsect1" lang="en" xml:lang="en"> 19153 <a xmlns="http://www.w3.org/1999/xhtml" id="id 530809"></a>29967 <a xmlns="http://www.w3.org/1999/xhtml" id="id681893"></a> 19154 29968 <div class="header">Description:</div> 19155 29969 <p xmlns="http://www.w3.org/1999/xhtml"> … … 19175 29989 <div> 19176 29990 <div class="refsect1" lang="en" xml:lang="en"> 19177 <a xmlns="http://www.w3.org/1999/xhtml" id="id 530872"></a>29991 <a xmlns="http://www.w3.org/1999/xhtml" id="id681956"></a> 19178 29992 <div class="header">Values:</div> 19179 29993 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">path</span></i>---a string, an absolute pathname in Posix format - with … … 19181 29995 </div> 19182 29996 <div class="refsect1" lang="en" xml:lang="en"> 19183 <a xmlns="http://www.w3.org/1999/xhtml" id="id 530898"></a>29997 <a xmlns="http://www.w3.org/1999/xhtml" id="id681982"></a> 19184 29998 <div class="header">Description:</div> 19185 29999 <p xmlns="http://www.w3.org/1999/xhtml"> … … 19203 30017 <div> 19204 30018 <div class="refsect1" lang="en" xml:lang="en"> 19205 <a xmlns="http://www.w3.org/1999/xhtml" id="id 530957"></a>30019 <a xmlns="http://www.w3.org/1999/xhtml" id="id682041"></a> 19206 30020 <div class="header">Values:</div> 19207 30021 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">uid</span></i>---a non-negative integer, identifying a specific user … … 19209 30023 </div> 19210 30024 <div class="refsect1" lang="en" xml:lang="en"> 19211 <a xmlns="http://www.w3.org/1999/xhtml" id="id 530984"></a>30025 <a xmlns="http://www.w3.org/1999/xhtml" id="id682068"></a> 19212 30026 <div class="header">Description:</div> 19213 30027 <p xmlns="http://www.w3.org/1999/xhtml"> … … 19229 30043 <div> 19230 30044 <div class="refsect1" lang="en" xml:lang="en"> 19231 <a xmlns="http://www.w3.org/1999/xhtml" id="id 531041"></a>30045 <a xmlns="http://www.w3.org/1999/xhtml" id="id657101"></a> 19232 30046 <div class="header">Arguments and Values:</div> 19233 30047 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">uid</span></i>---a non-negative integer, identifying a specific user … … 19238 30052 </div> 19239 30053 <div class="refsect1" lang="en" xml:lang="en"> 19240 <a xmlns="http://www.w3.org/1999/xhtml" id="id 531084"></a>30054 <a xmlns="http://www.w3.org/1999/xhtml" id="id657144"></a> 19241 30055 <div class="header">Description:</div> 19242 30056 <p xmlns="http://www.w3.org/1999/xhtml"> … … 19261 30075 <div> 19262 30076 <div class="refsect1" lang="en" xml:lang="en"> 19263 <a xmlns="http://www.w3.org/1999/xhtml" id="id 531143"></a>30077 <a xmlns="http://www.w3.org/1999/xhtml" id="id657203"></a> 19264 30078 <div class="header">Arguments and Values:</div> 19265 30079 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">gid</span></i>---a non-negative integer, identifying a specific … … 19270 30084 </div> 19271 30085 <div class="refsect1" lang="en" xml:lang="en"> 19272 <a xmlns="http://www.w3.org/1999/xhtml" id="id 531186"></a>30086 <a xmlns="http://www.w3.org/1999/xhtml" id="id657245"></a> 19273 30087 <div class="header">Description:</div> 19274 30088 <p xmlns="http://www.w3.org/1999/xhtml"> … … 19293 30107 <div> 19294 30108 <div class="refsect1" lang="en" xml:lang="en"> 19295 <a xmlns="http://www.w3.org/1999/xhtml" id="id 531246"></a>30109 <a xmlns="http://www.w3.org/1999/xhtml" id="id657305"></a> 19296 30110 <div class="header">Values:</div> 19297 30111 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">pid</span></i>---a non-negative integer, identifying an OS process</p> 19298 30112 </div> 19299 30113 <div class="refsect1" lang="en" xml:lang="en"> 19300 <a xmlns="http://www.w3.org/1999/xhtml" id="id 531271"></a>30114 <a xmlns="http://www.w3.org/1999/xhtml" id="id657331"></a> 19301 30115 <div class="header">Description:</div> 19302 30116 <p xmlns="http://www.w3.org/1999/xhtml"> … … 19319 30133 <div> 19320 30134 <div class="refsect1" lang="en" xml:lang="en"> 19321 <a xmlns="http://www.w3.org/1999/xhtml" id="id 531329"></a>30135 <a xmlns="http://www.w3.org/1999/xhtml" id="id657388"></a> 19322 30136 <div class="header">Values:</div> 19323 30137 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">uid</span></i>---a non-negative integer, identifying a specific user … … 19327 30141 </div> 19328 30142 <div class="refsect1" lang="en" xml:lang="en"> 19329 <a xmlns="http://www.w3.org/1999/xhtml" id="id 531371"></a>30143 <a xmlns="http://www.w3.org/1999/xhtml" id="id657430"></a> 19330 30144 <div class="header">Description:</div> 19331 30145 <p xmlns="http://www.w3.org/1999/xhtml"> … … 19352 30166 <div> 19353 30167 <div class="refsect1" lang="en" xml:lang="en"> 19354 <a xmlns="http://www.w3.org/1999/xhtml" id="id 531440"></a>30168 <a xmlns="http://www.w3.org/1999/xhtml" id="id657499"></a> 19355 30169 <div class="header">Values:</div> 19356 30170 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">command-line</span></i>---a string, obeying all the whitespace and … … 19361 30175 </div> 19362 30176 <div class="refsect1" lang="en" xml:lang="en"> 19363 <a xmlns="http://www.w3.org/1999/xhtml" id="id 531483"></a>30177 <a xmlns="http://www.w3.org/1999/xhtml" id="id657542"></a> 19364 30178 <div class="header">Description:</div> 19365 30179 <p xmlns="http://www.w3.org/1999/xhtml"> … … 19377 30191 </div> 19378 30192 <div class="refsect1" lang="en" xml:lang="en"> 19379 <a xmlns="http://www.w3.org/1999/xhtml" id="id 531516"></a>30193 <a xmlns="http://www.w3.org/1999/xhtml" id="id657576"></a> 19380 30194 <div class="header">Notes:</div> 19381 30195 <p xmlns="http://www.w3.org/1999/xhtml"> … … 19402 30216 <div> 19403 30217 <div class="refsect1" lang="en" xml:lang="en"> 19404 <a xmlns="http://www.w3.org/1999/xhtml" id="id 531577"></a>30218 <a xmlns="http://www.w3.org/1999/xhtml" id="id657636"></a> 19405 30219 <div class="header">Arguments and Values:</div> 19406 30220 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">class-name</span></i>---a string which denotes an existing class name, or a … … 19409 30223 </div> 19410 30224 <div class="refsect1" lang="en" xml:lang="en"> 19411 <a xmlns="http://www.w3.org/1999/xhtml" id="id 531604"></a>30225 <a xmlns="http://www.w3.org/1999/xhtml" id="id658251"></a> 19412 30226 <div class="header">Description:</div> 19413 30227 <p xmlns="http://www.w3.org/1999/xhtml">Used to refer to a known ObjC class by name. (Via the use … … 19434 30248 <div> 19435 30249 <div class="refsect1" lang="en" xml:lang="en"> 19436 <a xmlns="http://www.w3.org/1999/xhtml" id="id 531674"></a>30250 <a xmlns="http://www.w3.org/1999/xhtml" id="id658320"></a> 19437 30251 <div class="header">Arguments and Values:</div> 19438 30252 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">string</span></i>---a string constant, used to canonically refer to an … … 19440 30254 </div> 19441 30255 <div class="refsect1" lang="en" xml:lang="en"> 19442 <a xmlns="http://www.w3.org/1999/xhtml" id="id 531700"></a>30256 <a xmlns="http://www.w3.org/1999/xhtml" id="id658346"></a> 19443 30257 <div class="header">Description:</div> 19444 30258 <p xmlns="http://www.w3.org/1999/xhtml">Used to refer to an ObjC method selector (method name). Uses … … 19462 30276 <div> 19463 30277 <div class="refsect1" lang="en" xml:lang="en"> 19464 <a xmlns="http://www.w3.org/1999/xhtml" id="id 531765"></a>30278 <a xmlns="http://www.w3.org/1999/xhtml" id="id658412"></a> 19465 30279 <div class="header">Arguments and Values:</div> 19466 30280 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">name-and-result-type</span></i>---either an Objective-C message name, for methods … … 19484 30298 </div> 19485 30299 <div class="refsect1" lang="en" xml:lang="en"> 19486 <a xmlns="http://www.w3.org/1999/xhtml" id="id 531846"></a>30300 <a xmlns="http://www.w3.org/1999/xhtml" id="id658493"></a> 19487 30301 <div class="header">Description:</div> 19488 30302 <p xmlns="http://www.w3.org/1999/xhtml">Defines an Objective-C-callable method which implements … … 19492 30306 restrictions of the <code class="literal">OBJC:DEFMETHOD</code> macro, 19493 30307 see the 19494 section <a class="link" href="#Using-objc-defmethod" title="1 3.6.2. Using objc:defmethod">Using <code class="literal">objc:defmethod</code></a>.</p>30308 section <a class="link" href="#Using-objc-defmethod" title="14.6.2. Using objc:defmethod">Using <code class="literal">objc:defmethod</code></a>.</p> 19495 30309 </div> 19496 30310 </div> … … 19509 30323 <div> 19510 30324 <div class="refsect1" lang="en" xml:lang="en"> 19511 <a xmlns="http://www.w3.org/1999/xhtml" id="id 531929"></a>30325 <a xmlns="http://www.w3.org/1999/xhtml" id="id658575"></a> 19512 30326 <div class="header">Arguments and Values:</div> 19513 30327 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">selector</span></i>---either a string which represents the name of the … … 19524 30338 </div> 19525 30339 <div class="refsect1" lang="en" xml:lang="en"> 19526 <a xmlns="http://www.w3.org/1999/xhtml" id="id 531975"></a>30340 <a xmlns="http://www.w3.org/1999/xhtml" id="id658622"></a> 19527 30341 <div class="header">Description:</div> 19528 30342 <p xmlns="http://www.w3.org/1999/xhtml">Defines an ObjC-callable method which implements the … … 19545 30359 <div> 19546 30360 <div class="refsect1" lang="en" xml:lang="en"> 19547 <a xmlns="http://www.w3.org/1999/xhtml" id="id 532038"></a>30361 <a xmlns="http://www.w3.org/1999/xhtml" id="id658685"></a> 19548 30362 <div class="header">Arguments and Values:</div> 19549 30363 <p xmlns="http://www.w3.org/1999/xhtml">As per DEFINE-OBJC-METHOD</p> 19550 30364 </div> 19551 30365 <div class="refsect1" lang="en" xml:lang="en"> 19552 <a xmlns="http://www.w3.org/1999/xhtml" id="id 532049"></a>30366 <a xmlns="http://www.w3.org/1999/xhtml" id="id658696"></a> 19553 30367 <div class="header">Description:</div> 19554 30368 <p xmlns="http://www.w3.org/1999/xhtml">Like DEFINE-OBJC-METHOD, only used to define methods on the … … 19592 30406 <div> 19593 30407 <div class="refsect1" lang="en" xml:lang="en"> 19594 <a xmlns="http://www.w3.org/1999/xhtml" id="id 532126"></a>30408 <a xmlns="http://www.w3.org/1999/xhtml" id="id658773"></a> 19595 30409 <div class="header">Description:</div> 19596 30410 <p xmlns="http://www.w3.org/1999/xhtml">This variable is currently only used by the standard reader macro … … 19627 30441 <div> 19628 30442 <div class="refsect1" lang="en" xml:lang="en"> 19629 <a xmlns="http://www.w3.org/1999/xhtml" id="id 532183"></a>30443 <a xmlns="http://www.w3.org/1999/xhtml" id="id658830"></a> 19630 30444 <div class="header">Superclasses:</div> 19631 30445 <p xmlns="http://www.w3.org/1999/xhtml">NS:NS-STRING</p> 19632 30446 </div> 19633 30447 <div class="refsect1" lang="en" xml:lang="en"> 19634 <a xmlns="http://www.w3.org/1999/xhtml" id="id 532194"></a>30448 <a xmlns="http://www.w3.org/1999/xhtml" id="id658841"></a> 19635 30449 <div class="header">Initargs:</div> 19636 30450 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">:string</span></i>--- … … 19640 30454 </div> 19641 30455 <div class="refsect1" lang="en" xml:lang="en"> 19642 <a xmlns="http://www.w3.org/1999/xhtml" id="id 532221"></a>30456 <a xmlns="http://www.w3.org/1999/xhtml" id="id658868"></a> 19643 30457 <div class="header">Description:</div> 19644 30458 <p xmlns="http://www.w3.org/1999/xhtml"> … … 19658 30472 </div> 19659 30473 <div class="refsect1" lang="en" xml:lang="en"> 19660 <a xmlns="http://www.w3.org/1999/xhtml" id="id 532241"></a>30474 <a xmlns="http://www.w3.org/1999/xhtml" id="id680332"></a> 19661 30475 <div class="header">Examples:</div> 19662 30476 <p xmlns="http://www.w3.org/1999/xhtml"> … … 19689 30503 </div> 19690 30504 <div class="refsect1" lang="en" xml:lang="en"> 19691 <a xmlns="http://www.w3.org/1999/xhtml" id="id 521524"></a>30505 <a xmlns="http://www.w3.org/1999/xhtml" id="id680385"></a> 19692 30506 <div class="header">Notes:</div> 19693 30507 <p xmlns="http://www.w3.org/1999/xhtml"> … … 19707 30521 <div> 19708 30522 <div> 19709 <h2 class="title"><a id="Understanding-and-Configuring-the-Garbage-Collector"></a>Chapter 1 5. Understanding and Configuring the Garbage Collector</h2>30523 <h2 class="title"><a id="Understanding-and-Configuring-the-Garbage-Collector"></a>Chapter 16. Understanding and Configuring the Garbage Collector</h2> 19710 30524 </div> 19711 30525 </div> … … 19715 30529 <dt> 19716 30530 <span class="sect1"> 19717 <a href="#Heap-space-allocation">1 5.1. Heap space allocation</a>30531 <a href="#Heap-space-allocation">16.1. Heap space allocation</a> 19718 30532 </span> 19719 30533 </dt> 19720 30534 <dt> 19721 30535 <span class="sect1"> 19722 <a href="#The-Ephemeral-GC">1 5.2. The Ephemeral GC</a>30536 <a href="#The-Ephemeral-GC">16.2. The Ephemeral GC</a> 19723 30537 </span> 19724 30538 </dt> 19725 30539 <dt> 19726 30540 <span class="sect1"> 19727 <a href="#GC-Page-reclamation-policy">1 5.3. GC Page reclamation policy</a>30541 <a href="#GC-Page-reclamation-policy">16.3. GC Page reclamation policy</a> 19728 30542 </span> 19729 30543 </dt> 19730 30544 <dt> 19731 30545 <span class="sect1"> 19732 <a href="#iPure--areas-are-read-only--paged-from-image-file">1 5.4. "Pure" areas are read-only, paged from image file</a>30546 <a href="#iPure--areas-are-read-only--paged-from-image-file">16.4. "Pure" areas are read-only, paged from image file</a> 19733 30547 </span> 19734 30548 </dt> 19735 30549 <dt> 19736 30550 <span class="sect1"> 19737 <a href="#Weak-References">1 5.5. Weak References</a>30551 <a href="#Weak-References">16.5. Weak References</a> 19738 30552 </span> 19739 30553 </dt> 19740 30554 <dt> 19741 30555 <span class="sect1"> 19742 <a href="#Weak-References-Dictionary">1 5.6. Weak References Dictionary</a>30556 <a href="#Weak-References-Dictionary">16.6. Weak References Dictionary</a> 19743 30557 </span> 19744 30558 </dt> 19745 30559 <dt> 19746 30560 <span class="sect1"> 19747 <a href="#Garbage-Collection-Dictionary">1 5.7. Garbage-Collection Dictionary</a>30561 <a href="#Garbage-Collection-Dictionary">16.7. Garbage-Collection Dictionary</a> 19748 30562 </span> 19749 30563 </dt> … … 19754 30568 <div> 19755 30569 <div> 19756 <h2 class="title" style="clear: both"><a id="Heap-space-allocation"></a>1 5.1. Heap space allocation</h2>30570 <h2 class="title" style="clear: both"><a id="Heap-space-allocation"></a>16.1. Heap space allocation</h2> 19757 30571 </div> 19758 30572 </div> … … 19801 30615 <div> 19802 30616 <div> 19803 <h2 class="title" style="clear: both"><a id="The-Ephemeral-GC"></a>1 5.2. The Ephemeral GC</h2>30617 <h2 class="title" style="clear: both"><a id="The-Ephemeral-GC"></a>16.2. The Ephemeral GC</h2> 19804 30618 </div> 19805 30619 </div> … … 19886 30700 <div> 19887 30701 <div> 19888 <h2 class="title" style="clear: both"><a id="GC-Page-reclamation-policy"></a>1 5.3. GC Page reclamation policy</h2>30702 <h2 class="title" style="clear: both"><a id="GC-Page-reclamation-policy"></a>16.3. GC Page reclamation policy</h2> 19889 30703 </div> 19890 30704 </div> … … 19925 30739 <div> 19926 30740 <div> 19927 <h2 class="title" style="clear: both"><a id="iPure--areas-are-read-only--paged-from-image-file"></a>1 5.4. "Pure" areas are read-only, paged from image file</h2>30741 <h2 class="title" style="clear: both"><a id="iPure--areas-are-read-only--paged-from-image-file"></a>16.4. "Pure" areas are read-only, paged from image file</h2> 19928 30742 </div> 19929 30743 </div> … … 19959 30773 <div> 19960 30774 <div> 19961 <h2 class="title" style="clear: both"><a id="Weak-References"></a>1 5.5. Weak References</h2>30775 <h2 class="title" style="clear: both"><a id="Weak-References"></a>16.5. Weak References</h2> 19962 30776 </div> 19963 30777 </div> … … 20013 30827 <div> 20014 30828 <div> 20015 <h2 class="title" style="clear: both"><a id="Weak-References-Dictionary"></a>1 5.6. Weak References Dictionary</h2>30829 <h2 class="title" style="clear: both"><a id="Weak-References-Dictionary"></a>16.6. Weak References Dictionary</h2> 20016 30830 </div> 20017 30831 </div> … … 20029 30843 <div> 20030 30844 <div class="refsect1" lang="en" xml:lang="en"> 20031 <a xmlns="http://www.w3.org/1999/xhtml" id="id 517823"></a>30845 <a xmlns="http://www.w3.org/1999/xhtml" id="id655360"></a> 20032 30846 <div class="header">Arguments and Values:</div> 20033 30847 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">type</span></i>---The type of population, one of <code xmlns="http://www.w3.org/1999/xhtml" class="literal">:LIST</code> (the default) or <code xmlns="http://www.w3.org/1999/xhtml" class="literal">:ALIST</code></p> … … 20037 30851 </div> 20038 30852 <div class="refsect1" lang="en" xml:lang="en"> 20039 <a xmlns="http://www.w3.org/1999/xhtml" id="id 517881"></a>30853 <a xmlns="http://www.w3.org/1999/xhtml" id="id655418"></a> 20040 30854 <div class="header">Description:</div> 20041 30855 <p xmlns="http://www.w3.org/1999/xhtml">Creates a new population of the specified type.</p> … … 20055 30869 <div> 20056 30870 <div class="refsect1" lang="en" xml:lang="en"> 20057 <a xmlns="http://www.w3.org/1999/xhtml" id="id 517938"></a>30871 <a xmlns="http://www.w3.org/1999/xhtml" id="id655476"></a> 20058 30872 <div class="header">Description:</div> 20059 30873 <p xmlns="http://www.w3.org/1999/xhtml">returns the type of <code class="literal">population</code>, one of <code class="literal">:LIST</code> or <code class="literal">:ALIST</code></p> … … 20073 30887 <div> 20074 30888 <div class="refsect1" lang="en" xml:lang="en"> 20075 <a xmlns="http://www.w3.org/1999/xhtml" id="id 518012"></a>30889 <a xmlns="http://www.w3.org/1999/xhtml" id="id655550"></a> 20076 30890 <div class="header">Description:</div> 20077 30891 <p xmlns="http://www.w3.org/1999/xhtml">returns the list encapsulated in <code class="literal">population</code>. … … 20096 30910 <div> 20097 30911 <div class="refsect1" lang="en" xml:lang="en"> 20098 <a xmlns="http://www.w3.org/1999/xhtml" id="id 518081"></a>30912 <a xmlns="http://www.w3.org/1999/xhtml" id="id680418"></a> 20099 30913 <div class="header">Description:</div> 20100 30914 <p xmlns="http://www.w3.org/1999/xhtml">Sets the list encapsulated in <code class="literal">population</code> to … … 20109 30923 <div> 20110 30924 <div> 20111 <h2 class="title" style="clear: both"><a id="Garbage-Collection-Dictionary"></a>1 5.7. Garbage-Collection Dictionary</h2>30925 <h2 class="title" style="clear: both"><a id="Garbage-Collection-Dictionary"></a>16.7. Garbage-Collection Dictionary</h2> 20112 30926 </div> 20113 30927 </div> … … 20129 30943 <div> 20130 30944 <div class="refsect1" lang="en" xml:lang="en"> 20131 <a xmlns="http://www.w3.org/1999/xhtml" id="id 521614"></a>30945 <a xmlns="http://www.w3.org/1999/xhtml" id="id680502"></a> 20132 30946 <div class="header">Description:</div> 20133 30947 <p xmlns="http://www.w3.org/1999/xhtml">Returns the value of the kernel variable that specifies the … … 20150 30964 <div> 20151 30965 <div class="refsect1" lang="en" xml:lang="en"> 20152 <a xmlns="http://www.w3.org/1999/xhtml" id="id 521675"></a>30966 <a xmlns="http://www.w3.org/1999/xhtml" id="id680563"></a> 20153 30967 <div class="header">Arguments and Values:</div> 20154 30968 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">new-threshold</span></i>---The requested new lisp-heap-gc-threshold.</p> 20155 30969 </div> 20156 30970 <div class="refsect1" lang="en" xml:lang="en"> 20157 <a xmlns="http://www.w3.org/1999/xhtml" id="id 521700"></a>30971 <a xmlns="http://www.w3.org/1999/xhtml" id="id680589"></a> 20158 30972 <div class="header">Description:</div> 20159 30973 <p xmlns="http://www.w3.org/1999/xhtml">Sets the value of the kernel variable that specifies the … … 20179 30993 <div> 20180 30994 <div class="refsect1" lang="en" xml:lang="en"> 20181 <a xmlns="http://www.w3.org/1999/xhtml" id="id5 21762"></a>30995 <a xmlns="http://www.w3.org/1999/xhtml" id="id561732"></a> 20182 30996 <div class="header">Description:</div> 20183 30997 <p xmlns="http://www.w3.org/1999/xhtml">Tries to grow or shrink lisp's heap space, so that the … … 20199 31013 <div> 20200 31014 <div class="refsect1" lang="en" xml:lang="en"> 20201 <a xmlns="http://www.w3.org/1999/xhtml" id="id5 21821"></a>31015 <a xmlns="http://www.w3.org/1999/xhtml" id="id561790"></a> 20202 31016 <div class="header">Arguments and Values:</div> 20203 31017 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">arg</span></i>---a generalized boolean</p> 20204 31018 </div> 20205 31019 <div class="refsect1" lang="en" xml:lang="en"> 20206 <a xmlns="http://www.w3.org/1999/xhtml" id="id 521847"></a>31020 <a xmlns="http://www.w3.org/1999/xhtml" id="id680633"></a> 20207 31021 <div class="header">Description:</div> 20208 31022 <p xmlns="http://www.w3.org/1999/xhtml">Enables the EGC if arg is non-nil, disables the EGC … … 20230 31044 <div> 20231 31045 <div class="refsect1" lang="en" xml:lang="en"> 20232 <a xmlns="http://www.w3.org/1999/xhtml" id="id 521905"></a>31046 <a xmlns="http://www.w3.org/1999/xhtml" id="id680691"></a> 20233 31047 <div class="header">Description:</div> 20234 31048 <p xmlns="http://www.w3.org/1999/xhtml">Returns T if the EGC was enabled at the time of the call, … … 20253 31067 <div> 20254 31068 <div class="refsect1" lang="en" xml:lang="en"> 20255 <a xmlns="http://www.w3.org/1999/xhtml" id="id 521961"></a>31069 <a xmlns="http://www.w3.org/1999/xhtml" id="id680747"></a> 20256 31070 <div class="header">Description:</div> 20257 31071 <p xmlns="http://www.w3.org/1999/xhtml">Returns T if the EGC was active at the time of the call, NIL … … 20278 31092 <div> 20279 31093 <div class="refsect1" lang="en" xml:lang="en"> 20280 <a xmlns="http://www.w3.org/1999/xhtml" id="id 522019"></a>31094 <a xmlns="http://www.w3.org/1999/xhtml" id="id680805"></a> 20281 31095 <div class="header">Description:</div> 20282 31096 <p xmlns="http://www.w3.org/1999/xhtml">Returns, as multiple values, the sizes in kilobytes of the … … 20300 31114 <div> 20301 31115 <div class="refsect1" lang="en" xml:lang="en"> 20302 <a xmlns="http://www.w3.org/1999/xhtml" id="id 522078"></a>31116 <a xmlns="http://www.w3.org/1999/xhtml" id="id680864"></a> 20303 31117 <div class="header">Arguments and Values:</div> 20304 31118 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">generation-0-size</span></i>---the requested threshold size of the youngest … … 20310 31124 </div> 20311 31125 <div class="refsect1" lang="en" xml:lang="en"> 20312 <a xmlns="http://www.w3.org/1999/xhtml" id="id 522133"></a>31126 <a xmlns="http://www.w3.org/1999/xhtml" id="id680919"></a> 20313 31127 <div class="header">Description:</div> 20314 31128 <p xmlns="http://www.w3.org/1999/xhtml">Puts the indicated threshold sizes in effect. … … 20334 31148 <div> 20335 31149 <div class="refsect1" lang="en" xml:lang="en"> 20336 <a xmlns="http://www.w3.org/1999/xhtml" id="id 522199"></a>31150 <a xmlns="http://www.w3.org/1999/xhtml" id="id680985"></a> 20337 31151 <div class="header">Arguments and Values:</div> 20338 31152 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">arg</span></i>---a generalized boolean</p> 20339 31153 </div> 20340 31154 <div class="refsect1" lang="en" xml:lang="en"> 20341 <a xmlns="http://www.w3.org/1999/xhtml" id="id 522225"></a>31155 <a xmlns="http://www.w3.org/1999/xhtml" id="id681011"></a> 20342 31156 <div class="header">Description:</div> 20343 31157 <p xmlns="http://www.w3.org/1999/xhtml">Tries to influence the GC to retain/recycle the pages … … 20364 31178 <div> 20365 31179 <div class="refsect1" lang="en" xml:lang="en"> 20366 <a xmlns="http://www.w3.org/1999/xhtml" id="id 522283"></a>31180 <a xmlns="http://www.w3.org/1999/xhtml" id="id681068"></a> 20367 31181 <div class="header">Description:</div> 20368 31182 <p xmlns="http://www.w3.org/1999/xhtml">Returns T if the GC tries to retain pages between full GCs … … 20378 31192 <div> 20379 31193 <div> 20380 <h2 class="title"><a id="Implementation-Details-of-CCL"></a>Chapter 1 6. Implementation Details of Clozure CL</h2>31194 <h2 class="title"><a id="Implementation-Details-of-CCL"></a>Chapter 17. Implementation Details of Clozure CL</h2> 20381 31195 </div> 20382 31196 </div> … … 20386 31200 <dt> 20387 31201 <span class="sect1"> 20388 <a href="#Threads-and-exceptions">1 6.1. Threads and exceptions</a>31202 <a href="#Threads-and-exceptions">17.1. Threads and exceptions</a> 20389 31203 </span> 20390 31204 </dt> … … 20393 31207 <dt> 20394 31208 <span class="sect2"> 20395 <a href="#The-Thread-Context-Record">1 6.1.1. The Thread Context Record</a>31209 <a href="#The-Thread-Context-Record">17.1.1. The Thread Context Record</a> 20396 31210 </span> 20397 31211 </dt> 20398 31212 <dt> 20399 31213 <span class="sect2"> 20400 <a href="#Exception-contexts-comma---and-exception-handling-in-general">1 6.1.2. Exception contexts, and exception-handling in general</a>31214 <a href="#Exception-contexts-comma---and-exception-handling-in-general">17.1.2. Exception contexts, and exception-handling in general</a> 20401 31215 </span> 20402 31216 </dt> 20403 31217 <dt> 20404 31218 <span class="sect2"> 20405 <a href="#Threads-comma---exceptions-comma---and-the-GC">1 6.1.3. Threads, exceptions, and the GC</a>31219 <a href="#Threads-comma---exceptions-comma---and-the-GC">17.1.3. Threads, exceptions, and the GC</a> 20406 31220 </span> 20407 31221 </dt> 20408 31222 <dt> 20409 31223 <span class="sect2"> 20410 <a href="#PC-lusering">1 6.1.4. PC-lusering</a>31224 <a href="#PC-lusering">17.1.4. PC-lusering</a> 20411 31225 </span> 20412 31226 </dt> … … 20415 31229 <dt> 20416 31230 <span class="sect1"> 20417 <a href="#Register-usage-and-tagging">1 6.2. Register usage and tagging</a>31231 <a href="#Register-usage-and-tagging">17.2. Register usage and tagging</a> 20418 31232 </span> 20419 31233 </dt> … … 20422 31236 <dt> 20423 31237 <span class="sect2"> 20424 <a href="#Register-usage-and-tagging-overview">1 6.2.1. Overview</a>31238 <a href="#Register-usage-and-tagging-overview">17.2.1. Overview</a> 20425 31239 </span> 20426 31240 </dt> 20427 31241 <dt> 20428 31242 <span class="sect2"> 20429 <a href="#pc-locatives-on-the-PPC">1 6.2.2. pc-locatives on the PPC</a>31243 <a href="#pc-locatives-on-the-PPC">17.2.2. pc-locatives on the PPC</a> 20430 31244 </span> 20431 31245 </dt> 20432 31246 <dt> 20433 31247 <span class="sect2"> 20434 <a href="#Register-and-stack-usage-conventions">1 6.2.3. Register and stack usage conventions</a>31248 <a href="#Register-and-stack-usage-conventions">17.2.3. Register and stack usage conventions</a> 20435 31249 </span> 20436 31250 </dt> 20437 31251 <dt> 20438 31252 <span class="sect2"> 20439 <a href="#Tagging-scheme">1 6.2.4. Tagging scheme</a>31253 <a href="#Tagging-scheme">17.2.4. Tagging scheme</a> 20440 31254 </span> 20441 31255 </dt> … … 20444 31258 <dt> 20445 31259 <span class="sect1"> 20446 <a href="#Heap-Allocation">1 6.3. Heap Allocation</a>31260 <a href="#Heap-Allocation">17.3. Heap Allocation</a> 20447 31261 </span> 20448 31262 </dt> … … 20451 31265 <dt> 20452 31266 <span class="sect2"> 20453 <a href="#Per-thread-object-allocation">1 6.3.1. Per-thread object allocation</a>31267 <a href="#Per-thread-object-allocation">17.3.1. Per-thread object allocation</a> 20454 31268 </span> 20455 31269 </dt> 20456 31270 <dt> 20457 31271 <span class="sect2"> 20458 <a href="#Allocation-of-reserved-heap-segments">1 6.3.2. Allocation of reserved heap segments</a>31272 <a href="#Allocation-of-reserved-heap-segments">17.3.2. Allocation of reserved heap segments</a> 20459 31273 </span> 20460 31274 </dt> 20461 31275 <dt> 20462 31276 <span class="sect2"> 20463 <a href="#Heap-growth">1 6.3.3. Heap growth</a>31277 <a href="#Heap-growth">17.3.3. Heap growth</a> 20464 31278 </span> 20465 31279 </dt> … … 20468 31282 <dt> 20469 31283 <span class="sect1"> 20470 <a href="#GC-details">1 6.4. GC details</a>31284 <a href="#GC-details">17.4. GC details</a> 20471 31285 </span> 20472 31286 </dt> … … 20475 31289 <dt> 20476 31290 <span class="sect2"> 20477 <a href="#Mark-phase">1 6.4.1. Mark phase</a>31291 <a href="#Mark-phase">17.4.1. Mark phase</a> 20478 31292 </span> 20479 31293 </dt> 20480 31294 <dt> 20481 31295 <span class="sect2"> 20482 <a href="#Relocation-phase">1 6.4.2. Relocation phase</a>31296 <a href="#Relocation-phase">17.4.2. Relocation phase</a> 20483 31297 </span> 20484 31298 </dt> 20485 31299 <dt> 20486 31300 <span class="sect2"> 20487 <a href="#Forwarding-phase">1 6.4.3. Forwarding phase</a>31301 <a href="#Forwarding-phase">17.4.3. Forwarding phase</a> 20488 31302 </span> 20489 31303 </dt> 20490 31304 <dt> 20491 31305 <span class="sect2"> 20492 <a href="#Compact-phase">1 6.4.4. Compact phase</a>31306 <a href="#Compact-phase">17.4.4. Compact phase</a> 20493 31307 </span> 20494 31308 </dt> … … 20497 31311 <dt> 20498 31312 <span class="sect1"> 20499 <a href="#The-ephemeral-GC">1 6.5. The ephemeral GC</a>31313 <a href="#The-ephemeral-GC">17.5. The ephemeral GC</a> 20500 31314 </span> 20501 31315 </dt> 20502 31316 <dt> 20503 31317 <span class="sect1"> 20504 <a href="#Fasl-files">1 6.6. Fasl files</a>31318 <a href="#Fasl-files">17.6. Fasl files</a> 20505 31319 </span> 20506 31320 </dt> 20507 31321 <dt> 20508 31322 <span class="sect1"> 20509 <a href="#The-Objective-C-Bridge--1-">1 6.7. The Objective-C Bridge</a>31323 <a href="#The-Objective-C-Bridge--1-">17.7. The Objective-C Bridge</a> 20510 31324 </span> 20511 31325 </dt> … … 20514 31328 <dt> 20515 31329 <span class="sect2"> 20516 <a href="#How-CCL-Recognizes-Objective-C-Objects">1 6.7.1. How Clozure CL Recognizes Objective-C Objects</a>31330 <a href="#How-CCL-Recognizes-Objective-C-Objects">17.7.1. How Clozure CL Recognizes Objective-C Objects</a> 20517 31331 </span> 20518 31332 </dt> 20519 31333 <dt> 20520 31334 <span class="sect2"> 20521 <a href="#id 527566">16.7.2. Recommended Reading</a>31335 <a href="#id711745">17.7.2. Recommended Reading</a> 20522 31336 </span> 20523 31337 </dt> … … 20540 31354 <div> 20541 31355 <div> 20542 <h2 class="title" style="clear: both"><a id="Threads-and-exceptions"></a>1 6.1. Threads and exceptions</h2>31356 <h2 class="title" style="clear: both"><a id="Threads-and-exceptions"></a>17.1. Threads and exceptions</h2> 20543 31357 </div> 20544 31358 </div> … … 20570 31384 <div> 20571 31385 <div> 20572 <h3 class="title"><a id="The-Thread-Context-Record"></a>1 6.1.1. The Thread Context Record</h3>31386 <h3 class="title"><a id="The-Thread-Context-Record"></a>17.1.1. The Thread Context Record</h3> 20573 31387 </div> 20574 31388 </div> … … 20634 31448 <div> 20635 31449 <div> 20636 <h3 class="title"><a id="Exception-contexts-comma---and-exception-handling-in-general"></a>1 6.1.2. Exception contexts, and exception-handling in general</h3>31450 <h3 class="title"><a id="Exception-contexts-comma---and-exception-handling-in-general"></a>17.1.2. Exception contexts, and exception-handling in general</h3> 20637 31451 </div> 20638 31452 </div> … … 20715 31529 that received the signal; in practice, that means "wherever 20716 31530 RSP is pointing." Clozure CL's 20717 <a class="xref" href="#Register-and-stack-usage-conventions" title="1 6.2.3. Register and stack usage conventions">Section 16.2.3, âRegister and stack usage conventionsâ</a>31531 <a class="xref" href="#Register-and-stack-usage-conventions" title="17.2.3. Register and stack usage conventions">Section 17.2.3, âRegister and stack usage conventionsâ</a> 20718 31532 require that the thread's value stackâwhere RSP is 20719 31533 usually pointing while lisp code is runningâcontain … … 20758 31572 <div> 20759 31573 <div> 20760 <h3 class="title"><a id="Threads-comma---exceptions-comma---and-the-GC"></a>1 6.1.3. Threads, exceptions, and the GC</h3>31574 <h3 class="title"><a id="Threads-comma---exceptions-comma---and-the-GC"></a>17.1.3. Threads, exceptions, and the GC</h3> 20761 31575 </div> 20762 31576 </div> … … 20772 31586 Once all other threads have acknowledged the request to 20773 31587 suspend themselves, the GC thread can run the GC proper (after 20774 doing any necessary <a class="xref" href="#PC-lusering" title="1 6.1.4. PC-lusering">Section 16.1.4, âPC-luseringâ</a>.) Once the31588 doing any necessary <a class="xref" href="#PC-lusering" title="17.1.4. PC-lusering">Section 17.1.4, âPC-luseringâ</a>.) Once the 20775 31589 GC's completed its work, the thread that invoked the GC 20776 31590 iterates over the global TCR list, raising a per-thread … … 20793 31607 <div> 20794 31608 <div> 20795 <h3 class="title"><a id="PC-lusering"></a>1 6.1.4. PC-lusering</h3>31609 <h3 class="title"><a id="PC-lusering"></a>17.1.4. PC-lusering</h3> 20796 31610 </div> 20797 31611 </div> … … 20831 31645 </li> 20832 31646 <li class="listitem"> 20833 <p><a class="xref" href="#The-ephemeral-GC" title="1 6.5. The ephemeral GC">Section 16.5, âThe ephemeral GCâ</a>'s write barrier31647 <p><a class="xref" href="#The-ephemeral-GC" title="17.5. The ephemeral GC">Section 17.5, âThe ephemeral GCâ</a>'s write barrier 20834 31648 has to be implemented atomically (i.e.,both an 20835 31649 intergenerational store and the update of a … … 20863 31677 <div> 20864 31678 <div> 20865 <h2 class="title" style="clear: both"><a id="Register-usage-and-tagging"></a>1 6.2. Register usage and tagging</h2>31679 <h2 class="title" style="clear: both"><a id="Register-usage-and-tagging"></a>17.2. Register usage and tagging</h2> 20866 31680 </div> 20867 31681 </div> … … 20871 31685 <div> 20872 31686 <div> 20873 <h3 class="title"><a id="Register-usage-and-tagging-overview"></a>1 6.2.1. Overview</h3>31687 <h3 class="title"><a id="Register-usage-and-tagging-overview"></a>17.2.1. Overview</h3> 20874 31688 </div> 20875 31689 </div> … … 20928 31742 activity in some other thread) on any instruction boundary, 20929 31743 which in turn means that the compiler and runtime system must 20930 follow precise <a class="xref" href="#Register-and-stack-usage-conventions" title="1 6.2.3. Register and stack usage conventions">Section 16.2.3, âRegister and stack usage conventionsâ</a> at all31744 follow precise <a class="xref" href="#Register-and-stack-usage-conventions" title="17.2.3. Register and stack usage conventions">Section 17.2.3, âRegister and stack usage conventionsâ</a> at all 20931 31745 times.</p> 20932 31746 <p xmlns="http://www.w3.org/1999/xhtml">Once we've decided that a given machine word is a node, 20933 a <a class="xref" href="#Tagging-scheme" title="1 6.2.4. Tagging scheme">Section 16.2.4, âTagging schemeâ</a> describes how the node's31747 a <a class="xref" href="#Tagging-scheme" title="17.2.4. Tagging scheme">Section 17.2.4, âTagging schemeâ</a> describes how the node's 20934 31748 value and type are encoded in that machine word.</p> 20935 31749 <p xmlns="http://www.w3.org/1999/xhtml">Most of this discussionâso farâhas treated … … 20941 31755 raw non-node values.) Higher-level parts of the lisp type 20942 31756 system (functions like TYPE-OF and CLASS-OF, etc.) depend on 20943 the <a class="xref" href="#Tagging-scheme" title="1 6.2.4. Tagging scheme">Section 16.2.4, âTagging schemeâ</a>.</p>31757 the <a class="xref" href="#Tagging-scheme" title="17.2.4. Tagging scheme">Section 17.2.4, âTagging schemeâ</a>.</p> 20944 31758 </div> 20945 31759 <div class="sect2" lang="en" xml:lang="en"> … … 20947 31761 <div> 20948 31762 <div> 20949 <h3 class="title"><a id="pc-locatives-on-the-PPC"></a>1 6.2.2. pc-locatives on the PPC</h3>31763 <h3 class="title"><a id="pc-locatives-on-the-PPC"></a>17.2.2. pc-locatives on the PPC</h3> 20950 31764 </div> 20951 31765 </div> … … 21005 31819 <div> 21006 31820 <div> 21007 <h3 class="title"><a id="Register-and-stack-usage-conventions"></a>1 6.2.3. Register and stack usage conventions</h3>31821 <h3 class="title"><a id="Register-and-stack-usage-conventions"></a>17.2.3. Register and stack usage conventions</h3> 21008 31822 </div> 21009 31823 </div> … … 21013 31827 <div> 21014 31828 <div> 21015 <h4 class="title"><a id="Stack-conventions"></a>1 6.2.3.1. Stack conventions</h4>31829 <h4 class="title"><a id="Stack-conventions"></a>17.2.3.1. Stack conventions</h4> 21016 31830 </div> 21017 31831 </div> … … 21051 31865 when the thread is running foreign code and the address 21052 31866 of the top of the control stack is kept in the thread's 21053 TCR (see <a class="xref" href="#The-Thread-Context-Record" title="1 6.1.1. The Thread Context Record">Section 16.1.1, âThe Thread Context Recordâ</a>31867 TCR (see <a class="xref" href="#The-Thread-Context-Record" title="17.1.1. The Thread Context Record">Section 17.1.1, âThe Thread Context Recordâ</a> 21054 31868 when not running foreign code. The control stack "grows 21055 31869 down."</p> … … 21120 31934 <div> 21121 31935 <div> 21122 <h4 class="title"><a id="Register-conventions"></a>1 6.2.3.2. Register conventions</h4>31936 <h4 class="title"><a id="Register-conventions"></a>17.2.3.2. Register conventions</h4> 21123 31937 </div> 21124 31938 </div> … … 21320 32134 <div> 21321 32135 <div> 21322 <h3 class="title"><a id="Tagging-scheme"></a>1 6.2.4. Tagging scheme</h3>32136 <h3 class="title"><a id="Tagging-scheme"></a>17.2.4. Tagging scheme</h3> 21323 32137 </div> 21324 32138 </div> … … 21519 32333 <div> 21520 32334 <div> 21521 <h2 class="title" style="clear: both"><a id="Heap-Allocation"></a>1 6.3. Heap Allocation</h2>32335 <h2 class="title" style="clear: both"><a id="Heap-Allocation"></a>17.3. Heap Allocation</h2> 21522 32336 </div> 21523 32337 </div> … … 21557 32371 <div> 21558 32372 <div> 21559 <h3 class="title"><a id="Per-thread-object-allocation"></a>1 6.3.1. Per-thread object allocation</h3>32373 <h3 class="title"><a id="Per-thread-object-allocation"></a>17.3.1. Per-thread object allocation</h3> 21560 32374 </div> 21561 32375 </div> … … 21631 32445 <div> 21632 32446 <div> 21633 <h3 class="title"><a id="Allocation-of-reserved-heap-segments"></a>1 6.3.2. Allocation of reserved heap segments</h3>32447 <h3 class="title"><a id="Allocation-of-reserved-heap-segments"></a>17.3.2. Allocation of reserved heap segments</h3> 21634 32448 </div> 21635 32449 </div> … … 21666 32480 <div> 21667 32481 <div> 21668 <h3 class="title"><a id="Heap-growth"></a>1 6.3.3. Heap growth</h3>32482 <h3 class="title"><a id="Heap-growth"></a>17.3.3. Heap growth</h3> 21669 32483 </div> 21670 32484 </div> … … 21698 32512 <div> 21699 32513 <div> 21700 <h2 class="title" style="clear: both"><a id="GC-details"></a>1 6.4. GC details</h2>32514 <h2 class="title" style="clear: both"><a id="GC-details"></a>17.4. GC details</h2> 21701 32515 </div> 21702 32516 </div> … … 21708 32522 garbage to rebuild free-lists; their execution time is therefore 21709 32523 a factor of the total heap size.)</p> 21710 <p xmlns="http://www.w3.org/1999/xhtml">As mentioned in <a class="xref" href="#Heap-Allocation" title="1 6.3. Heap Allocation">Section 16.3, âHeap Allocationâ</a>, two32524 <p xmlns="http://www.w3.org/1999/xhtml">As mentioned in <a class="xref" href="#Heap-Allocation" title="17.3. Heap Allocation">Section 17.3, âHeap Allocationâ</a>, two 21711 32525 auxiliary data structures (proportional to the size of the lisp 21712 32526 heap) are maintained. These are</p> … … 21733 32547 <div> 21734 32548 <div> 21735 <h3 class="title"><a id="Mark-phase"></a>1 6.4.1. Mark phase</h3>32549 <h3 class="title"><a id="Mark-phase"></a>17.4.1. Mark phase</h3> 21736 32550 </div> 21737 32551 </div> … … 21795 32609 <li class="listitem"> 21796 32610 <p>To support a feature called <span class="emphasis"><em>GCTWA 21797 <sup>[<a id="id 527121" href="#ftn.id527121" class="footnote">1</a>]</sup>32611 <sup>[<a id="id711299" href="#ftn.id711299" class="footnote">1</a>]</sup> 21798 32612 , </em></span>the vector that contains the internal 21799 32613 symbols of the current package is marked on entry to the … … 21830 32644 <div> 21831 32645 <div> 21832 <h3 class="title"><a id="Relocation-phase"></a>1 6.4.2. Relocation phase</h3>32646 <h3 class="title"><a id="Relocation-phase"></a>17.4.2. Relocation phase</h3> 21833 32647 </div> 21834 32648 </div> … … 21870 32684 <div> 21871 32685 <div> 21872 <h3 class="title"><a id="Forwarding-phase"></a>1 6.4.3. Forwarding phase</h3>32686 <h3 class="title"><a id="Forwarding-phase"></a>17.4.3. Forwarding phase</h3> 21873 32687 </div> 21874 32688 </div> … … 21907 32721 <div> 21908 32722 <div> 21909 <h3 class="title"><a id="Compact-phase"></a>1 6.4.4. Compact phase</h3>32723 <h3 class="title"><a id="Compact-phase"></a>17.4.4. Compact phase</h3> 21910 32724 </div> 21911 32725 </div> … … 21928 32742 <hr width="100" align="left" /> 21929 32743 <div class="footnote"> 21930 <p><sup>[<a id="ftn.id 527121" href="#id527121" class="para">1</a>] </sup>I believe that the acronym comes from MACLISP,32744 <p><sup>[<a id="ftn.id711299" href="#id711299" class="para">1</a>] </sup>I believe that the acronym comes from MACLISP, 21931 32745 where it stood for "Garbage Collection of Truly 21932 32746 Worthless Atoms".</p> … … 21938 32752 <div> 21939 32753 <div> 21940 <h2 class="title" style="clear: both"><a id="The-ephemeral-GC"></a>1 6.5. The ephemeral GC</h2>32754 <h2 class="title" style="clear: both"><a id="The-ephemeral-GC"></a>17.5. The ephemeral GC</h2> 21941 32755 </div> 21942 32756 </div> … … 21988 32802 generations looking for such intergenerational references, the 21989 32803 runtime system must note all such intergenerational references 21990 at the point where they're created (via Setf).<sup>[<a id="id 527355" href="#ftn.id527355" class="footnote">2</a>]</sup> The32804 at the point where they're created (via Setf).<sup>[<a id="id711533" href="#ftn.id711533" class="footnote">2</a>]</sup> The 21991 32805 set of pointers that may contain intergenerational references is 21992 32806 sometimes called <span class="emphasis"><em>the remembered set</em></span>.</p> … … 22035 32849 that might introduce an intergenerational reference must be 22036 32850 memoized. 22037 <sup>[<a id="id 527423" href="#ftn.id527423" class="footnote">3</a>]</sup> It's always safe to32851 <sup>[<a id="id711601" href="#ftn.id711601" class="footnote">3</a>]</sup> It's always safe to 22038 32852 push any cons cell or gvector locative onto the memo stack; 22039 32853 it's never safe to push anything else. … … 22056 32870 <hr width="100" align="left" /> 22057 32871 <div class="footnote"> 22058 <p><sup>[<a id="ftn.id 527355" href="#id527355" class="para">2</a>] </sup>This is32872 <p><sup>[<a id="ftn.id711533" href="#id711533" class="para">2</a>] </sup>This is 22059 32873 sometimes called "The Write Barrier": all assignments which 22060 32874 might result in intergenerational references must be noted, as … … 22062 32876 </div> 22063 32877 <div class="footnote"> 22064 <p><sup>[<a id="ftn.id 527423" href="#id527423" class="para">3</a>] </sup>Note that the implicit setfs that occur when32878 <p><sup>[<a id="ftn.id711601" href="#id711601" class="para">3</a>] </sup>Note that the implicit setfs that occur when 22065 32879 initializing an object - as in the case of a call to cons or 22066 32880 vector - can't introduce intergenerational references, since … … 22074 32888 <div> 22075 32889 <div> 22076 <h2 class="title" style="clear: both"><a id="Fasl-files"></a>1 6.6. Fasl files</h2>32890 <h2 class="title" style="clear: both"><a id="Fasl-files"></a>17.6. Fasl files</h2> 22077 32891 </div> 22078 32892 </div> … … 22121 32935 <div> 22122 32936 <div> 22123 <h2 class="title" style="clear: both"><a id="The-Objective-C-Bridge--1-"></a>1 6.7. The Objective-C Bridge</h2>32937 <h2 class="title" style="clear: both"><a id="The-Objective-C-Bridge--1-"></a>17.7. The Objective-C Bridge</h2> 22124 32938 </div> 22125 32939 </div> … … 22129 32943 <div> 22130 32944 <div> 22131 <h3 class="title"><a id="How-CCL-Recognizes-Objective-C-Objects"></a>1 6.7.1. How Clozure CL Recognizes Objective-C Objects</h3>32945 <h3 class="title"><a id="How-CCL-Recognizes-Objective-C-Objects"></a>17.7.1. How Clozure CL Recognizes Objective-C Objects</h3> 22132 32946 </div> 22133 32947 </div> … … 22178 32992 <div> 22179 32993 <div> 22180 <h3 class="title"><a id="id 527566"></a>16.7.2. Recommended Reading</h3>32994 <h3 class="title"><a id="id711745"></a>17.7.2. Recommended Reading</h3> 22181 32995 </div> 22182 32996 </div> … … 22217 33031 <div> 22218 33032 <div> 22219 <h2 class="title"><a id="Modifying-CCL"></a>Chapter 1 7. Modifying Clozure CL</h2>33033 <h2 class="title"><a id="Modifying-CCL"></a>Chapter 18. Modifying Clozure CL</h2> 22220 33034 </div> 22221 33035 </div> … … 22225 33039 <dt> 22226 33040 <span class="sect1"> 22227 <a href="#Contributing-Code-Back-to-the-CCL-Project">1 7.1. Contributing Code Back to the Clozure CL Project</a>33041 <a href="#Contributing-Code-Back-to-the-CCL-Project">18.1. Contributing Code Back to the Clozure CL Project</a> 22228 33042 </span> 22229 33043 </dt> 22230 33044 <dt> 22231 33045 <span class="sect1"> 22232 <a href="#Using-CCL-in--development--and-in--user--mode">1 7.2. Using Clozure CL in "development" and in "user" mode</a>33046 <a href="#Using-CCL-in--development--and-in--user--mode">18.2. Using Clozure CL in "development" and in "user" mode</a> 22233 33047 </span> 22234 33048 </dt> 22235 33049 <dt> 22236 33050 <span class="sect1"> 22237 <a href="#kernel-debugger">1 7.3. The Kernel Debugger</a>33051 <a href="#kernel-debugger">18.3. The Kernel Debugger</a> 22238 33052 </span> 22239 33053 </dt> 22240 33054 <dt> 22241 33055 <span class="sect1"> 22242 <a href="#Using-AltiVec-in-CCL-LAP-functions">1 7.4. Using AltiVec in Clozure CL LAP functions</a>33056 <a href="#Using-AltiVec-in-CCL-LAP-functions">18.4. Using AltiVec in Clozure CL LAP functions</a> 22243 33057 </span> 22244 33058 </dt> … … 22247 33061 <dt> 22248 33062 <span class="sect2"> 22249 <a href="#Overview--16-">1 7.4.1. Overview</a>33063 <a href="#Overview--16-">18.4.1. Overview</a> 22250 33064 </span> 22251 33065 </dt> 22252 33066 <dt> 22253 33067 <span class="sect2"> 22254 <a href="#Register-usage-conventions">1 7.4.2. Register usage conventions</a>33068 <a href="#Register-usage-conventions">18.4.2. Register usage conventions</a> 22255 33069 </span> 22256 33070 </dt> … … 22259 33073 <dt> 22260 33074 <span class="sect1"> 22261 <a href="#Development-Mode-Dictionary">1 7.5. Development-Mode Dictionary</a>33075 <a href="#Development-Mode-Dictionary">18.5. Development-Mode Dictionary</a> 22262 33076 </span> 22263 33077 </dt> … … 22268 33082 <div> 22269 33083 <div> 22270 <h2 class="title" style="clear: both"><a id="Contributing-Code-Back-to-the-CCL-Project"></a>1 7.1. Contributing Code Back to the Clozure CL Project</h2>33084 <h2 class="title" style="clear: both"><a id="Contributing-Code-Back-to-the-CCL-Project"></a>18.1. Contributing Code Back to the Clozure CL Project</h2> 22271 33085 </div> 22272 33086 </div> … … 22280 33094 <div> 22281 33095 <div> 22282 <h2 class="title" style="clear: both"><a id="Using-CCL-in--development--and-in--user--mode"></a>1 7.2. Using Clozure CL in "development" and in "user" mode</h2>33096 <h2 class="title" style="clear: both"><a id="Using-CCL-in--development--and-in--user--mode"></a>18.2. Using Clozure CL in "development" and in "user" mode</h2> 22283 33097 </div> 22284 33098 </div> … … 22337 33151 <div> 22338 33152 <div> 22339 <h2 class="title" style="clear: both"><a id="kernel-debugger"></a>1 7.3. The Kernel Debugger</h2>33153 <h2 class="title" style="clear: both"><a id="kernel-debugger"></a>18.3. The Kernel Debugger</h2> 22340 33154 </div> 22341 33155 </div> … … 22470 33284 <div> 22471 33285 <div> 22472 <h2 class="title" style="clear: both"><a id="Using-AltiVec-in-CCL-LAP-functions"></a>1 7.4. Using AltiVec in Clozure CL LAP functions</h2>33286 <h2 class="title" style="clear: both"><a id="Using-AltiVec-in-CCL-LAP-functions"></a>18.4. Using AltiVec in Clozure CL LAP functions</h2> 22473 33287 </div> 22474 33288 </div> … … 22478 33292 <div> 22479 33293 <div> 22480 <h3 class="title"><a id="Overview--16-"></a>1 7.4.1. Overview</h3>33294 <h3 class="title"><a id="Overview--16-"></a>18.4.1. Overview</h3> 22481 33295 </div> 22482 33296 </div> … … 22506 33320 <div> 22507 33321 <div> 22508 <h3 class="title"><a id="Register-usage-conventions"></a>1 7.4.2. Register usage conventions</h3>33322 <h3 class="title"><a id="Register-usage-conventions"></a>18.4.2. Register usage conventions</h3> 22509 33323 </div> 22510 33324 </div> … … 22575 33389 <div> 22576 33390 <div> 22577 <h2 class="title" style="clear: both"><a id="Development-Mode-Dictionary"></a>1 7.5. Development-Mode Dictionary</h2>33391 <h2 class="title" style="clear: both"><a id="Development-Mode-Dictionary"></a>18.5. Development-Mode Dictionary</h2> 22578 33392 </div> 22579 33393 </div> … … 22591 33405 <div> 22592 33406 <div class="refsect1" lang="en" xml:lang="en"> 22593 <a xmlns="http://www.w3.org/1999/xhtml" id="id 529457"></a>33407 <a xmlns="http://www.w3.org/1999/xhtml" id="id655139"></a> 22594 33408 <div class="header">Description:</div> 22595 33409 <p xmlns="http://www.w3.org/1999/xhtml">When true, attempts to redefine (via DEFUN or DEFMETHOD) … … 22616 33430 <div> 22617 33431 <div class="refsect1" lang="en" xml:lang="en"> 22618 <a xmlns="http://www.w3.org/1999/xhtml" id="id 455395"></a>33432 <a xmlns="http://www.w3.org/1999/xhtml" id="id621985"></a> 22619 33433 <div class="header">Description:</div> 22620 33434 <p xmlns="http://www.w3.org/1999/xhtml">Arranges that the outermost special bindings of *PACKAGE* … … 22640 33454 <div> 22641 33455 <div class="refsect1" lang="en" xml:lang="en"> 22642 <a xmlns="http://www.w3.org/1999/xhtml" id="id 499483"></a>33456 <a xmlns="http://www.w3.org/1999/xhtml" id="id706118"></a> 22643 33457 <div class="header">Description:</div> 22644 33458 <p xmlns="http://www.w3.org/1999/xhtml">Arranges that the outermost special bindings of *PACKAGE* … … 22663 33477 <div> 22664 33478 <div class="refsect1" lang="en" xml:lang="en"> 22665 <a xmlns="http://www.w3.org/1999/xhtml" id="id 517638"></a>33479 <a xmlns="http://www.w3.org/1999/xhtml" id="id617025"></a> 22666 33480 <div class="header">Description:</div> 22667 33481 <p xmlns="http://www.w3.org/1999/xhtml">This variable is initialized each time an Clozure CL session … … 22688 33502 <div> 22689 33503 <div class="refsect1" lang="en" xml:lang="en"> 22690 <a xmlns="http://www.w3.org/1999/xhtml" id="id 517334"></a>33504 <a xmlns="http://www.w3.org/1999/xhtml" id="id642917"></a> 22691 33505 <div class="header">Description:</div> 22692 33506 <p xmlns="http://www.w3.org/1999/xhtml">Returns non-NIL if AltiVec is available.</p> … … 22706 33520 <div> 22707 33521 <div class="refsect1" lang="en" xml:lang="en"> 22708 <a xmlns="http://www.w3.org/1999/xhtml" id="id 517378"></a>33522 <a xmlns="http://www.w3.org/1999/xhtml" id="id655998"></a> 22709 33523 <div class="header">Description:</div> 22710 33524 <p xmlns="http://www.w3.org/1999/xhtml">Intended to control the expansion of certain lap macros. … … 22728 33542 <div> 22729 33543 <div class="refsect1" lang="en" xml:lang="en"> 22730 <a xmlns="http://www.w3.org/1999/xhtml" id="id 470152"></a>33544 <a xmlns="http://www.w3.org/1999/xhtml" id="id648703"></a> 22731 33545 <div class="header">Arguments and Values:</div> 22732 33546 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">reglist</span></i>---A list of vector register names (vr0 .. vr31).</p> … … 22734 33548 </div> 22735 33549 <div class="refsect1" lang="en" xml:lang="en"> 22736 <a xmlns="http://www.w3.org/1999/xhtml" id="id 470193"></a>33550 <a xmlns="http://www.w3.org/1999/xhtml" id="id648743"></a> 22737 33551 <div class="header">Description:</div> 22738 33552 <p xmlns="http://www.w3.org/1999/xhtml">Specifies the set of AltiVec registers used in body. If … … 22760 33574 <div> 22761 33575 <div class="refsect1" lang="en" xml:lang="en"> 22762 <a xmlns="http://www.w3.org/1999/xhtml" id="id 494168"></a>33576 <a xmlns="http://www.w3.org/1999/xhtml" id="id626772"></a> 22763 33577 <div class="header">Arguments and Values:</div> 22764 33578 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">base</span></i>---Any available general-purpose register.</p> … … 22769 33583 </div> 22770 33584 <div class="refsect1" lang="en" xml:lang="en"> 22771 <a xmlns="http://www.w3.org/1999/xhtml" id="id 529191"></a>33585 <a xmlns="http://www.w3.org/1999/xhtml" id="id660042"></a> 22772 33586 <div class="header">Description:</div> 22773 33587 <p xmlns="http://www.w3.org/1999/xhtml">Generates code which allocates a 16-byte aligned buffer … … 22787 33601 <div> 22788 33602 <div> 22789 <h2 class="title"><a id="Questions-and-Answers"></a>Chapter 1 8. Questions and Answers</h2>33603 <h2 class="title"><a id="Questions-and-Answers"></a>Chapter 19. Questions and Answers</h2> 22790 33604 </div> 22791 33605 </div> … … 22795 33609 <dt> 22796 33610 <span class="sect1"> 22797 <a href="#How-can-I-do-nonblocking--aka--unbuffered--and--raw---IO-">1 8.1. How can I do nonblocking (aka "unbuffered" and "raw") IO?</a>33611 <a href="#How-can-I-do-nonblocking--aka--unbuffered--and--raw---IO-">19.1. How can I do nonblocking (aka "unbuffered" and "raw") IO?</a> 22798 33612 </span> 22799 33613 </dt> 22800 33614 <dt> 22801 33615 <span class="sect1"> 22802 <a href="#I-m-using-the-graphics-demos--Why-doesn-t-the-menubar-change-">1 8.2. I'm using the graphics demos. Why doesn't the menubar33616 <a href="#I-m-using-the-graphics-demos--Why-doesn-t-the-menubar-change-">19.2. I'm using the graphics demos. Why doesn't the menubar 22803 33617 change?</a> 22804 33618 </span> … … 22806 33620 <dt> 22807 33621 <span class="sect1"> 22808 <a href="#I-m-using-Slime-and-Cocoa--Why-doesn-t--standard-output--seem-to-work-">1 8.3. I'm using Slime and Cocoa. Why doesn't *standard-output*33622 <a href="#I-m-using-Slime-and-Cocoa--Why-doesn-t--standard-output--seem-to-work-">19.3. I'm using Slime and Cocoa. Why doesn't *standard-output* 22809 33623 seem to work? </a> 22810 33624 </span> … … 22816 33630 <div> 22817 33631 <div> 22818 <h2 class="title" style="clear: both"><a id="How-can-I-do-nonblocking--aka--unbuffered--and--raw---IO-"></a>1 8.1. How can I do nonblocking (aka "unbuffered" and "raw") IO?</h2>33632 <h2 class="title" style="clear: both"><a id="How-can-I-do-nonblocking--aka--unbuffered--and--raw---IO-"></a>19.1. How can I do nonblocking (aka "unbuffered" and "raw") IO?</h2> 22819 33633 </div> 22820 33634 </div> … … 22854 33668 <div> 22855 33669 <div> 22856 <h2 class="title" style="clear: both"><a id="I-m-using-the-graphics-demos--Why-doesn-t-the-menubar-change-"></a>1 8.2. I'm using the graphics demos. Why doesn't the menubar33670 <h2 class="title" style="clear: both"><a id="I-m-using-the-graphics-demos--Why-doesn-t-the-menubar-change-"></a>19.2. I'm using the graphics demos. Why doesn't the menubar 22857 33671 change?</h2> 22858 33672 </div> … … 22875 33689 <div> 22876 33690 <div> 22877 <h2 class="title" style="clear: both"><a id="I-m-using-Slime-and-Cocoa--Why-doesn-t--standard-output--seem-to-work-"></a>1 8.3. I'm using Slime and Cocoa. Why doesn't *standard-output*33691 <h2 class="title" style="clear: both"><a id="I-m-using-Slime-and-Cocoa--Why-doesn-t--standard-output--seem-to-work-"></a>19.3. I'm using Slime and Cocoa. Why doesn't *standard-output* 22878 33692 seem to work? </h2> 22879 33693 </div> … … 23137 33951 <dt>%reference-external-entry-point, <a class="indexterm" href="#f_Preference-external-entry-point">Function %REFERENCE-EXTERNAL-ENTRY-POINT</a></dt> 23138 33952 <dt>(setf population-contents), <a class="indexterm" href="#f_setf_population-contents">Function (SETF POPULATION-CONTENTS)</a></dt> 33953 <dt>*all-modifier-names*, <a class="indexterm" href="#v_all-modifier-names">Variable *all-modifier-names*</a></dt> 23139 33954 <dt>*alternate-line-terminator*, <a class="indexterm" href="#v_alternate-line-terminator">Variable CCL:*ALTERNATE-LINE-TERMINATOR*</a></dt> 23140 33955 <dt>*altivec-available*, <a class="indexterm" href="#v_altivec-available">Variable *ALTIVEC-AVAILABLE*</a></dt> 23141 33956 <dt>*altivec-lapmacros-maintain-vrsave-p*, <a class="indexterm" href="#v_altivec-lapmacros-maintain-vrsave-p">Variable *ALTIVEC-LAPMACROS-MAINTAIN-VRSAVE-P*</a></dt> 33957 <dt>*buffer-names*, <a class="indexterm" href="#v_buffer-names">Variable *buffer-names*</a></dt> 33958 <dt>*character-attribute-names*, <a class="indexterm" href="#v_character-attribute-names">Variable *character-attribute-names*</a></dt> 33959 <dt>*command-names*, <a class="indexterm" href="#v_command-names">Variable *command-names*</a></dt> 23142 33960 <dt>*COMPILE-CODE-COVERAGE*, <a class="indexterm" href="#v_compile-code-coverage">Variable *COMPILE-CODE-COVERAGE*</a></dt> 23143 33961 <dt>*current-process*, <a class="indexterm" href="#v_current-process">Variable *CURRENT-PROCESS*</a></dt> 23144 33962 <dt>*default-external-format*, <a class="indexterm" href="#v_default-external-format">Variable CCL:*DEFAULT-EXTERNAL-FORMAT*</a></dt> 23145 33963 <dt>*default-line-termination*, <a class="indexterm" href="#v_default-line-termination">Variable CCL:*DEFAULT-LINE-TERMINATION*</a></dt> 33964 <dt>*ephemerally-active-command-types*, <a class="indexterm" href="#v_ephemerally-active-command-types">Variable *ephemerally-active-command-types*</a></dt> 33965 <dt>*global-variable-names*, <a class="indexterm" href="#v_global-variable-names">Variable *global-variable-names*</a></dt> 33966 <dt>*key-event-history*, <a class="indexterm" href="#v_key-event-history">Variable *key-event-history*</a></dt> 33967 <dt>*last-search-string*, <a class="indexterm" href="#v_last-search-string">Variable *last-search-string*</a></dt> 33968 <dt>*logical-key-event-names*, <a class="indexterm" href="#v_logical-key-event-names">Variable *logical-key-event-names*</a></dt> 33969 <dt>*mode-names*, <a class="indexterm" href="#v_mode-names">Variable *mode-names*</a></dt> 23146 33970 <dt>*ticks-per-second*, <a class="indexterm" href="#v_ticks-per-second">Variable *TICKS-PER-SECOND*</a></dt> 23147 33971 <dt>*warn-if-redefine-kernel, <a class="indexterm" href="#v_warn-if-redefine-kernel">Variable *WARN-IF-REDEFINE-KERNEL*</a></dt> … … 23163 33987 <dl> 23164 33988 <dt>accept-connection, <a class="indexterm" href="#f_accept-connection">Function ACCEPT-CONNECTION</a></dt> 33989 <dt>activate-region, <a class="indexterm" href="#f_activate-region">Function activate-region</a></dt> 33990 <dt>Active Regions Enabled, <a class="indexterm" href="#hv_active_regions_enabled">Hemlock Variable Active Regions Enabled</a></dt> 33991 <dt>Add Newline at EOF on Writing File, <a class="indexterm" href="#hv_add_newline_at_eof_on_writing_file">Hemlock Variable Add Newline at EOF on Writing File</a></dt> 33992 <dt>add-hook, <a class="indexterm" href="#m_add-hook">Macro add-hook</a></dt> 23165 33993 <dt>advise, <a class="indexterm" href="#m_advise">Macro ADVISE</a></dt> 23166 33994 <dt>advisedp, <a class="indexterm" href="#m_advisedp">Macro ADVISEDP</a></dt> 33995 <dt>all-buffers, <a class="indexterm" href="#f_all-buffers">Function all-buffers</a></dt> 23167 33996 <dt>all-processes, <a class="indexterm" href="#f_all-processes">Function ALL-PROCESSES</a></dt> 23168 33997 <dt>altivec-available-p, <a class="indexterm" href="#f_altivec-available-p">Function ALTIVEC-AVAILABLE-P</a></dt> … … 23172 34001 <h3>B</h3> 23173 34002 <dl> 34003 <dt>backward-up-list, <a class="indexterm" href="#f_backward-up-list">Function backward-up-list</a></dt> 34004 <dt>beep, <a class="indexterm" href="#f_beep">Function beep</a></dt> 34005 <dt>Beep On Ambiguity, <a class="indexterm" href="#hv_beep_on_ambiguity">Hemlock Variable Beep On Ambiguity</a></dt> 34006 <dt>bind-key, <a class="indexterm" href="#f_bind-key">Function bind-key</a></dt> 34007 <dt>blank-after-p, <a class="indexterm" href="#f_blank-after-p">Function blank-after-p</a></dt> 34008 <dt>blank-before-p, <a class="indexterm" href="#f_blank-before-p">Function blank-before-p</a></dt> 34009 <dt>blank-line-p, <a class="indexterm" href="#f_blank-line-p">Function blank-line-p</a></dt> 23174 34010 <dt>bootstrapping 23175 34011 image, <a class="indexterm" href="#building-definitions">Building Definitions</a></dt> 34012 <dt>Buffer Major Mode Hook, <a class="indexterm" href="#hv_buffer_major_mode_hook">Hemlock Variable Buffer Major Mode Hook</a></dt> 34013 <dt>Buffer Minor Mode Hook, <a class="indexterm" href="#hv_buffer_minor_mode_hook">Hemlock Variable Buffer Minor Mode Hook</a></dt> 34014 <dt>Buffer Modified Hook, <a class="indexterm" href="#hv_buffer_modified_hook">Hemlock Variable Buffer Modified Hook</a></dt> 34015 <dt>Buffer Name Hook, <a class="indexterm" href="#hv_buffer_name_hook">Hemlock Variable Buffer Name Hook</a></dt> 34016 <dt>Buffer Pathname Hook, <a class="indexterm" href="#hv_buffer_pathname_hook">Hemlock Variable Buffer Pathname Hook</a></dt> 34017 <dt>Buffer Writable Hook, <a class="indexterm" href="#hv_buffer_writable_hook">Hemlock Variable Buffer Writable Hook</a></dt> 34018 <dt>buffer-default-pathname, <a class="indexterm" href="#f_buffer-default-pathname">Function buffer-default-pathname</a></dt> 34019 <dt>buffer-delete-hook, <a class="indexterm" href="#f_buffer-delete-hook">Function buffer-delete-hook</a></dt> 34020 <dt>buffer-end, <a class="indexterm" href="#f_buffer-end">Function buffer-end</a></dt> 34021 <dt>buffer-end-mark, <a class="indexterm" href="#f_buffer-end-mark">Function buffer-end-mark</a></dt> 34022 <dt>buffer-major-mode, <a class="indexterm" href="#f_buffer-major-mode">Function buffer-major-mode</a></dt> 34023 <dt>buffer-mark, <a class="indexterm" href="#f_buffer-mark">Function buffer-mark</a></dt> 34024 <dt>buffer-minor-mode, <a class="indexterm" href="#f_buffer-minor-mode">Function buffer-minor-mode</a></dt> 34025 <dt>buffer-modeline-field-p, <a class="indexterm" href="#f_buffer-modeline-field-p">Function buffer-modeline-field-p</a></dt> 34026 <dt>buffer-modeline-fields, <a class="indexterm" href="#f_buffer-modeline-fields">Function buffer-modeline-fields</a></dt> 34027 <dt>buffer-modes, <a class="indexterm" href="#f_buffer-modes">Function buffer-modes</a></dt> 34028 <dt>buffer-modified, <a class="indexterm" href="#f_buffer-modified">Function buffer-modified</a></dt> 34029 <dt>buffer-name, <a class="indexterm" href="#f_buffer-name">Function buffer-name</a></dt> 34030 <dt>buffer-pathname, <a class="indexterm" href="#f_buffer-pathname">Function buffer-pathname</a></dt> 34031 <dt>buffer-point, <a class="indexterm" href="#f_buffer-point">Function buffer-point</a></dt> 34032 <dt>buffer-region, <a class="indexterm" href="#f_buffer-region">Function buffer-region</a></dt> 34033 <dt>buffer-signature, <a class="indexterm" href="#f_buffer-signature">Function buffer-signature</a></dt> 34034 <dt>buffer-start, <a class="indexterm" href="#f_buffer-start">Function buffer-start</a></dt> 34035 <dt>buffer-start-mark, <a class="indexterm" href="#f_buffer-start-mark">Function buffer-start-mark</a></dt> 34036 <dt>buffer-variables, <a class="indexterm" href="#f_buffer-variables">Function buffer-variables</a></dt> 34037 <dt>buffer-writable, <a class="indexterm" href="#f_buffer-writable">Function buffer-writable</a></dt> 34038 <dt>buffer-write-date, <a class="indexterm" href="#f_buffer-write-date">Function buffer-write-date</a></dt> 34039 <dt>bufferp, <a class="indexterm" href="#f_bufferp">Function bufferp</a></dt> 23176 34040 </dl> 23177 34041 </div> … … 23180 34044 <dl> 23181 34045 <dt>CCL Logical Host, <a class="indexterm" href="#Predefined-Logical-Hosts">Predefined Logical Hosts</a></dt> 34046 <dt>char-key-event, <a class="indexterm" href="#f_char-key-event">Function char-key-event</a></dt> 34047 <dt>Character Attribute Hook, <a class="indexterm" href="#hv_character_attribute_hook">Hemlock Variable Character Attribute Hook</a></dt> 34048 <dt>Character Deletion Threshold, <a class="indexterm" href="#hv_character_deletion_threshold">Hemlock Variable Character Deletion Threshold</a></dt> 34049 <dt>character-attribute, <a class="indexterm" href="#f_character-attribute">Function character-attribute</a></dt> 34050 <dt>character-attribute-documentation, <a class="indexterm" href="#f_character-attribute-documentation">Function character-attribute-documentation</a></dt> 34051 <dt>character-attribute-hooks, <a class="indexterm" href="#f_character-attribute-hooks">Function character-attribute-hooks</a></dt> 34052 <dt>character-attribute-name, <a class="indexterm" href="#f_character-attribute-name">Function character-attribute-name</a></dt> 34053 <dt>character-attribute-p, <a class="indexterm" href="#f_character-attribute-p">Function character-attribute-p</a></dt> 34054 <dt>character-offset, <a class="indexterm" href="#f_character-offset">Function character-offset</a></dt> 34055 <dt>check-region-active, <a class="indexterm" href="#f_check-region-active">Function check-region-active</a></dt> 23182 34056 <dt>clear-coverage, <a class="indexterm" href="#f_clear-coverage">Function CLEAR-COVERAGE</a></dt> 34057 <dt>clear-echo-area, <a class="indexterm" href="#f_clear-echo-area">Function clear-echo-area</a></dt> 23183 34058 <dt>close, <a class="indexterm" href="#o_close">Method CLOSE</a></dt> 23184 34059 <dt>close-shared-library, <a class="indexterm" href="#f_close-shared-library">Function CLOSE-SHARED-LIBRARY</a></dt> 34060 <dt>clrstring, <a class="indexterm" href="#f_clrstring">Function clrstring</a></dt> 23185 34061 <dt>combine-coverage, <a class="indexterm" href="#f_combine-coverage">Function COMBINE-COVERAGE</a></dt> 34062 <dt>Command Abort Hook, <a class="indexterm" href="#hv_command_abort_hook">Hemlock Variable Command Abort Hook</a></dt> 34063 <dt>command-bindings, <a class="indexterm" href="#f_command-bindings">Function command-bindings</a></dt> 34064 <dt>command-case, <a class="indexterm" href="#m_command-case">Macro command-case</a></dt> 34065 <dt>command-documentation, <a class="indexterm" href="#f_command-documentation">Function command-documentation</a></dt> 34066 <dt>command-function, <a class="indexterm" href="#f_command-function">Function command-function</a></dt> 34067 <dt>command-name, <a class="indexterm" href="#f_command-name">Function command-name</a></dt> 34068 <dt>commandp, <a class="indexterm" href="#f_commandp">Function commandp</a></dt> 23186 34069 <dt>communication-deadline-expired, <a class="indexterm" href="#Stream-Timeouts-And-Deadlines">Stream Timeouts and Deadlines</a></dt> 34070 <dt>Complete Field, <a class="indexterm" href="#c_complete_field">Command Complete Field</a></dt> 34071 <dt>Complete Keyword, <a class="indexterm" href="#c_complete_keyword">Command Complete Keyword</a></dt> 34072 <dt>complete-string, <a class="indexterm" href="#f_complete-string">Function complete-string</a></dt> 23187 34073 <dt>configure-gcc, <a class="indexterm" href="#f_configure-gcc">Function CONFIGURE-GCC</a></dt> 34074 <dt>Confirm Parse, <a class="indexterm" href="#c_confirm_parse">Command Confirm Parse</a></dt> 34075 <dt>copy-mark, <a class="indexterm" href="#f_copy-mark">Function copy-mark</a></dt> 34076 <dt>copy-region, <a class="indexterm" href="#f_copy-region">Function copy-region</a></dt> 34077 <dt>count-characters, <a class="indexterm" href="#f_count-characters">Function count-characters</a></dt> 23188 34078 <dt>count-characters-in-octet-vector, <a class="indexterm" href="#count-characters-in-octet-vector">Function count-characters-in-octet-vector</a></dt> 34079 <dt>count-lines, <a class="indexterm" href="#f_count-lines">Function count-lines</a></dt> 23189 34080 <dt>coverage-statistics, <a class="indexterm" href="#f_coverage-statistics">Function COVERAGE-STATISTICS</a></dt> 34081 <dt>current-buffer, <a class="indexterm" href="#f_current-buffer">Function current-buffer</a></dt> 23190 34082 <dt>current-directory-name, <a class="indexterm" href="#f_current-directory-name">Function CCL::CURRENT-DIRECTORY-NAME</a></dt> 34083 <dt>current-mark, <a class="indexterm" href="#f_current-mark">Function current-mark</a></dt> 34084 <dt>current-point, <a class="indexterm" href="#f_current-point">Function current-point</a></dt> 34085 <dt>current-point-collapsing-selection, <a class="indexterm" href="#f_current-point-collapsing-selection">Function current-point-collapsing-selection</a></dt> 34086 <dt>current-point-extending-selection, <a class="indexterm" href="#f_current-point-extending-selection">Function current-point-extending-selection</a></dt> 34087 <dt>current-point-for-deletion, <a class="indexterm" href="#f_current-point-for-deletion">Function current-point-for-deletion</a></dt> 34088 <dt>current-point-for-insertion, <a class="indexterm" href="#f_current-point-for-insertion">Function current-point-for-insertion</a></dt> 34089 <dt>current-point-unless-selection, <a class="indexterm" href="#f_current-point-unless-selection">Function current-point-unless-selection</a></dt> 34090 <dt>current-region, <a class="indexterm" href="#f_current-region">Function current-region</a></dt> 34091 <dt>current-variable-tables, <a class="indexterm" href="#f_current-variable-tables">Function current-variable-tables</a></dt> 34092 <dt>current-view, <a class="indexterm" href="#f_current-view">Function current-view</a></dt> 23191 34093 </dl> 23192 34094 </div> … … 23194 34096 <h3>D</h3> 23195 34097 <dl> 34098 <dt>deactivate-region, <a class="indexterm" href="#f_deactivate-region">Function deactivate-region</a></dt> 23196 34099 <dt>def-foreign-type, <a class="indexterm" href="#m_def-foreign-type">Macro DEF-FOREIGN-TYPE</a></dt> 34100 <dt>defattribute, <a class="indexterm" href="#f_defattribute">Function defattribute</a></dt> 34101 <dt>Default Modeline Fields, <a class="indexterm" href="#hv_default_modeline_fields">Hemlock Variable Default Modeline Fields</a></dt> 34102 <dt>Default Modes, <a class="indexterm" href="#hv_default_modes">Hemlock Variable Default Modes</a></dt> 23197 34103 <dt>defcallback, <a class="indexterm" href="#m_defcallback">Macro DEFCALLBACK</a></dt> 34104 <dt>defcommand, <a class="indexterm" href="#m_defcommand">Macro defcommand</a></dt> 34105 <dt>defhvar, <a class="indexterm" href="#f_defhvar">Function defhvar</a></dt> 34106 <dt>defindent, <a class="indexterm" href="#f_defindent">Function defindent</a></dt> 34107 <dt>define-file-option, <a class="indexterm" href="#m_define-file-option">Macro define-file-option</a></dt> 34108 <dt>define-file-type-hook, <a class="indexterm" href="#m_define-file-type-hook">Macro define-file-type-hook</a></dt> 34109 <dt>define-key-event-modifier, <a class="indexterm" href="#f_define-key-event-modifier">Function define-key-event-modifier</a></dt> 34110 <dt>define-keysym, <a class="indexterm" href="#f_define-keysym">Function define-keysym</a></dt> 34111 <dt>define-keysym-code, <a class="indexterm" href="#f_define-keysym-code">Function define-keysym-code</a></dt> 34112 <dt>define-logical-key-event, <a class="indexterm" href="#f_define-logical-key-event">Function define-logical-key-event</a></dt> 34113 <dt>define-mouse-keysym, <a class="indexterm" href="#f_define-mouse-keysym">Function define-mouse-keysym</a></dt> 23198 34114 <dt>define-objc-class-method, <a class="indexterm" href="#m_define-objc-class-method">Macro CCL::DEFINE-OBJC-CLASS-METHOD</a></dt> 23199 34115 <dt>define-objc-method, <a class="indexterm" href="#m_define-objc-method">Macro CCL::DEFINE-OBJC-METHOD</a></dt> 34116 <dt>defmode, <a class="indexterm" href="#f_defmode">Function defmode</a></dt> 34117 <dt>Defun Parse Goal, <a class="indexterm" href="#hv_defun_parse_goal">Hemlock Variable Defun Parse Goal</a></dt> 34118 <dt>defun-region, <a class="indexterm" href="#f_defun-region">Function defun-region</a></dt> 34119 <dt>Delete Buffer Hook, <a class="indexterm" href="#hv_delete_buffer_hook">Hemlock Variable Delete Buffer Hook</a></dt> 34120 <dt>Delete Variable Hook, <a class="indexterm" href="#hv_delete_variable_hook">Hemlock Variable Delete Variable Hook</a></dt> 34121 <dt>delete-and-save-region, <a class="indexterm" href="#f_delete-and-save-region">Function delete-and-save-region</a></dt> 34122 <dt>delete-buffer, <a class="indexterm" href="#f_delete-buffer">Function delete-buffer</a></dt> 34123 <dt>delete-characters, <a class="indexterm" href="#f_delete-characters">Function delete-characters</a></dt> 34124 <dt>delete-horizontal-space, <a class="indexterm" href="#f_delete-horizontal-space">Function delete-horizontal-space</a></dt> 34125 <dt>delete-key-binding, <a class="indexterm" href="#f_delete-key-binding">Function delete-key-binding</a></dt> 34126 <dt>delete-mark, <a class="indexterm" href="#f_delete-mark">Function delete-mark</a></dt> 34127 <dt>delete-region, <a class="indexterm" href="#f_delete-region">Function delete-region</a></dt> 34128 <dt>delete-string, <a class="indexterm" href="#f_delete-string">Function delete-string</a></dt> 34129 <dt>delete-variable, <a class="indexterm" href="#f_delete-variable">Function delete-variable</a></dt> 34130 <dt>do-alpha-chars, <a class="indexterm" href="#m_do-alpha-chars">Macro do-alpha-chars</a></dt> 34131 <dt>do-alpha-key-events, <a class="indexterm" href="#m_do-alpha-key-events">Macro do-alpha-key-events</a></dt> 34132 <dt>do-strings, <a class="indexterm" href="#m_do-strings">Macro do-strings</a></dt> 23200 34133 <dt>dotted-to-ipaddr, <a class="indexterm" href="#f_dotted-to-ipaddr">Function DOTTED-TO-IPADDR</a></dt> 23201 34134 </dl> … … 23204 34137 <h3>E</h3> 23205 34138 <dl> 34139 <dt>ed, <a class="indexterm" href="#f_ed">Function ed</a></dt> 34140 <dt>edit-definition, <a class="indexterm" href="#f_edit-definition">Function edit-definition</a></dt> 34141 <dt>editor-error, <a class="indexterm" href="#f_editor-error">Function editor-error</a></dt> 23206 34142 <dt>egc, <a class="indexterm" href="#f_egc">Function EGC</a></dt> 23207 34143 <dt>egc-active-p, <a class="indexterm" href="#f_egc-active-p">Function EGC-ACTIVE-P</a></dt> … … 23209 34145 <dt>egc-enabled-p, <a class="indexterm" href="#f_egc-enabled-p">Function EGC-ENABLED-P</a></dt> 23210 34146 <dt>encode-string-to-octets, <a class="indexterm" href="#encode-string-to-octets">Function encode-string-to-octets</a></dt> 34147 <dt>end-line-p, <a class="indexterm" href="#f_end-line-p">Function end-line-p</a></dt> 23211 34148 <dt>external, <a class="indexterm" href="#m_external">Macro EXTERNAL</a></dt> 23212 34149 <dt>external-call, <a class="indexterm" href="#m_external-call">Macro EXTERNAL-CALL</a></dt> … … 23225 34162 <dt>fasl-concatenate, <a class="indexterm" href="#f_fasl-concatenate">Function FASL-CONCATENATE</a></dt> 23226 34163 <dt>ff-call, <a class="indexterm" href="#m_ff-call">Macro FF-CALL</a></dt> 34164 <dt>Fill Column, <a class="indexterm" href="#hv_fill_column">Hemlock Variable Fill Column</a></dt> 34165 <dt>Fill Prefix, <a class="indexterm" href="#hv_fill_prefix">Hemlock Variable Fill Prefix</a></dt> 34166 <dt>fill-region, <a class="indexterm" href="#f_fill-region">Function fill-region</a></dt> 34167 <dt>fill-region-by-paragraphs, <a class="indexterm" href="#f_fill-region-by-paragraphs">Function fill-region-by-paragraphs</a></dt> 34168 <dt>filter-region, <a class="indexterm" href="#f_filter-region">Function filter-region</a></dt> 34169 <dt>find-ambiguous, <a class="indexterm" href="#f_find-ambiguous">Function find-ambiguous</a></dt> 34170 <dt>find-attribute, <a class="indexterm" href="#f_find-attribute">Function find-attribute</a></dt> 34171 <dt>find-containing, <a class="indexterm" href="#f_find-containing">Function find-containing</a></dt> 34172 <dt>find-not-attribute, <a class="indexterm" href="#f_find-not-attribute">Function find-not-attribute</a></dt> 34173 <dt>find-pattern, <a class="indexterm" href="#f_find-pattern">Function find-pattern</a></dt> 34174 <dt>first-line-p, <a class="indexterm" href="#f_first-line-p">Function first-line-p</a></dt> 23227 34175 <dt>foreign-symbol-address, <a class="indexterm" href="#f_foreign-symbol-address">Function FOREIGN-SYMBOL-ADDRESS</a></dt> 23228 34176 <dt>foreign-symbol-entry, <a class="indexterm" href="#f_foreign-symbol-entry">Function FOREIGN-SYMBOL-ENTRY</a></dt> 34177 <dt>form-offset, <a class="indexterm" href="#f_form-offset">Function form-offset</a></dt> 34178 <dt>forward-up-list, <a class="indexterm" href="#f_forward-up-list">Function forward-up-list</a></dt> 23229 34179 <dt>free, <a class="indexterm" href="#f_free">Function FREE</a></dt> 23230 34180 </dl> … … 23235 34185 <dt>gc-retain-pages, <a class="indexterm" href="#f_gc-retain-pages">Function GC-RETAIN-PAGES</a></dt> 23236 34186 <dt>gc-retaining-pages, <a class="indexterm" href="#f_gc-retaining-pages">Function GC-RETAINING-PAGES</a></dt> 34187 <dt>get-command, <a class="indexterm" href="#f_get-command">Function get-command</a></dt> 34188 <dt>get-coverage, <a class="indexterm" href="#f_get-coverage">Function GET-COVERAGE</a></dt> 23237 34189 <dt>get-fpu-mode, <a class="indexterm" href="#f_get-fpu-mode">Function GET-FPU-MODE</a></dt> 34190 <dt>get-incremental-coverage, <a class="indexterm" href="#f_get-incremental-coverage">Function GET-INCREMENTAL-COVERAGE</a></dt> 34191 <dt>get-search-pattern, <a class="indexterm" href="#f_get-search-pattern">Function get-search-pattern</a></dt> 23238 34192 <dt>get-user-home-dir, <a class="indexterm" href="#f_get-user-home-dir">Function CCL::GET-USER-HOME-DIR</a></dt> 23239 34193 <dt>getenv, <a class="indexterm" href="#f_getenv">Function CCL::GETENV</a></dt> 23240 34194 <dt>getpid, <a class="indexterm" href="#f_getpid">Function CCL::GETPID</a></dt> 34195 <dt>getstring, <a class="indexterm" href="#f_getstring">Function getstring</a></dt> 23241 34196 <dt>getuid, <a class="indexterm" href="#f_getuid">Function CCL::GETUID</a></dt> 23242 34197 <dt>grab-lock, <a class="indexterm" href="#f_grab-lock">Function GRAB-LOCK</a></dt> … … 23246 34201 <h3>H</h3> 23247 34202 <dl> 34203 <dt>handle-lisp-errors, <a class="indexterm" href="#m_handle-lisp-errors">Macro handle-lisp-errors</a></dt> 23248 34204 <dt>heap 23249 34205 image, <a class="indexterm" href="#building-definitions">Building Definitions</a></dt> 34206 <dt>Help On Parse, <a class="indexterm" href="#c_help_on_parse">Command Help On Parse</a></dt> 34207 <dt>hemlock-bound-p, <a class="indexterm" href="#f_hemlock-bound-p">Function hemlock-bound-p</a></dt> 34208 <dt>hemlock-output-stream-p, <a class="indexterm" href="#f_hemlock-output-stream-p">Function hemlock-output-stream-p</a></dt> 34209 <dt>hemlock-region-stream-p, <a class="indexterm" href="#f_hemlock-region-stream-p">Function hemlock-region-stream-p</a></dt> 34210 <dt>hemlock-view-buffer, <a class="indexterm" href="#f_hemlock-view-buffer">Function hemlock-view-buffer</a></dt> 34211 <dt>hemlock-view-p, <a class="indexterm" href="#f_hemlock-view-p">Function hemlock-view-p</a></dt> 34212 <dt>hlet, <a class="indexterm" href="#m_hlet">Macro hlet</a></dt> 23250 34213 </dl> 23251 34214 </div> … … 23253 34216 <h3>I</h3> 23254 34217 <dl> 34218 <dt>Illegal, <a class="indexterm" href="#c_illegal">Command Illegal</a></dt> 34219 <dt>in-lisp, <a class="indexterm" href="#f_in-lisp">Function in-lisp</a></dt> 34220 <dt>incremental-coverage-source-matches, <a class="indexterm" href="#f_incremental-coverage-source-matches">Function INCREMENTAL-COVERAGE-SOURCE-MATCHES</a></dt> 34221 <dt>incremental-coverage-svn-matches, <a class="indexterm" href="#f_incremental-coverage-svn-matches">Function INCREMENTAL-COVERAGE-SVN-MATCHES</a></dt> 34222 <dt>Indent Function, <a class="indexterm" href="#hv_indent_function">Hemlock Variable Indent Function</a></dt> 34223 <dt>Indent with Tabs, <a class="indexterm" href="#hv_indent_with_tabs">Hemlock Variable Indent with Tabs</a></dt> 34224 <dt>indent-region, <a class="indexterm" href="#f_indent-region">Function indent-region</a></dt> 34225 <dt>indent-region-for-commands, <a class="indexterm" href="#f_indent-region-for-commands">Function indent-region-for-commands</a></dt> 23255 34226 <dt>input-timeout, <a class="indexterm" href="#Stream-Timeouts-And-Deadlines">Stream Timeouts and Deadlines</a></dt> 34227 <dt>insert-character, <a class="indexterm" href="#f_insert-character">Function insert-character</a></dt> 34228 <dt>insert-region, <a class="indexterm" href="#f_insert-region">Function insert-region</a></dt> 34229 <dt>insert-string, <a class="indexterm" href="#f_insert-string">Function insert-string</a></dt> 34230 <dt>inside-defun-p, <a class="indexterm" href="#f_inside-defun-p">Function inside-defun-p</a></dt> 34231 <dt>invoke-hook, <a class="indexterm" href="#m_invoke-hook">Macro invoke-hook</a></dt> 23256 34232 <dt>ipaddr-to-dotted, <a class="indexterm" href="#f_ipaddr-to-dotted">Function IPADDR-TO-DOTTED</a></dt> 23257 34233 <dt>ipaddr-to-hostname, <a class="indexterm" href="#f_ipaddr-to-hostname">Function IPADDR-TO-HOSTNAME</a></dt> … … 23267 34243 <h3>K</h3> 23268 34244 <dl> 34245 <dt>Keep Backup Files, <a class="indexterm" href="#hv_keep_backup_files">Hemlock Variable Keep Backup Files</a></dt> 23269 34246 <dt>kernel build directory, <a class="indexterm" href="#building-definitions">Building Definitions</a></dt> 34247 <dt>key-event-bit-p, <a class="indexterm" href="#f_key-event-bit-p">Function key-event-bit-p</a></dt> 34248 <dt>key-event-bits, <a class="indexterm" href="#f_key-event-bits">Function key-event-bits</a></dt> 34249 <dt>key-event-bits-modifiers, <a class="indexterm" href="#f_key-event-bits-modifiers">Function key-event-bits-modifiers</a></dt> 34250 <dt>key-event-char, <a class="indexterm" href="#f_key-event-char">Function key-event-char</a></dt> 34251 <dt>key-event-keysym, <a class="indexterm" href="#f_key-event-keysym">Function key-event-keysym</a></dt> 34252 <dt>key-event-modifier-mask, <a class="indexterm" href="#f_key-event-modifier-mask">Function key-event-modifier-mask</a></dt> 34253 <dt>key-event-p, <a class="indexterm" href="#f_key-event-p">Function key-event-p</a></dt> 34254 <dt>key-translation, <a class="indexterm" href="#f_key-translation">Function key-translation</a></dt> 34255 <dt>keysym-names, <a class="indexterm" href="#f_keysym-names">Function keysym-names</a></dt> 34256 <dt>keysym-preferred-name, <a class="indexterm" href="#f_keysym-preferred-name">Function keysym-preferred-name</a></dt> 34257 <dt>kill-characters, <a class="indexterm" href="#f_kill-characters">Function kill-characters</a></dt> 34258 <dt>kill-region, <a class="indexterm" href="#f_kill-region">Function kill-region</a></dt> 23270 34259 </dl> 23271 34260 </div> … … 23273 34262 <h3>L</h3> 23274 34263 <dl> 34264 <dt>Last Resort Pathname Defaults, <a class="indexterm" href="#hv_last_resort_pathname_defaults">Hemlock Variable Last Resort Pathname Defaults</a></dt> 34265 <dt>Last Resort Pathname Defaults Function, <a class="indexterm" href="#hv_last_resort_pathname_defaults_function">Hemlock Variable Last Resort Pathname Defaults Function</a></dt> 34266 <dt>last-char-typed, <a class="indexterm" href="#f_last-char-typed">Function last-char-typed</a></dt> 34267 <dt>last-command-type, <a class="indexterm" href="#f_last-command-type">Function last-command-type</a></dt> 34268 <dt>last-key-event-typed, <a class="indexterm" href="#f_last-key-event-typed">Function last-key-event-typed</a></dt> 34269 <dt>last-line-p, <a class="indexterm" href="#f_last-line-p">Function last-line-p</a></dt> 34270 <dt>line-buffer, <a class="indexterm" href="#f_line-buffer">Function line-buffer</a></dt> 34271 <dt>line-character, <a class="indexterm" href="#f_line-character">Function line-character</a></dt> 34272 <dt>line-end, <a class="indexterm" href="#f_line-end">Function line-end</a></dt> 34273 <dt>line-length, <a class="indexterm" href="#f_line-length">Function line-length</a></dt> 34274 <dt>line-next, <a class="indexterm" href="#f_line-next">Function line-next</a></dt> 34275 <dt>line-offset, <a class="indexterm" href="#f_line-offset">Function line-offset</a></dt> 34276 <dt>line-plist, <a class="indexterm" href="#f_line-plist">Function line-plist</a></dt> 34277 <dt>line-previous, <a class="indexterm" href="#f_line-previous">Function line-previous</a></dt> 34278 <dt>line-signature, <a class="indexterm" href="#f_line-signature">Function line-signature</a></dt> 34279 <dt>line-start, <a class="indexterm" href="#f_line-start">Function line-start</a></dt> 34280 <dt>line-string, <a class="indexterm" href="#f_line-string">Function line-string</a></dt> 34281 <dt>line-to-region, <a class="indexterm" href="#f_line-to-region">Function line-to-region</a></dt> 34282 <dt>line<, <a class="indexterm" href="#f_line_lt">Function line<</a></dt> 34283 <dt>line<=, <a class="indexterm" href="#f_line_lt__eq">Function line<=</a></dt> 34284 <dt>line>, <a class="indexterm" href="#f_line_gt">Function line></a></dt> 34285 <dt>line>=, <a class="indexterm" href="#f_line_gt__eq">Function line>=</a></dt> 34286 <dt>linep, <a class="indexterm" href="#f_linep">Function linep</a></dt> 34287 <dt>lines-related, <a class="indexterm" href="#f_lines-related">Function lines-related</a></dt> 23275 34288 <dt>lisp 23276 34289 kernel, <a class="indexterm" href="#building-definitions">Building Definitions</a></dt> … … 23278 34291 <dt>local-host, <a class="indexterm" href="#f_local-host">Function LOCAL-HOST</a></dt> 23279 34292 <dt>local-port, <a class="indexterm" href="#f_local-port">Function LOCAL-PORT</a></dt> 34293 <dt>logical-key-event-documentation, <a class="indexterm" href="#f_logical-key-event-documentation">Function logical-key-event-documentation</a></dt> 34294 <dt>logical-key-event-key-events, <a class="indexterm" href="#f_logical-key-event-key-events">Function logical-key-event-key-events</a></dt> 34295 <dt>logical-key-event-name, <a class="indexterm" href="#f_logical-key-event-name">Function logical-key-event-name</a></dt> 34296 <dt>logical-key-event-p, <a class="indexterm" href="#f_logical-key-event-p">Function logical-key-event-p</a></dt> 23280 34297 <dt>lookup-hostname, <a class="indexterm" href="#f_lookup-hostname">Function LOOKUP-HOSTNAME</a></dt> 23281 34298 <dt>lookup-port, <a class="indexterm" href="#f_lookup-port">Function LOOKUP-PORT</a></dt> 34299 <dt>loud-message, <a class="indexterm" href="#f_loud-message">Function loud-message</a></dt> 23282 34300 </dl> 23283 34301 </div> … … 23285 34303 <h3>M</h3> 23286 34304 <dl> 34305 <dt>Make Buffer Hook, <a class="indexterm" href="#hv_make_buffer_hook">Hemlock Variable Make Buffer Hook</a></dt> 34306 <dt>make-buffer, <a class="indexterm" href="#f_make-buffer">Function make-buffer</a></dt> 34307 <dt>make-command, <a class="indexterm" href="#f_make-command">Function make-command</a></dt> 34308 <dt>make-empty-region, <a class="indexterm" href="#f_make-empty-region">Function make-empty-region</a></dt> 23287 34309 <dt>make-external-format, <a class="indexterm" href="#f_make-external-format">Function MAKE-EXTERNAL-FORMAT</a></dt> 23288 34310 <dt>make-gcable-record, <a class="indexterm" href="#m_make-record">Macro MAKE-RECORD</a></dt> 23289 34311 <dt>make-heap-ivector, <a class="indexterm" href="#f_make-heap-ivector">Function MAKE-HEAP-IVECTOR</a></dt> 34312 <dt>make-hemlock-output-stream, <a class="indexterm" href="#f_make-hemlock-output-stream">Function make-hemlock-output-stream</a></dt> 34313 <dt>make-hemlock-region-stream, <a class="indexterm" href="#f_make-hemlock-region-stream">Function make-hemlock-region-stream</a></dt> 34314 <dt>make-key-event, <a class="indexterm" href="#f_make-key-event">Function make-key-event</a></dt> 34315 <dt>make-key-event-bits, <a class="indexterm" href="#f_make-key-event-bits">Function make-key-event-bits</a></dt> 23290 34316 <dt>make-lock, <a class="indexterm" href="#f_make-lock">Function MAKE-LOCK</a></dt> 34317 <dt>make-modeline-field, <a class="indexterm" href="#f_make-modeline-field">Function make-modeline-field</a></dt> 23291 34318 <dt>make-population, <a class="indexterm" href="#f_make-population">Function MAKE-POPULATION</a></dt> 23292 34319 <dt>make-process, <a class="indexterm" href="#f_make-process">Function MAKE-PROCESS</a></dt> 23293 34320 <dt>make-read-write-lock, <a class="indexterm" href="#f_make-read-write-lock">Function MAKE-READ-WRITE-LOCK</a></dt> 23294 34321 <dt>make-record, <a class="indexterm" href="#m_make-record">Macro MAKE-RECORD</a></dt> 34322 <dt>make-ring, <a class="indexterm" href="#f_make-ring">Function make-ring</a></dt> 23295 34323 <dt>make-semaphore, <a class="indexterm" href="#f_make-semaphore">Function MAKE-SEMAPHORE</a></dt> 23296 34324 <dt>make-socket, <a class="indexterm" href="#f_make-socket">Function MAKE-SOCKET</a></dt> 34325 <dt>make-string-table, <a class="indexterm" href="#f_make-string-table">Function make-string-table</a></dt> 34326 <dt>map-bindings, <a class="indexterm" href="#f_map-bindings">Function map-bindings</a></dt> 34327 <dt>mark, <a class="indexterm" href="#f_mark">Function mark</a></dt> 34328 <dt>mark-absolute-position, <a class="indexterm" href="#f_mark-absolute-position">Function mark-absolute-position</a></dt> 34329 <dt>mark-after, <a class="indexterm" href="#f_mark-after">Function mark-after</a></dt> 34330 <dt>mark-before, <a class="indexterm" href="#f_mark-before">Function mark-before</a></dt> 34331 <dt>mark-buffer, <a class="indexterm" href="#f_mark-buffer">Function mark-buffer</a></dt> 34332 <dt>mark-charpos, <a class="indexterm" href="#f_mark-charpos">Function mark-charpos</a></dt> 34333 <dt>mark-column, <a class="indexterm" href="#f_mark-column">Function mark-column</a></dt> 34334 <dt>mark-kind, <a class="indexterm" href="#f_mark-kind">Function mark-kind</a></dt> 34335 <dt>mark-line, <a class="indexterm" href="#f_mark-line">Function mark-line</a></dt> 34336 <dt>mark-paragraph, <a class="indexterm" href="#f_mark-paragraph">Function mark-paragraph</a></dt> 34337 <dt>mark-top-level-form, <a class="indexterm" href="#f_mark-top-level-form">Function mark-top-level-form</a></dt> 34338 <dt>mark/=, <a class="indexterm" href="#f_mark__eq">Function mark/=</a></dt> 34339 <dt>mark<, <a class="indexterm" href="#f_mark_lt">Function mark<</a></dt> 34340 <dt>mark<=, <a class="indexterm" href="#f_mark_lt__eq">Function mark<=</a></dt> 34341 <dt>mark=, <a class="indexterm" href="#f_mark_eq">Function mark=</a></dt> 34342 <dt>mark>, <a class="indexterm" href="#f_mark_gt">Function mark></a></dt> 34343 <dt>mark>=, <a class="indexterm" href="#f_mark_gt__eq">Function mark>=</a></dt> 34344 <dt>markp, <a class="indexterm" href="#f_markp">Function markp</a></dt> 34345 <dt>Maximum Lines Parsed, <a class="indexterm" href="#hv_maximum_lines_parsed">Hemlock Variable Maximum Lines Parsed</a></dt> 34346 <dt>message, <a class="indexterm" href="#f_message">Function message</a></dt> 34347 <dt>Minimum Lines Parsed, <a class="indexterm" href="#hv_minimum_lines_parsed">Hemlock Variable Minimum Lines Parsed</a></dt> 34348 <dt>mode-documentation, <a class="indexterm" href="#f_mode-documentation">Function mode-documentation</a></dt> 34349 <dt>mode-major-p, <a class="indexterm" href="#f_mode-major-p">Function mode-major-p</a></dt> 34350 <dt>mode-variables, <a class="indexterm" href="#f_mode-variables">Function mode-variables</a></dt> 34351 <dt>modeline-field, <a class="indexterm" href="#f_modeline-field">Function modeline-field</a></dt> 34352 <dt>modeline-field-function, <a class="indexterm" href="#f_modeline-field-function">Function modeline-field-function</a></dt> 34353 <dt>modeline-field-name, <a class="indexterm" href="#f_modeline-field-name">Function modeline-field-name</a></dt> 34354 <dt>modeline-field-p, <a class="indexterm" href="#f_modeline-field-p">Function modeline-field-p</a></dt> 34355 <dt>modeline-field-width, <a class="indexterm" href="#f_modeline-field-width">Function modeline-field-width</a></dt> 34356 <dt>move-mark, <a class="indexterm" href="#f_move-mark">Function move-mark</a></dt> 34357 <dt>move-to-absolute-position, <a class="indexterm" href="#f_move-to-absolute-position">Function move-to-absolute-position</a></dt> 34358 <dt>move-to-column, <a class="indexterm" href="#f_move-to-column">Function move-to-column</a></dt> 34359 <dt>move-to-position, <a class="indexterm" href="#f_move-to-position">Function move-to-position</a></dt> 23297 34360 </dl> 23298 34361 </div> … … 23300 34363 <h3>N</h3> 23301 34364 <dl> 34365 <dt>name-keysym, <a class="indexterm" href="#f_name-keysym">Function name-keysym</a></dt> 23302 34366 <dt>native-translated-namestring, <a class="indexterm" href="#f_native-translated-namestring">Function native-translated-namestring</a></dt> 34367 <dt>new-search-pattern, <a class="indexterm" href="#f_new-search-pattern">Function new-search-pattern</a></dt> 34368 <dt>next-character, <a class="indexterm" href="#f_next-character">Function next-character</a></dt> 34369 <dt>ninsert-region, <a class="indexterm" href="#f_ninsert-region">Function ninsert-region</a></dt> 23303 34370 <dt>note-open-file-stream, <a class="indexterm" href="#f_note-open-file-stream">Function NOTE-OPEN-FILE-STREAM</a></dt> 23304 34371 <dt>ns-lisp-string, <a class="indexterm" href="#c_ns-lisp-string">Class CCL::NS-LISP-STRING</a></dt> … … 23318 34385 <h3>P</h3> 23319 34386 <dl> 34387 <dt>Paragraph Delimiter Function, <a class="indexterm" href="#hv_paragraph_delimiter_function">Hemlock Variable Paragraph Delimiter Function</a></dt> 34388 <dt>paragraph-offset, <a class="indexterm" href="#f_paragraph-offset">Function paragraph-offset</a></dt> 34389 <dt>Parse End Function, <a class="indexterm" href="#hv_parse_end_function">Hemlock Variable Parse End Function</a></dt> 34390 <dt>Parse Start Function, <a class="indexterm" href="#hv_parse_start_function">Hemlock Variable Parse Start Function</a></dt> 34391 <dt>parse-for-something, <a class="indexterm" href="#f_parse-for-something">Function parse-for-something</a></dt> 34392 <dt>Pathname Defaults, <a class="indexterm" href="#hv_pathname_defaults">Hemlock Variable Pathname Defaults</a></dt> 34393 <dt>pathname-to-buffer-name, <a class="indexterm" href="#f_pathname-to-buffer-name">Function pathname-to-buffer-name</a></dt> 34394 <dt>pop-buffer-mark, <a class="indexterm" href="#f_pop-buffer-mark">Function pop-buffer-mark</a></dt> 23320 34395 <dt>population-contents, <a class="indexterm" href="#f_population-contents">Function POPULATION-CONTENTS</a></dt> 23321 34396 <dt>population-type, <a class="indexterm" href="#f_population-type">Function POPULATION-TYPE</a></dt> 34397 <dt>pre-command-parse-check, <a class="indexterm" href="#f_pre-command-parse-check">Function pre-command-parse-check</a></dt> 23322 34398 <dt>pref, <a class="indexterm" href="#m_pref">Macro PREF</a></dt> 34399 <dt>prefix-argument, <a class="indexterm" href="#f_prefix-argument">Function prefix-argument</a></dt> 34400 <dt>pretty-key-string, <a class="indexterm" href="#f_pretty-key-string">Function pretty-key-string</a></dt> 34401 <dt>previous-character, <a class="indexterm" href="#f_previous-character">Function previous-character</a></dt> 23323 34402 <dt>process-abort, <a class="indexterm" href="#f_process-abort">Function PROCESS-ABORT</a></dt> 23324 34403 <dt>process-allow-schedule, <a class="indexterm" href="#f_process-allow-schedule">Function PROCESS-ALLOW-SCHEDULE</a></dt> 23325 34404 <dt>process-enable, <a class="indexterm" href="#f_process-enable">Function PROCESS-ENABLE</a></dt> 34405 <dt>process-file-options, <a class="indexterm" href="#f_process-file-options">Function process-file-options</a></dt> 23326 34406 <dt>process-input-wait, <a class="indexterm" href="#f_process-input-wait">Function PROCESS-INPUT-WAIT</a></dt> 23327 34407 <dt>process-interrupt, <a class="indexterm" href="#f_process-interrupt">Function PROCESS-INTERRUPT</a></dt> … … 23338 34418 <dt>process-wait-with-timeout, <a class="indexterm" href="#f_process-wait-with-timeout">Function PROCESS-WAIT-WITH-TIMEOUT</a></dt> 23339 34419 <dt>process-whostate, <a class="indexterm" href="#f_process-whostate">Function PROCESS-WHOSTATE</a></dt> 34420 <dt>prompt-for-buffer, <a class="indexterm" href="#f_prompt-for-buffer">Function prompt-for-buffer</a></dt> 34421 <dt>prompt-for-expression, <a class="indexterm" href="#f_prompt-for-expression">Function prompt-for-expression</a></dt> 34422 <dt>prompt-for-file, <a class="indexterm" href="#f_prompt-for-file">Function prompt-for-file</a></dt> 34423 <dt>prompt-for-integer, <a class="indexterm" href="#f_prompt-for-integer">Function prompt-for-integer</a></dt> 34424 <dt>prompt-for-key, <a class="indexterm" href="#f_prompt-for-key">Function prompt-for-key</a></dt> 34425 <dt>prompt-for-key-event, <a class="indexterm" href="#f_prompt-for-key-event">Function prompt-for-key-event</a></dt> 34426 <dt>prompt-for-keyword, <a class="indexterm" href="#f_prompt-for-keyword">Function prompt-for-keyword</a></dt> 34427 <dt>prompt-for-string, <a class="indexterm" href="#f_prompt-for-string">Function prompt-for-string</a></dt> 34428 <dt>prompt-for-variable, <a class="indexterm" href="#f_prompt-for-variable">Function prompt-for-variable</a></dt> 34429 <dt>prompt-for-y-or-n, <a class="indexterm" href="#f_prompt-for-y-or-n">Function prompt-for-y-or-n</a></dt> 34430 <dt>prompt-for-yes-or-no, <a class="indexterm" href="#f_prompt-for-yes-or-no">Function prompt-for-yes-or-no</a></dt> 34431 <dt>push-buffer-mark, <a class="indexterm" href="#f_push-buffer-mark">Function push-buffer-mark</a></dt> 34432 <dt>push-new-buffer-mark, <a class="indexterm" href="#f_push-new-buffer-mark">Function push-new-buffer-mark</a></dt> 23340 34433 </dl> 23341 34434 </div> … … 23349 34442 <h3>R</h3> 23350 34443 <dl> 34444 <dt>Read File Hook, <a class="indexterm" href="#hv_read_file_hook">Hemlock Variable Read File Hook</a></dt> 34445 <dt>read-buffer-file, <a class="indexterm" href="#f_read-buffer-file">Function read-buffer-file</a></dt> 23351 34446 <dt>read-coverage-from-file, <a class="indexterm" href="#f_read-coverage-from-file">Function READ-COVERAGE-FROM-FILE</a></dt> 34447 <dt>read-file, <a class="indexterm" href="#f_read-file">Function read-file</a></dt> 23352 34448 <dt>receive-from, <a class="indexterm" href="#f_receive-from">Function RECEIVE-FROM</a></dt> 34449 <dt>region, <a class="indexterm" href="#f_region">Function region</a></dt> 34450 <dt>region-active-p, <a class="indexterm" href="#f_region-active-p">Function region-active-p</a></dt> 34451 <dt>region-bounds, <a class="indexterm" href="#f_region-bounds">Function region-bounds</a></dt> 34452 <dt>region-end, <a class="indexterm" href="#f_region-end">Function region-end</a></dt> 34453 <dt>region-start, <a class="indexterm" href="#f_region-start">Function region-start</a></dt> 34454 <dt>region-to-string, <a class="indexterm" href="#f_region-to-string">Function region-to-string</a></dt> 34455 <dt>regionp, <a class="indexterm" href="#f_regionp">Function regionp</a></dt> 23353 34456 <dt>release-lock, <a class="indexterm" href="#f_release-lock">Function RELEASE-LOCK</a></dt> 23354 34457 <dt>remote-host, <a class="indexterm" href="#f_remote-host">Function REMOTE-HOST</a></dt> 23355 34458 <dt>remote-port, <a class="indexterm" href="#f_remote-port">Function REMOTE-PORT</a></dt> 34459 <dt>remove-hook, <a class="indexterm" href="#m_remove-hook">Macro remove-hook</a></dt> 23356 34460 <dt>remove-open-file-stream, <a class="indexterm" href="#f_remove-open-file-stream">Function REMOVE-OPEN-FILE-STREAM</a></dt> 34461 <dt>replace-pattern, <a class="indexterm" href="#f_replace-pattern">Function replace-pattern</a></dt> 23357 34462 <dt>report-coverage, <a class="indexterm" href="#f_report-coverage">Function REPORT-COVERAGE</a></dt> 23358 34463 <dt>request-terminal-input-via-break, <a class="indexterm" href="#v_request-terminal-input-via-break">Variable *REQUEST-TERMINAL-INPUT-VIA-BREAK*</a></dt> 23359 34464 <dt>reset-coverage, <a class="indexterm" href="#f_reset-coverage">Function RESET-COVERAGE</a></dt> 34465 <dt>reset-incremental-coverage, <a class="indexterm" href="#f_reset-incremental-coverage">Function RESET-INCREMENTAL-COVERAGE</a></dt> 23360 34466 <dt>restore-coverage, <a class="indexterm" href="#f_restore-coverage">Function RESTORE-COVERAGE</a></dt> 23361 34467 <dt>restore-coverage-from-file, <a class="indexterm" href="#f_restore-coverage-from-file">Function RESTORE-COVERAGE-FROM-FILE</a></dt> 34468 <dt>reverse-find-attribute, <a class="indexterm" href="#f_reverse-find-attribute">Function reverse-find-attribute</a></dt> 34469 <dt>reverse-find-not-attribute, <a class="indexterm" href="#f_reverse-find-not-attribute">Function reverse-find-not-attribute</a></dt> 34470 <dt>ring-length, <a class="indexterm" href="#f_ring-length">Function ring-length</a></dt> 34471 <dt>ring-pop, <a class="indexterm" href="#f_ring-pop">Function ring-pop</a></dt> 34472 <dt>ring-push, <a class="indexterm" href="#f_ring-push">Function ring-push</a></dt> 34473 <dt>ring-ref, <a class="indexterm" href="#f_ring-ref">Function ring-ref</a></dt> 34474 <dt>ringp, <a class="indexterm" href="#f_ringp">Function ringp</a></dt> 23362 34475 <dt>rlet, <a class="indexterm" href="#m_rlet">Macro RLET</a></dt> 23363 34476 <dt>rletz, <a class="indexterm" href="#m_rletz">Macro RLETZ</a></dt> 34477 <dt>rotate-ring, <a class="indexterm" href="#f_rotate-ring">Function rotate-ring</a></dt> 23364 34478 <dt>run-program, <a class="indexterm" href="#f_run-program">Function RUN-PROGRAM</a></dt> 23365 34479 </dl> … … 23368 34482 <h3>S</h3> 23369 34483 <dl> 34484 <dt>same-line-p, <a class="indexterm" href="#f_same-line-p">Function same-line-p</a></dt> 23370 34485 <dt>save-application, <a class="indexterm" href="#Saving-Applications">Saving Applications</a></dt> 23371 <dt>save-coverage, <a class="indexterm" href="#f_save-coverage">Function SAVE-COVERAGE</a></dt>23372 34486 <dt>save-coverage-in-file, <a class="indexterm" href="#f_save-coverage-in-file">Function SAVE-COVERAGE-IN-FILE</a></dt> 34487 <dt>search-pattern-p, <a class="indexterm" href="#f_search-pattern-p">Function search-pattern-p</a></dt> 23373 34488 <dt>send-to, <a class="indexterm" href="#f_send-to">Function SEND-TO</a></dt> 34489 <dt>sentence-offset, <a class="indexterm" href="#f_sentence-offset">Function sentence-offset</a></dt> 23374 34490 <dt>set-development-environment, <a class="indexterm" href="#f_set-development-environment">Function SET-DEVELOPMENT-ENVIRONMENT</a></dt> 23375 34491 <dt>set-fpu-mode, <a class="indexterm" href="#f_set-fpu-mode">Function SET-FPU-MODE</a></dt> 23376 34492 <dt>set-lisp-heap-gc-threshold, <a class="indexterm" href="#f_set-lisp-heap-gc-threshold">Function SET-LISP-HEAP-GC-THRESHOLD</a></dt> 34493 <dt>set-region-bounds, <a class="indexterm" href="#f_set-region-bounds">Function set-region-bounds</a></dt> 34494 <dt>set-scroll-position, <a class="indexterm" href="#f_set-scroll-position">Function set-scroll-position</a></dt> 23377 34495 <dt>set-user-environment, <a class="indexterm" href="#f_set-user-environment">Function SET-USER-ENVIRONMENT</a></dt> 23378 34496 <dt>setenv, <a class="indexterm" href="#f_setenv">Function CCL::SETENV</a></dt> 23379 34497 <dt>setgid, <a class="indexterm" href="#f_setgid">Function CCL::SETGID</a></dt> 23380 34498 <dt>setuid, <a class="indexterm" href="#f_setuid">Function CCL::SETUID</a></dt> 34499 <dt>setv, <a class="indexterm" href="#m_setv">Macro setv</a></dt> 34500 <dt>Shadow Attribute Hook, <a class="indexterm" href="#hv_shadow_attribute_hook">Hemlock Variable Shadow Attribute Hook</a></dt> 34501 <dt>shadow-attribute, <a class="indexterm" href="#f_shadow-attribute">Function shadow-attribute</a></dt> 23381 34502 <dt>shutdown, <a class="indexterm" href="#f_shutdown">Function SHUTDOWN</a></dt> 23382 34503 <dt>signal-external-process, <a class="indexterm" href="#f_signal-external-process">Function SIGNAL-EXTERNAL-PROCESS</a></dt> … … 23391 34512 <dt>socket-os-fd, <a class="indexterm" href="#f_socket-os-fd">Function SOCKET-OS-FD</a></dt> 23392 34513 <dt>socket-type, <a class="indexterm" href="#f_socket-type">Function SOCKET-TYPE</a></dt> 34514 <dt>Spaces per Tab, <a class="indexterm" href="#hv_spaces_per_tab">Hemlock Variable Spaces per Tab</a></dt> 34515 <dt>start-defun-p, <a class="indexterm" href="#f_start-defun-p">Function start-defun-p</a></dt> 34516 <dt>start-line-p, <a class="indexterm" href="#f_start-line-p">Function start-line-p</a></dt> 23393 34517 <dt>stream-deadline, <a class="indexterm" href="#Stream-Timeouts-And-Deadlines">Stream Timeouts and Deadlines</a></dt> 23394 34518 <dt>stream-device, <a class="indexterm" href="#f_stream-device">Generic Function CCL::STREAM-DEVICE</a></dt> … … 23402 34526 <dt>stream-write-vector, <a class="indexterm" href="#f_stream-write-vector">Generic Function CCL:STREAM-WRITE-VECTOR</a></dt> 23403 34527 <dt>string-size-in-octets, <a class="indexterm" href="#string-size-in-octets">Function string-size-in-octets</a></dt> 34528 <dt>string-table-p, <a class="indexterm" href="#f_string-table-p">Function string-table-p</a></dt> 34529 <dt>string-table-separator, <a class="indexterm" href="#f_string-table-separator">Function string-table-separator</a></dt> 34530 <dt>string-to-region, <a class="indexterm" href="#f_string-to-region">Function string-to-region</a></dt> 34531 <dt>string-to-variable, <a class="indexterm" href="#f_string-to-variable">Function string-to-variable</a></dt> 23404 34532 </dl> 23405 34533 </div> … … 23409 34537 <dt>terminate-when-unreachable, <a class="indexterm" href="#f_terminate-when-unreachable">Function TERMINATE-WHEN-UNREACHABLE</a></dt> 23410 34538 <dt>timed-wait-on-semaphore, <a class="indexterm" href="#f_timed-wait-on-semaphore">Function TIMED-WAIT-ON-SEMAPHORE</a></dt> 34539 <dt>top-level-offset, <a class="indexterm" href="#f_top-level-offset">Function top-level-offset</a></dt> 23411 34540 <dt>try-lock, <a class="indexterm" href="#f_try-lock">Function TRY-LOCK</a></dt> 23412 34541 </dl> … … 23416 34545 <dl> 23417 34546 <dt>unadvise, <a class="indexterm" href="#m_unadvise">Macro UNADVISE</a></dt> 34547 <dt>Unshadow Attribute Hook, <a class="indexterm" href="#hv_unshadow_attribute_hook">Hemlock Variable Unshadow Attribute Hook</a></dt> 34548 <dt>unshadow-attribute, <a class="indexterm" href="#f_unshadow-attribute">Function unshadow-attribute</a></dt> 23418 34549 <dt>unuse-interface-dir, <a class="indexterm" href="#f_unuse-interface-dir">Function UNUSE-INTERFACE-DIR</a></dt> 23419 34550 <dt>unwatch, <a class="indexterm" href="#f_unwatch">Function UNWATCH</a></dt> 23420 34551 <dt>unwind-protect, <a class="indexterm" href="#v_unwind-protect">Special operator UNWIND-PROTECT</a></dt> 34552 <dt>update-modeline-fields, <a class="indexterm" href="#f_update-modeline-fields">Function update-modeline-fields</a></dt> 23421 34553 <dt>use-interface-dir, <a class="indexterm" href="#f_use-interface-dir">Function USE-INTERFACE-DIR</a></dt> 23422 34554 <dt>use-lisp-heap-gc-threshold, <a class="indexterm" href="#f_use-lisp-heap-gc-threshold">Function USE-LISP-HEAP-GC-THRESHOLD</a></dt> 34555 </dl> 34556 </div> 34557 <div class="indexdiv"> 34558 <h3>V</h3> 34559 <dl> 34560 <dt>valid-spot, <a class="indexterm" href="#f_valid-spot">Function valid-spot</a></dt> 34561 <dt>value, <a class="indexterm" href="#m_value">Macro value</a></dt> 34562 <dt>variable-documentation, <a class="indexterm" href="#f_variable-documentation">Function variable-documentation</a></dt> 34563 <dt>variable-hooks, <a class="indexterm" href="#f_variable-hooks">Function variable-hooks</a></dt> 34564 <dt>variable-name, <a class="indexterm" href="#f_variable-name">Function variable-name</a></dt> 34565 <dt>variable-value, <a class="indexterm" href="#f_variable-value">Function variable-value</a></dt> 23423 34566 </dl> 23424 34567 </div> … … 23431 34574 <dt>with-altivec-registers, <a class="indexterm" href="#lapm_with-altivec-registers">LAP Macro WITH-ALTIVEC-REGISTERS</a></dt> 23432 34575 <dt>with-filename-cstrs, <a class="indexterm" href="#m_with-filename-cstrs">Macro with-filename-cstrs</a></dt> 34576 <dt>with-input-from-region, <a class="indexterm" href="#m_with-input-from-region">Macro with-input-from-region</a></dt> 23433 34577 <dt>with-interrupts-enabled, <a class="indexterm" href="#m_with-interrupts-enabled">Macro WITH-INTERRUPTS-ENABLED</a></dt> 23434 34578 <dt>with-lock-grabbed, <a class="indexterm" href="#m_with-lock-grabbed">Macro WITH-LOCK-GRABBED</a></dt> 34579 <dt>with-mark, <a class="indexterm" href="#m_with-mark">Macro with-mark</a></dt> 23435 34580 <dt>with-open-socket, <a class="indexterm" href="#m_with-open-socket">Macro WITH-OPEN-SOCKET</a></dt> 34581 <dt>with-output-to-mark, <a class="indexterm" href="#m_with-output-to-mark">Macro with-output-to-mark</a></dt> 34582 <dt>with-pop-up-display, <a class="indexterm" href="#m_with-pop-up-display">Macro with-pop-up-display</a></dt> 23436 34583 <dt>with-read-lock, <a class="indexterm" href="#m_with-read-lock">Macro WITH-READ-LOCK</a></dt> 23437 34584 <dt>with-terminal-input, <a class="indexterm" href="#m_with-terminal-input">Macro WITH-TERMINAL-INPUT</a></dt> 23438 34585 <dt>with-vector-buffer, <a class="indexterm" href="#lapm_with-vector-buffer">LAP Macro WITH-VECTOR-BUFFER</a></dt> 34586 <dt>with-writable-buffer, <a class="indexterm" href="#m_with-writable-buffer">Macro with-writable-buffer</a></dt> 23439 34587 <dt>with-write-lock, <a class="indexterm" href="#m_with-write-lock">Macro WITH-WRITE-LOCK</a></dt> 23440 34588 <dt>without-compiling-code-coverage, <a class="indexterm" href="#v_without-compiling-code-coverage">Macro WITHOUT-COMPILING-CODE-COVERAGE</a></dt> 23441 34589 <dt>without-interrupts, <a class="indexterm" href="#m_without-interrupts">Macro WITHOUT-INTERRUPTS</a></dt> 34590 <dt>word-offset, <a class="indexterm" href="#f_word-offset">Function word-offset</a></dt> 34591 <dt>Write File Hook, <a class="indexterm" href="#hv_write_file_hook">Hemlock Variable Write File Hook</a></dt> 34592 <dt>write-buffer-file, <a class="indexterm" href="#f_write-buffer-file">Function write-buffer-file</a></dt> 23442 34593 <dt>write-coverage-to-file, <a class="indexterm" href="#f_write-coverage-to-file">Function WRITE-COVERAGE-TO-FILE</a></dt> 34594 <dt>write-file, <a class="indexterm" href="#f_write-file">Function write-file</a></dt> 23443 34595 <dt>write-to-watched-object, <a class="indexterm" href="#c_write-to-watched-object">Condition WRITE-TO-WATCHED-OBJECT</a></dt> 23444 34596 </dl> … … 23450 34602 <a href="#Symbol-Index">Symbol Index</a> 23451 34603 </div> 23452 <p xmlns="http://www.w3.org/TR/xhtml1/transitional" xmlns:date="http://exslt.org/dates-and-times" class="footer">This document was last modified at 1 8:0 on May 11, 2011, in UTC.<br></br>It uses version 1.75.2 of the Norman Walsh Docbook stylesheets.<br></br>Built from subversion rev 14794<br></br>Using libxml 20706, libxslt 10126 and libexslt 815.</p>34604 <p xmlns="http://www.w3.org/TR/xhtml1/transitional" xmlns:date="http://exslt.org/dates-and-times" class="footer">This document was last modified at 16:0 on May 14, 2011, in UTC.<br></br>It uses version 1.75.2 of the Norman Walsh Docbook stylesheets.<br></br>Built from subversion rev 14798<br></br>Using libxml 20706, libxslt 10126 and libexslt 815.</p> 23453 34605 </body> 23454 34606 </html>
Note:
See TracChangeset
for help on using the changeset viewer.
