repo: rxvt-unicode-sixel action: commit revision: path_from: revision_from: a6cea9df2faeafe5ce13f869430d6553758b3565: path_to: revision_to:
commit a6cea9df2faeafe5ce13f869430d6553758b3565 Author: Marc LehmannDate: Sun Jun 15 13:54:16 2008 +0000 *** empty log message *** diff --git a/Changes b/Changes
--- a/Changes
+++ b/Changes
@@ -22,6 +22,8 @@ TODO: rxvt -font 10x20 -xrm "*.tabbed.font: 10x20" -pe tabbed
how does one affect the tab windows themselves? seems not to work anymore.
TODO: implement initial chdir for tabs by making it a resource?
+ - new option --cd/chdir to set the starting working directory.
+ - tabbed extension now starts in the "correct" working directory.
- work around fedore 9 prividing isastream but not the relevant
header file for it (report by Tuncer Ayaz).
- upgrade to libev-3.31, fixing a bug in the select backend
diff --git a/README.FAQ b/README.FAQ
--- a/README.FAQ
+++ b/README.FAQ
@@ -825,28 +825,8 @@ RXVT-UNICODE/URXVT FREQUENTLY ASKED QUESTIONS
infocmp -C rxvt-unicode
- Or you could use this termcap entry, generated by the command above:
-
- rxvt-unicode|rxvt-unicode terminal (X Window System):\
- :am:bw:eo:km:mi:ms:xn:xo:\
- :co#80:it#8:li#24:lm#0:\
- :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
- :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
- :RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=\E(B:al=\E[L:\
- :as=\E(0:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\
- :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\
- :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:\
- :i1=\E[?47l\E=\E[?1l:ic=\E[@:im=\E[4h:\
- :is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\
- :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
- :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[3~:\
- :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:kd=\EOB:ke=\E[?1l\E>:\
- :kh=\E[7~:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\
- :mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:rc=\E8:\
- :sc=\E7:se=\E[27m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
- :te=\E[r\E[?1049l:ti=\E[?1049h:ue=\E[24m:up=\E[A:\
- :us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:\
- :vs=\E[?25h:
+ Or you could use the termcap entry in doc/etc/rxvt-unicode.termcap,
+ generated by the command above.
Why does "ls" no longer have coloured output?
The "ls" in the GNU coreutils unfortunately doesn't use terminfo to
@@ -1078,7 +1058,7 @@ RXVT-UNICODE/URXVT FREQUENTLY ASKED QUESTIONS
wchar_t. This is, of course, completely fine with respect to standards.
However, that means rxvt-unicode only works in "POSIX", "ISO-8859-1" and
- "UTF-8" locales under FreeBSD (which all use Unicode as wchar_t.
+ "UTF-8" locales under FreeBSD (which all use Unicode as wchar_t).
"__STDC_ISO_10646__" is the only sane way to support multi-language apps
in an OS, as using a locale-dependent (and non-standardized)
diff --git a/README.configure b/README.configure
--- a/README.configure
+++ b/README.configure
@@ -195,9 +195,9 @@ CONFIGURE OPTIONS
verbose X error handling
--enable-iso14755 (default: on)
- Enable extended ISO 14755 support (see rxvt(1), or doc/rxvt.1.txt).
- Basic support (section 5.1) is enabled by "--enable-frills", while
- support for 5.2, 5.3 and 5.4 is enabled with this switch.
+ Enable extended ISO 14755 support (see rxvt(1)). Basic support
+ (section 5.1) is enabled by "--enable-frills", while support for
+ 5.2, 5.3 and 5.4 is enabled with this switch.
--enable-keepscrolling (default: on)
Add support for continual scrolling of the display when you hold the
@@ -227,14 +227,14 @@ CONFIGURE OPTIONS
Add support to have the pointer disappear when typing or inactive.
--enable-perl (default: on)
- Enable an embedded perl interpreter. See the rxvtperl(3) manpage
- (doc/rxvtperl.txt) for more info on this feature, or the files in
- src/perl-ext/ for the extensions that are installed by default. The
- perl interpreter that is used can be specified via the "PERL"
- environment variable when running configure. Even when compiled in,
- perl will *not* be initialised when all extensions have been
- disabled "-pe "" --perl-ext-common """, so it should be safe to
- enable from a resource standpoint.
+ Enable an embedded perl interpreter. See the rxvtperl(3) manpage for
+ more info on this feature, or the files in src/perl/ for the
+ extensions that are installed by default. The perl interpreter that
+ is used can be specified via the "PERL" environment variable when
+ running configure. Even when compiled in, perl will *not* be
+ initialised when all extensions have been disabled "-pe ""
+ --perl-ext-common """, so it should be safe to enable from a
+ resource standpoint.
--with-afterimage-config=DIR
Look for the libAfterImage config script in DIR.
diff --git a/doc/rxvt.1.man.in b/doc/rxvt.1.man.in
--- a/doc/rxvt.1.man.in +++ b/doc/rxvt.1.man.in @@ -132,7 +132,7 @@ .\" ======================================================================== .\" .IX Title "@@RXVT_NAME@@ 1" -.TH @@RXVT_NAME@@ 1 "2008-01-26" "9.0" "RXVT-UNICODE" +.TH @@RXVT_NAME@@ 1 "2008-06-15" "@@RXVT_VERSION@@" "RXVT-UNICODE" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -223,9 +223,9 @@ The following options are available: Print out a message describing available options. .IP "\fB\-display\fR \fIdisplayname\fR" 4 .IX Item "-display displayname" -Attempt to open a window on the named X display (\fB\-d\fR still -respected). In the absence of this option, the display specified by the -\&\fB\s-1DISPLAY\s0\fR environment variable is used. +Attempt to open a window on the named X display (the older form \fB\-d\fR +is still respected. but deprecated). In the absence of this option, the +display specified by the \fB\s-1DISPLAY\s0\fR environment variable is used. .IP "\fB\-depth\fR \fIbitdepth\fR" 4 .IX Item "-depth bitdepth" Compile \fIxft\fR: Attempt to find a visual with the given bit depth; @@ -1099,8 +1099,8 @@ Turn on/off secondary screen (default enabled). .IX Item "secondaryScroll: boolean" Turn on/off secondary screen scroll (default enabled). If this option is enabled, scrolls on the secondary screen will change the -scrollback buffer and switching to/from the secondary screen will -instead scroll the screen up. +scrollback buffer and, when secondaryScreen is off, switching +to/from the secondary screen will instead scroll the screen up. .IP "\fBhold\fR: \fIboolean\fR" 4 .IX Item "hold: boolean" Turn on/off hold window after exit support. If enabled, @@RXVT_NAME@@ @@ -1537,7 +1537,8 @@ Set to the terminfo directory iff @@RXVT_NAME@@ was configured with .IP "\fB\s-1DISPLAY\s0\fR" 4 .IX Item "DISPLAY" Used by @@RXVT_NAME@@ to connect to the display and set to the correct -display in its child processes. +display in its child processes if \f(CW\*(C`\-display\*(C'\fR isn't used to override. It +defaults to \f(CW\*(C`:0\*(C'\fR if it doesn't exist. .IP "\fB\s-1SHELL\s0\fR" 4 .IX Item "SHELL" The shell to be used for command execution, defaults to \f(CW\*(C`/bin/sh\*(C'\fR. diff --git a/doc/rxvt.1.pod b/doc/rxvt.1.pod
--- a/doc/rxvt.1.pod +++ b/doc/rxvt.1.pod @@ -457,6 +457,12 @@ will not immediately destroy its window when the program executed within it exits. Instead, it will wait till it is being killed or closed by the user; resource B. +=item B<-cd> I + +Sets the working directory for the shell (or the command specified via +B<-e>). The I must be an absolute path and it must exist for +@@RXVT_NAME@@ to start; resource B . + =item B<-xrm> I Works like the X Toolkit option of the same name, by adding the I @@ -1101,6 +1107,13 @@ will not immediately destroy its window when the program executed within it exits. Instead, it will wait till it is being killed or closed by the user. +=item B : I + +Sets the working directory for the shell (or the command specified via +B<-e>). The I must be an absolute path and it must exist for +@@RXVT_NAME@@ to start. If it isn't specified then the current working +directory will be used; option B<-cd>. + =item B I : I Compile I : Associate I with keysym I . The diff --git a/doc/rxvt.7.man.in b/doc/rxvt.7.man.in
--- a/doc/rxvt.7.man.in +++ b/doc/rxvt.7.man.in @@ -132,7 +132,7 @@ .\" ======================================================================== .\" .IX Title "@@RXVT_NAME@@ 7" -.TH @@RXVT_NAME@@ 7 "2008-01-29" "9.02" "RXVT-UNICODE" +.TH @@RXVT_NAME@@ 7 "2008-06-15" "@@RXVT_VERSION@@" "RXVT-UNICODE" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -1158,30 +1158,8 @@ like this: \& infocmp \-C rxvt\-unicode .Ve .PP -Or you could use this termcap entry, generated by the command above: -.PP -.Vb 10 -\& rxvt\-unicode|rxvt\-unicode terminal (X Window System):\e -\& :am:bw:eo:km:mi:ms:xn:xo:\e -\& :co#80:it#8:li#24:lm#0:\e -\& :AL=\eE[%dL:DC=\eE[%dP:DL=\eE[%dM:DO=\eE[%dB:IC=\eE[%d@:\e -\& :K1=\eEOw:K2=\eEOu:K3=\eEOy:K4=\eEOq:K5=\eEOs:LE=\eE[%dD:\e -\& :RI=\eE[%dC:SF=\eE[%dS:SR=\eE[%dT:UP=\eE[%dA:ae=\eE(B:al=\eE[L:\e -\& :as=\eE(0:bl=^G:cd=\eE[J:ce=\eE[K:cl=\eE[H\eE[2J:\e -\& :cm=\eE[%i%d;%dH:cr=^M:cs=\eE[%i%d;%dr:ct=\eE[3g:dc=\eE[P:\e -\& :dl=\eE[M:do=^J:ec=\eE[%dX:ei=\eE[4l:ho=\eE[H:\e -\& :i1=\eE[?47l\eE=\eE[?1l:ic=\eE[@:im=\eE[4h:\e -\& :is=\eE[r\eE[m\eE[2J\eE[H\eE[?7h\eE[?1;3;4;6l\eE[4l:\e -\& :k1=\eE[11~:k2=\eE[12~:k3=\eE[13~:k4=\eE[14~:k5=\eE[15~:\e -\& :k6=\eE[17~:k7=\eE[18~:k8=\eE[19~:k9=\eE[20~:kD=\eE[3~:\e -\& :kI=\eE[2~:kN=\eE[6~:kP=\eE[5~:kb=\e177:kd=\eEOB:ke=\eE[?1l\eE>:\e -\& :kh=\eE[7~:kl=\eEOD:kr=\eEOC:ks=\eE[?1h\eE=:ku=\eEOA:le=^H:\e -\& :mb=\eE[5m:md=\eE[1m:me=\eE[m\e017:mr=\eE[7m:nd=\eE[C:rc=\eE8:\e -\& :sc=\eE7:se=\eE[27m:sf=^J:so=\eE[7m:sr=\eEM:st=\eEH:ta=^I:\e -\& :te=\eE[r\eE[?1049l:ti=\eE[?1049h:ue=\eE[24m:up=\eE[A:\e -\& :us=\eE[4m:vb=\eE[?5h\eE[?5l:ve=\eE[?25h:vi=\eE[?25l:\e -\& :vs=\eE[?25h: -.Ve +Or you could use the termcap entry in doc/etc/rxvt\-unicode.termcap, +generated by the command above. .PP \fIWhy does \f(CI\*(C`ls\*(C'\fI no longer have coloured output?\fR .IX Subsection "Why does ls no longer have coloured output?" @@ -1461,7 +1439,7 @@ does it support it. Instead, it uses its own internal representation of \&\fBwchar_t\fR. This is, of course, completely fine with respect to standards. .PP However, that means rxvt-unicode only works in \f(CW\*(C`POSIX\*(C'\fR, \f(CW\*(C`ISO\-8859\-1\*(C'\fR and -\&\f(CW\*(C`UTF\-8\*(C'\fR locales under FreeBSD (which all use Unicode as \fBwchar_t\fR. +\&\f(CW\*(C`UTF\-8\*(C'\fR locales under FreeBSD (which all use Unicode as \fBwchar_t\fR). .PP \&\f(CW\*(C`_\|_STDC_ISO_10646_\|_\*(C'\fR is the only sane way to support multi-language apps in an \s-1OS\s0, as using a locale-dependent (and non-standardized) @@ -1754,6 +1732,8 @@ l l . Ps = 0 Clear to Right (default) Ps = 1 Clear to Left Ps = 2 Clear All +Ps = 3 Like Ps = 0, but is ignored when wrapped + (@@RXVT_NAME@@ extension) .TE .ie n .IP "\fB\fB""ESC [ Ps L""\fB\fR" 4 .el .IP "\fB\f(CBESC [ Ps L\fB\fR" 4 @@ -2321,6 +2301,9 @@ load \fBmona.jpg\fR with a scaling of 100% .IX Item "E]20;;200;?a" rescale the current pixmap to 200% and display the image geometry in the title +.PP + +.IX Xref "Mouse" .SH "Mouse Reporting" .IX Header "Mouse Reporting" .ie n .IP "\fB\fB""ESC [ M""\fB\fR" 4 @@ -2357,6 +2340,9 @@ Col = \fB\f(CB\*(C` \- SPACE\*(C'\fB\fR Row = \fB\f(CB\*(C` \- SPACE\*(C'\fB\fR .SH "Key Codes" .IX Header "Key Codes" + +.IX Xref "KeyCodes" +.PP Note: \fBShift\fR + \fBF1\fR\-\fBF10\fR generates \fBF11\fR\-\fBF20\fR .PP For the keypad, use \fBShift\fR to temporarily override Application-Keypad @@ -2624,10 +2610,9 @@ It also enables some non-essential features otherwise disabled, such as: .Ve .IP "\-\-enable\-iso14755 (default: on)" 4 .IX Item "--enable-iso14755 (default: on)" -Enable extended \s-1ISO\s0 14755 support (see @@RXVT_NAME@@(1), or -\&\fIdoc/rxvt.1.txt\fR). Basic support (section 5.1) is enabled by -\&\f(CW\*(C`\-\-enable\-frills\*(C'\fR, while support for 5.2, 5.3 and 5.4 is enabled with -this switch. +Enable extended \s-1ISO\s0 14755 support (see @@RXVT_NAME@@(1)). +Basic support (section 5.1) is enabled by \f(CW\*(C`\-\-enable\-frills\*(C'\fR, while +support for 5.2, 5.3 and 5.4 is enabled with this switch. .IP "\-\-enable\-keepscrolling (default: on)" 4 .IX Item "--enable-keepscrolling (default: on)" Add support for continual scrolling of the display when you hold @@ -2658,11 +2643,11 @@ Add support to have the pointer disappear when typing or inactive. .IP "\-\-enable\-perl (default: on)" 4 .IX Item "--enable-perl (default: on)" Enable an embedded perl interpreter. See the \fB@@RXVT_NAME@@\f(BIperl\fB\|(3)\fR -manpage (\fIdoc/rxvtperl.txt\fR) for more info on this feature, or the -files in \fIsrc/perl\-ext/\fR for the extensions that are installed by -default. The perl interpreter that is used can be specified via the -\&\f(CW\*(C`PERL\*(C'\fR environment variable when running configure. Even when compiled -in, perl will \fInot\fR be initialised when all extensions have been disabled +manpage for more info on this feature, or the files in \fIsrc/perl/\fR +for the extensions that are installed by default. +The perl interpreter that is used can be specified via the \f(CW\*(C`PERL\*(C'\fR +environment variable when running configure. Even when compiled in, +perl will \fInot\fR be initialised when all extensions have been disabled \&\f(CW\*(C`\-pe "" \-\-perl\-ext\-common ""\*(C'\fR, so it should be safe to enable from a resource standpoint. .IP "\-\-with\-afterimage\-config=DIR" 4 @@ -2689,12 +2674,3 @@ Marc Lehmann converted this document to pod and reworked it from the original Rxvt documentation, which was done by Geoff Wing , who in turn used the XTerm documentation and other sources. -.SH "POD ERRORS" -.IX Header "POD ERRORS" -Hey! \fBThe above document had some coding errors, which are explained below:\fR -.IP "Around line 2681:" 4 -.IX Item "Around line 2681:" -=back doesn't take any parameters, but you said =back X -.IP "Around line 2759:" 4 -.IX Item "Around line 2759:" -=back doesn't take any parameters, but you said =back X diff --git a/doc/rxvtd.1.man.in b/doc/rxvtd.1.man.in
--- a/doc/rxvtd.1.man.in
+++ b/doc/rxvtd.1.man.in
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.35
+.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -25,11 +25,11 @@
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
@@ -48,22 +48,25 @@
. ds R" ''
'br\}
.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+. de IX
+..
+.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
@@ -129,7 +132,11 @@
.\" ========================================================================
.\"
.IX Title "@@RXVT_NAME@@ 1"
-.TH @@RXVT_NAME@@ 1 "2007-12-15" "8.8" "RXVT-UNICODE"
+.TH @@RXVT_NAME@@ 1 "2008-06-15" "@@RXVT_VERSION@@" "RXVT-UNICODE"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
.SH "NAME"
@@RXVT_NAME@@d \- @@RXVT_NAME@@ terminal daemon
.SH "SYNOPSIS"
@@ -182,11 +189,11 @@ This is a useful invocation of \fB@@RXVT_NAME@@d\fR in a \fI.xsession\fR\-style
script:
.PP
.Vb 1
-\& @@RXVT_NAME@@d -q -f -o
+\& @@RXVT_NAME@@d \-q \-f \-o
.Ve
.PP
This waits till the control socket is available, opens the current display
-and forks into the background. When you log\-out, the server is reset and
+and forks into the background. When you log-out, the server is reset and
\&\fB@@RXVT_NAME@@d\fR is killed.
.SH "ENVIRONMENT"
.IX Header "ENVIRONMENT"
@@ -194,9 +201,8 @@ and forks into the background. When you log\-out, the server is reset and
.IX Item "RXVT_SOCKET"
Both \fB@@RXVT_NAME@@c\fR and \fB@@RXVT_NAME@@d\fR use the environment
variable \fI\s-1RXVT_SOCKET\s0\fR to create a listening socket and to contact
-the @@RXVT_NAME@@d, respectively. If the variable is missing,
-\&\fI$HOME/.rxvt\-unicode\-\fI\fI\fR is used. The variable must
-specify the absolute path of the socket to create.
+the @@RXVT_NAME@@d, respectively. If the variable is missing then
+\&\fI\f(CI$HOME\fI/.rxvt\-unicode\-\fI\fI\fR is used.
.IP "\fB\s-1DISPLAY\s0\fR" 4
.IX Item "DISPLAY"
Only used when the \f(CW\*(C`\-\-opendisplay\*(C'\fR option is specified. Must contain a
diff --git a/doc/rxvtperl.3.man.in b/doc/rxvtperl.3.man.in
--- a/doc/rxvtperl.3.man.in +++ b/doc/rxvtperl.3.man.in @@ -132,7 +132,7 @@ .\" ======================================================================== .\" .IX Title "@@RXVT_NAME@@ 3" -.TH @@RXVT_NAME@@ 3 "2008-01-25" "8.9" "RXVT-UNICODE" +.TH @@RXVT_NAME@@ 3 "2008-06-15" "@@RXVT_VERSION@@" "RXVT-UNICODE" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -1363,10 +1363,9 @@ Used after changing terminal contents to display them. .ie n .IP "$text\fR = \f(CW$term\fR\->ROW_t ($row_number[, \f(CW$new_text\fR[, \f(CW$start_col]])" 4 .el .IP "\f(CW$text\fR = \f(CW$term\fR\->ROW_t ($row_number[, \f(CW$new_text\fR[, \f(CW$start_col\fR]])" 4 .IX Item "$text = $term->ROW_t ($row_number[, $new_text[, $start_col]])" -Returns the text of the entire row with number \f(CW$row_number\fR. Row \f(CW0\fR -is the topmost terminal line, row \f(CW\*(C`$term\->$ncol\-1\*(C'\fR is the bottommost -terminal line. The scrollback buffer starts at line \f(CW\*(C`\-1\*(C'\fR and extends to -line \f(CW\*(C`\-$term\->nsaved\*(C'\fR. Nothing will be returned if a nonexistent line +Returns the text of the entire row with number \f(CW$row_number\fR. Row \f(CW\*(C`$term\->top_row\*(C'\fR +is the topmost terminal line, row \f(CW\*(C`$term\->nrow\-1\*(C'\fR is the bottommost +terminal line. Nothing will be returned if a nonexistent line is requested. .Sp If \f(CW$new_text\fR is specified, it will replace characters in the current diff --git a/src/init.C b/src/init.C
--- a/src/init.C
+++ b/src/init.C
@@ -541,7 +541,7 @@ rxvt_term::init (int argc, const char *const *argv, stringvec *envv)
SET_R (this);
set_locale ("");
- set_environ (envv); // few things in X do not call setlocale :(
+ set_environ (envv); // a few things in X do not call setlocale :(
init_vars ();
@@ -553,6 +553,16 @@ rxvt_term::init (int argc, const char *const *argv, stringvec *envv)
keyboard->register_done ();
#endif
+ if (const char *path = rs[Rs_chdir])
+ if (*path) // ignored if empty
+ {
+ if (*path != '/')
+ rxvt_fatal ("specified shell working directory must start with a slash, aborting.\n");
+
+ if (chdir (path))
+ rxvt_fatal ("unable to change into specified shell working directory, aborting.\n");
+ }
+
if (option (Opt_scrollBar))
scrollBar.state = STATE_IDLE; /* set existence for size calculations */
diff --git a/src/perl/tabbed b/src/perl/tabbed
--- a/src/perl/tabbed
+++ b/src/perl/tabbed
@@ -57,7 +57,6 @@ sub new_tab {
for @{ $self->{resource} || [] };
$term->resource (perl_ext_2 => $term->resource ("perl_ext_2") . ",-tabbed");
-
};
push @urxvt::TERM_EXT, urxvt::ext::tabbed::tab::;
@@ -209,7 +208,7 @@ sub on_motion_notify {
sub on_init {
my ($self) = @_;
- for (qw(name perl_ext_1 perl_ext_2)) {
+ for (qw(name chdir perl_ext_1 perl_ext_2)) {
my $val = $self->resource ($_);
push @{ $self->{resource} }, [$_ => $val]
diff --git a/src/rsinc.h b/src/rsinc.h
--- a/src/rsinc.h +++ b/src/rsinc.h @@ -5,6 +5,7 @@ def (iconName) def (geometry) def (reverseVideo) + def (chdir) def (color) reserve (color, TOTAL_COLORS) def (font) diff --git a/src/rxvtc.C b/src/rxvtc.C
--- a/src/rxvtc.C
+++ b/src/rxvtc.C
@@ -98,7 +98,6 @@ main (int argc, const char *const *argv)
}
c.send ("NEW");
- c.send ("CWD"), c.send (cwd);
for (char **var = environ; *var; var++)
c.send ("ENV"), c.send (*var);
@@ -107,6 +106,9 @@ main (int argc, const char *const *argv)
base = base ? base + 1 : argv[0];
c.send ("ARG"), c.send (strcmp (base, RXVTNAME "c") ? base : RXVTNAME);
+ c.send ("ARG"), c.send ("-cd");
+ c.send ("ARG"), c.send (cwd);
+
for (int i = 1; i < argc; i++)
c.send ("ARG"), c.send (argv[i]);
diff --git a/src/rxvtd.C b/src/rxvtd.C
--- a/src/rxvtd.C
+++ b/src/rxvtd.C
@@ -174,16 +174,6 @@ void server::read_cb (ev::io &w, int revents)
break;
else if (!strcmp (tok, "ENV") && recv (tok))
envv->push_back (strdup (tok));
- else if (!strcmp (tok, "CWD") && recv (tok))
- {
- if (chdir (tok))
- {
- delete envv;
- delete argv;
- return err ("unable to change to working directory to '%s', aborting: %s.\n",
- (char *)tok, strerror (errno));
- }
- }
else if (!strcmp (tok, "ARG") && recv (tok))
argv->push_back (strdup (tok));
else
@@ -211,7 +201,7 @@ void server::read_cb (ev::io &w, int revents)
term->log_hook = 0;
- chdir ("/");
+ chdir ("/"); // init might change to different working directory
if (!success)
term->destroy ();
diff --git a/src/urxvt.pm b/src/urxvt.pm
--- a/src/urxvt.pm +++ b/src/urxvt.pm @@ -1264,7 +1264,7 @@ are supported in every build, please see the source file F to see the actual list: answerbackstring backgroundPixmap backspace_key boldFont boldItalicFont - borderLess color cursorBlink cursorUnderline cutchars delete_key + borderLess chdir color cursorBlink cursorUnderline cutchars delete_key display_name embed ext_bwidth fade font geometry hold iconName imFont imLocale inputMethod insecure int_bwidth intensityStyles italicFont jumpScroll lineSpace loginShell mapAlert meta8 modifier diff --git a/src/xdefaults.C b/src/xdefaults.C
--- a/src/xdefaults.C
+++ b/src/xdefaults.C
@@ -93,6 +93,7 @@ optList[] = {
SWCH ("C", Opt_console, 0, "intercept console messages"),
SWCH ("iconic", Opt_iconic, 0, "start iconic"),
SWCH ("ic", Opt_iconic, 0, NULL), /* short form */
+ STRG (Rs_chdir, "chdir", "cd", "string", "start shell in this directory"),
BOOL (Rs_reverseVideo, "reverseVideo", "rv", Opt_reverseVideo, 0, "reverse video"),
BOOL (Rs_loginShell, "loginShell", "ls", Opt_loginShell, 0, "login shell"),
BOOL (Rs_jumpScroll, "jumpScroll", "j", Opt_jumpScroll, 0, "jump scrolling"),
-----END OF PAGE-----