kshell.h

来自「konqueror3 embedded版本, KDE环境下的当家浏览器的嵌入式版」· C头文件 代码 · 共 148 行

H
148
字号
/*    This file is part of the KDE libraries    Copyright (c) 2003 Oswald Buddenhagen <ossi@kde.org>    This library is free software; you can redistribute it and/or    modify it under the terms of the GNU Library General Public    License as published by the Free Software Foundation; either    version 2 of the License, or (at your option) any later version.    This library is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU    Library General Public License for more details.    You should have received a copy of the GNU Library General Public License    along with this library; see the file COPYING.LIB.  If not, write to    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,    Boston, MA 02110-1301, USA.*/#ifndef _KSHELL_H#define _KSHELL_H#include <qstring.h>#include <qstringlist.h>#include "kdelibs_export.h"/** * \namespace KShell * Provides some basic POSIX shell and bash functionality. * @see KStringHandler * * @since 3.2 */namespace KShell {    /**     * Flags for splitArgs().     */    enum Options {        NoOptions = 0,        /**         * Perform tilde expansion.         */        TildeExpand = 1,        /**         * Bail out if a non-quoting and not quoted shell meta character is encoutered.         * Meta characters are the command separators @p semicolon and @p ampersand,         * the redirection symbols @p less-than, @p greater-than and the @p pipe @p symbol,         * the grouping symbols opening and closing @p parens and @p braces, the command         * substitution symbol @p backquote, the generic substitution symbol @p dollar         * (if not followed by an apostrophe), the wildcards @p asterisk and         * @p question @p mark, and the comment symbol @p hash @p mark. Additionally,         * a variable assignment in the first word is recognized.         */        AbortOnMeta = 2    };    /**     * Status codes from splitArgs()     */    enum Errors {        /**         * Success.         */        NoError = 0,        /**         * Indicates a parsing error, like an unterminated quoted string.         */        BadQuoting,        /**         * The AbortOnMeta flag was set and a shell meta character         * was encoutered.         */        FoundMeta    };    /**     * Splits @p 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.     *     * @param cmd the command to split     * @param flags operation flags, see Options     * @param err if not NULL, a status code will be stored at the pointer     *  target, see Errors     * @return a list of unquoted words or an empty list if an error occurred     */    KDECORE_EXPORT QStringList splitArgs( const QString &cmd, int flags = 0, int *err = 0 );    /**     * Quotes and joins @p args together according to POSIX shell rules.     *     * @param args a list of strings to quote and join     * @return a command suitable for shell execution     */    KDECORE_EXPORT QString joinArgs( 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.     *     * @param args a list of strings to quote and join     * @return a command suitable for shell execution     */    KDECORE_EXPORT QString joinArgsDQ( const QStringList &args );    /**     * Quotes and joins @p argv together according to POSIX shell rules.     *     * @param argv an array of c strings to quote and join.     *  The strings are expected to be in local-8-bit encoding.     * @param argc maximal number of strings in @p argv. if not supplied,     *  @p argv must be null-terminated.     * @return a command suitable for shell execution     */    KDECORE_EXPORT QString joinArgs( const char * const *argv, int argc = -1 );    /**     * Performs tilde expansion on @p path. Interprets "~/path" and     * "~user/path".     *     * @param path the path to tilde-expand     * @return the expanded path     */    KDECORE_EXPORT QString tildeExpand( const QString &path );    /**     * Obtain a @p user's home directory.     *     * @param user The name of the user whose home dir should be obtained.     *  An empty string denotes the current user.     * @return The user's home directory.     */    KDECORE_EXPORT QString homeDir( const QString &user );}#endif /* _KSHELL_H */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?