• Skip to content
  • Skip to link menu
KDE 3.5 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

KDECore

KShell Namespace Reference

Provides some basic POSIX shell and bash functionality. More...


Enumerations

enum  Errors { NoError = 0, BadQuoting, FoundMeta }
enum  Options { NoOptions = 0, TildeExpand = 1, AbortOnMeta = 2 }

Functions

QString homeDir (const QString &user)
QString joinArgs (const char *const *argv, int argc=-1)
QString joinArgs (const QStringList &args)
QString joinArgsDQ (const QStringList &args)
QStringList splitArgs (const QString &cmd, int flags=0, int *err=0)
QString tildeExpand (const QString &path)

Detailed Description

Provides some basic POSIX shell and bash functionality.

See also:
KStringHandler
Since:
3.2


Enumeration Type Documentation

enum KShell::Errors

Status codes from splitArgs().

Enumerator:
NoError  Success.
BadQuoting  Indicates a parsing error, like an unterminated quoted string.
FoundMeta  The AbortOnMeta flag was set and a shell meta character was encoutered.

Definition at line 64 of file kshell.h.

enum KShell::Options

Flags for splitArgs().

Enumerator:
NoOptions 
TildeExpand  Perform tilde expansion.
AbortOnMeta  Bail out if a non-quoting and not quoted shell meta character is encoutered.

Meta characters are the command separators semicolon and ampersand, the redirection symbols less-than, greater-than and the pipe symbol, the grouping symbols opening and closing parens and braces, the command substitution symbol backquote, the generic substitution symbol dollar (if not followed by an apostrophe), the wildcards asterisk and question mark, and the comment symbol hash mark. Additionally, a variable assignment in the first word is recognized.

Definition at line 40 of file kshell.h.


Function Documentation

QString KShell::homeDir ( const QString &  user  ) 

Obtain a user's home directory.

Parameters:
user The name of the user whose home dir should be obtained. An empty string denotes the current user.
Returns:
The user's home directory.

Definition at line 369 of file kshell.cpp.

QString KShell::joinArgs ( const char *const *  argv,
int  argc = -1 
)

Quotes and joins argv together according to POSIX shell rules.

Parameters:
argv an array of c strings to quote and join. The strings are expected to be in local-8-bit encoding.
argc maximal number of strings in argv. if not supplied, argv must be null-terminated.
Returns:
a command suitable for shell execution

Definition at line 283 of file kshell.cpp.

QString KShell::joinArgs ( const QStringList &  args  ) 

Quotes and joins args together according to POSIX shell rules.

Parameters:
args a list of strings to quote and join
Returns:
a command suitable for shell execution

Definition at line 257 of file kshell.cpp.

QString KShell::joinArgsDQ ( const QStringList &  args  ) 

Same as above, but $'' is used instead of '' for the quoting.

The output is suitable for splitArgs(), bash, zsh and possibly other bourne-compatible shells, but not for plain sh. The advantage is, that control characters (ASCII less than 32) are escaped into human-readable strings.

Parameters:
args a list of strings to quote and join
Returns:
a command suitable for shell execution

Definition at line 311 of file kshell.cpp.

QStringList KShell::splitArgs ( const QString &  cmd,
int  flags = 0,
int *  err = 0 
)

Splits cmd according to POSIX shell word splitting and quoting rules.

Can optionally perform tilde expansion and/or abort if it finds shell meta characters it cannot process.

Parameters:
cmd the command to split
flags operation flags, see Options
err if not NULL, a status code will be stored at the pointer target, see Errors
Returns:
a list of unquoted words or an empty list if an error occurred

Definition at line 65 of file kshell.cpp.

QString KShell::tildeExpand ( const QString &  path  ) 

Performs tilde expansion on path.

Interprets "~/path" and "~user/path".

Parameters:
path the path to tilde-expand
Returns:
the expanded path

Definition at line 355 of file kshell.cpp.

KDECore

Skip menu "KDECore"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

API Reference

Skip menu "API Reference"
  • dcop
  • DNSSD
  • interfaces
  • Kate
  • kconf_update
  • KDECore
  • KDED
  • kdefx
  • KDEsu
  • kdeui
  • KDocTools
  • KHTML
  • KImgIO
  • KInit
  • kio
  • kioslave
  • KJS
  • KNewStuff
  • KParts
  • KUtils
Generated for API Reference by doxygen 1.5.9
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal