---
name: "ansi_cmacros"
section: "3tcl"
platform: "linux"
package: "tcllib"
version: "2.0+dfsg-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/ansi_cmacros"
---

# ansi\_cmacros(3tcl)

Macro sequences

```

```

## NAME

term::ansi::code::macros - Macro sequences

## SYNOPSIS

package require **Tcl 8.5 9**

package require **textutil::repeat**

package require **textutil::tabify**

package require **term::ansi::code::macros ?0.2?**

**::term::ansi::code::macros::names**

**::term::ansi::code::macros::import** ?*ns*? ?*arg*...?

**::term::ansi::code::macros::menu** *menu*

**::term::ansi::code::macros::frame** *string*

```

```

## DESCRIPTION

This package provides higher level control sequences for more complex shapes.

## API

### INTROSPECTION

- **::term::ansi::code::macros::names**

  This command is for introspection. It returns as its result a list containing the names of all attribute commands.

- **::term::ansi::code::macros::import** ?*ns*? ?*arg*...?

  This command imports some or all attribute commands into the namespace *ns*. This is by default the namespace *macros*. Note that this is relative namespace name, placing the imported command into a child of the current namespace. By default all commands are imported, this can howver be restricted by listing the names of the wanted commands after the namespace argument.

### SEQUENCES

- **::term::ansi::code::macros::menu** *menu*

  The description of a menu is converted into a formatted rectangular block of text, with the menu command characters highlighted using bold red text.  The result is returned as the result of the command.

  The description, *menu*, is a dictionary mapping from menu label to command character.

- **::term::ansi::code::macros::frame** *string*

  The paragraph of text contained in the string is padded with spaces at the right margin, after normalizing internal tabs, and then put into a frame made of box-graphics. The result is returned as the result of the command.

## BUGS, IDEAS, FEEDBACK

This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category *term* of the *Tcllib Trackers* \[http://core.tcl.tk/tcllib/reportlist\]. Please also report any ideas for enhancements you may have for either package and/or documentation.

When proposing code changes, please provide *unified diffs*, i.e the output of **diff -u**.

Note further that *attachments* are strongly preferred over inlined patches. Attachments can be made by going to the **Edit** form of the ticket immediately after its creation, and then using the left-most button in the secondary navigation bar.

## KEYWORDS

ansi, control, frame, menu, terminal

## CATEGORY

Terminal control

## COPYRIGHT

```
Copyright (c) 2006 Andreas Kupries <andreas_kupries@users.sourceforge.net>
```
