---
name: "msc"
section: "1"
platform: "linux"
package: "msc"
version: "1.1.2-2"
release: "Debian 5.0 (Lenny)"
platforms: ["linux"]
url: "https://new.carta.tech/msc"
---

# msc(1)

message sequence chart generator

## NAME

msc - message sequence chart generator

## SYNOPSIS

**msc** \[**options**\] \[**files...**\]

## DESCRIPTION

**msc** generates message sequence charts for display is a text based terminal.

In other words, it is a tool that can parse textual descriptions to create diagrams. These diagrams are created as text, which can be printed anywhere, and even piped through **enscript** to create some nice *PostScript* output.

The description files are very simple, and you can create them using your favorite text editor. The reason for using text as input for **msc** and for diagram output is simple: you can use **diff** to track differences between two designs, and even use **patch** to merge them (you know how this is important if you have ever worked in a real-life project, with code re-use).

## OPTIONS

**-c** *integer* **--commentwidth=***integer*

Sets the width of comment column in chart.

- **-h** **--help**

  Show summary of options.

**-m** *integer* **--messagewidth=***integer*

Sets the width of message column in chart.

- **-p** **--pagebreak**

  Add a pagebreak after chart.

- **-s** **--swapstyles**

  Instead of using -s to draw messages and =s to draw function calls, use -s for functions and = for messages.

**-t** *integer* **--taskwidth=***integer*

Sets the width of task column in chart.

- **--version**

  Show version of program.

## DESCRIPTION FILES

Description files contain the apropriate information needed to create a message sequence chart. Lines starting with a # will be ignored and will not be echoed to the terminal. The description file must contain only one **Title** and only one **Tasks** keywords. Lines beginning with \* will be treated as comments in the diagram, and will be printed breaking the vertical chart lines (see Example).

The general structure of a description file is:

```
Title:<put your title here>
Tasks:<comma separated list of tasks(no spaces!)>
<message_name>:<from task>:<to task>:<Comment>
.
.
.
```

## EXAMPLE

Here is an example of a description file:

```
# This does not get printed
Title:MSC Example Diagram
Tasks:Home,Work,Play
Message1:Home:Play:This is a comment
Message2:Play:Play:Sent to itself
:::Only a comment
func():Play:Work:function call
*This can be used as a separator...
Message4:Work:Home:
```

And doing **msc example.msc** generates:

```
MSC Example Diagram - example.msc
               Home    Work    Play
               |       |       |
Message1       |-------+------>|     This is a comment
Message2       |       |       |<    Sent to itself
               |       |       |     Only a comment
func()         |       |<======|     function call
This can be used as a separator...
Message4       |<------|       |
               |       |       |
```

## SEE ALSO

[patch(1)](/patch/1.md), [diff(1)](/diff/1.md), [enscript(1)](/enscript/1.md).

## AUTHORS

Tarball, W. Martin Borgert.

## COPYRIGHT

Copyright © 2001 Rubens Ramos Fernandes Junior\
 Copyright © 2005 W. Martin Borgert\
